8

In my opinion, it is one of the greatest misconceptions about Bitcoin that miners solve a "hard problem". Many news sources explain it like that, but in fact it's not true. All a miner does is guessing until he got something right. A miners takes his block of transactions (including the coinbase transaction that sends the fees and block reward to himself) ...


5

Bitcoin is a peer-to-peer gossip flood network. Whenever a Bitcoin participant creates a transaction, their wallet software submits it to its peer nodes. These peers then relay it to their peers in turn. The transaction floods through the network and reaches most nodes. Eventually, the transaction is included in a block which makes the transaction part of ...


5

First note that Ripple uses the term ledger slightly differently than general use. In Ripple a ledger is the set of all Ripple accounts, all their current balances, all open trade offers, and only the transaction details that justify the changes in this ledger from the previous ledger. A specific Ripple ledger does not contain any other past history of ...


5

Recently I stumbled across this question as I was supposed to explain what Bitcoin was to my 5-year-old nephew. As the question states that it needs to explain the concept of bitcoin to a non-technical person, I took it a step further and explained it to the kid, who knows nothing (literally). So here goes my 2 satoshis on what is the best explanation (...


5

@David's answer essentially doesn't talk about an attack scenario where the room is full of dishonest nodes. This is essentially what the proof-of-work was designed to fix. If you get a hold of a lot of IPs (nodes in the Ripple network) you could become a majority in the room. The difference is that it's really easy to get an IP, but extremely hard to prove ...


4

Since the earliest public release of Bitcoin, OP_RESERVED, OP_RESERVED1, and OP_RESERVED2 have been defined at 0x50 (80), 0x89 (137), and 0x8a (138), respectively. I doubt there's any known reason for them to exist. The script engine in Bitcoin obviously underwent a lot of changes during development and in the year following; a good portion of all the ...


4

Ripple is trying to replace SWIFT, the protocol for inter-bank transfers. To me it makes sense because, those systems are (according to my understanding) quite antiquated. So blockchain hype has provided the impetus for banks to consider trying something new such as Ripple. It was started by the guy who created MtGox. Bitcoin is a mechanism for exchanging ...


3

Bitcoin is a global payment network on the internet. It is self-sustained and allows users to make payments between individuals like cash. Instead of a company being the referee, Bitcoin is governed neutrally by rules asserted through a network of computers running the same open-source software. Bitcoin is completely transparent, in that anyone can see ...


3

For non-technical users, I found this video to be extremely clear and helpful in explaining the details of how Bitcoin works: How Bitcoin Works Under the Hood


3

This is a highly speculative question. From a technical point of view there will eventually be 21 million (21e6) bitcoins in circulation, yes. But we are already witnessing a shift to using the millibitcoin (mBTC) when denominating prices. This use of ever smaller fractions may go on until we reach the satoshi (1e-8 bitcoins). We would effectively have ...


3

In a nutshell, mining solves the problem of achieving a globally agreed ordering of transactions and selection of one of several incompatible transactions. Here's the problem that needs a solution: If I have 10 Bitcoin and I simultaneously introduce to two distant parts of the network a transaction that gives 10 Bitcoin to Alice and a transaction that gives ...


3

From the point of view of an application developer, it is for now much easier to use layer 1 features. This is due to being able to externalize your burden on the network. 1. Hey nodes, will you do my job? Blocks are expensive to produce You don't need to have much DOS concerns in your application if you are only reacting to onchain payments. But what ...


2

With mining that takes time, synchronization gets easier. Forks happen in the blockchain and these forks need to be resolved, where the nodes select the chain that is longest. It is very hard for distributed nodes to resolve and come to an agreement if new blocks are added to forked blockchains simultaneously at high speed in different parts of the network....


2

I think the concern was that a p2p node is easier to falsify than a solution that requires great effort.


2

i don't think you can find many Object Oriented Design Patterns in the btc-source-code. but there is one example i know: the blockchain itself is like a composite pattern: you have a general type called Block. two types inherits Block: MinedBlock inherits from Block and GenesisBlock inherits from Block. A MinedBlock has one attribute of the type Block ...


1

Each full Bitcoin node has what is known as "mempool". mempool is where transactions are stored in preparation for propagation into a proposed block during the mining process. It's somewhat counter-intuitive but each node has it's own mempool and transactions (as they are posted by BTC users), will be propagated throughout the network and be stored ...


1

multisig transactions blockchain-embedded escrow time-bound transactions proof-of-burn bets based on some oracle, either trusted or decentralized I suppose there are many more and that some if not all of the above can be, more or less efficiently, realized with P2PKH, possibly with some extra protocols required.


1

A centralized payment verification system, like Paypal or any number of financial institutions, only considers payments "valid" if they come from within the organization. A single organization is responsible for verifying the truth of statements (with a statement being "Bob sent Alice $50" and the like). This means that there is no mechanism of agreement on ...


1

Transactions in forks are not verified completely until the node attempts to switch to that fork. Before that, only those checks are performed that don't depend on previous transactions. In the source code, there is a function CheckBlock, which does only some of the checks, and ConnectBlock, which checks everything. The latter function is called only when ...


1

According to the Bitcoin wiki https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery Nodes discover their own external address by various methods. Nodes discover their own external address by various methods. Nodes makes DNS request to receive IP addresses. Nodes can use addresses hard coded into the software. Nodes exchange addresses with ...


Only top voted, non community-wiki answers of a minimum length are eligible