2
$\begingroup$

There are two problems I see with negotiating the next block chain:

  1. which transactions to include in the chain (because consider transaction T which has propagated through exactly 49% of the network at the time the next block is negotiated)

  2. which proposed block to consider the next legitimate block in the chain, because even assuming all nodes have all transactions, what's to stop every node from attempting to propose the next block, thus forcing the network to attempt to propagate and resolve N different block collisions.

In bitcoin, number 2 above is easily resolved by intentionally imposing conditions on the resulting hash of the blockchain such that it is computationally difficult to derive the hash, and thus collisions (where 2 nodes propose a valid block/hash at the same time) are very rare.

Outside of bitcoin, I'm skeptical as to how new blocks are announced and agreed upon. If you have a blockchain structure where a new block should be announced at an artificial time interval of every 10 minutes (assume the network is time sync'd) then what's to stop all your nodes from attempting to propose many different next blocks all at once? In a general blockchain network that isn't bitcoin, I don't see any restriction like #2 above that reduces the ability for many nodes to come up with their own proposed blocks and to stop them from trying to announce these blocks to the network.

Also, assuming we can resolve this issue ^ and manage to negotiate which block to use as the next one in the chain, we're assuming here that the contents of all the proposed blocks are also equal. How can a network negotiate the next block if 49% of nodes contain a transaction that the other 51% of nodes do not?

$\endgroup$
  • $\begingroup$ What does "outside of bitcoin" mean? Anyone could invent a protocol that does anything they wanted, so I don't think there's going to be a single answer that would apply to every protocol one could ever come up with. $\endgroup$ – D.W. Feb 23 '17 at 15:03
  • $\begingroup$ I reference bitcoin because the way they solve the block proposal collision problem is that they make it computationally difficult to propose a block. I am curious about how other blockchain solutions work in the absence of this. $\endgroup$ – David Zorychta Feb 24 '17 at 4:06
1
$\begingroup$

Here's how Bitcoin works. I suppose we could say that each node can "propose" a different next block. What this really means is that each node can select a "proposed" next block and start mining to attempt to append that block to the blockchain. Bitcoin's proof-of-work basically creates a lottery among all of the nodes who are doing this; it's random which one will win, but there will be only one winner, and once there is a winner, everyone will know which one won.

Nothing stops dishonest nodes from attempting to "propose" many different next blocks and mine from them. If 100% of the network is dishonest, then you're screwed anyway. So if you want any security at all, you need to assume that at least 51% of the nodes are honest. And the crucial part is to look at how the honest nodes will behave.

The way that a protocol works is that it specifies how an honest node should work. If the node is honest, it will follow the protocol faithfully -- that's more or less the definition of honest, in the world of protocols. The Bitcoin protocol specifies how an honest node should determine what transactions to include in its proposed next block: include all of the transactions that it is aware of, and that are valid. It also provides a mechanism to help all of the honest nodes learn of all possible transactions.

So, if at least 51% of the nodes are honest, they'll all "propose" the same next block (since they're all honestly applying the same validity checks) and start mining from that next block.

What about protocols other than Bitcoin? No one ever promised that other protocols would be secure. No one ever promised that merely using a blockchain (a hash-chained ledger) is sufficient to ensure security. Bitcoin is a clever combination of multiple interlocking mechanisms that work together to provide security -- the beauty and magic is in how they fit together. If you take away some of those mechanisms and keep only others, there's no reason to expect the result to necessarily be secure. And it's not really possible to analyze the security of an unspecified protocol, where the only information we have about it is that "it uses a blockchain but isn't Bitcoin".

$\endgroup$
1
$\begingroup$

Here is how some other blockchain protocols ensure consensus about the next block:

  • Ethereum currently uses a Proof-of-Work approach that is similar to Bitcoins, but will change the protocol to use a Proof-of-Stake mechanism instead. This means that people who have a lot of ETH (the Ethereum currency) or have had ETH for a long time and haven't written a block in a long time will be more likely to be allowed to write the next block.
  • Ripple and Tendermint use Voting Systems: Nodes send votes for proposed blocks around the network until they are sure that enough nodes voted for the same block, at which point it is "commited" to the blockchain.
  • There are also some other projects that use proof of...
    • Space
    • Ellapsed Time
    • Bandwidth
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.