In order to prevent attackers from secretly mining chains (which they could later publish to perform double-spending attacks), would it be possible to require some information to be included in the next block that can only be known if the last block in the chain was published to the network? Something like a random number that is only generated in response to the block being public. That way, secretly mined side-chains can automatically be rejected by the network.

  • 1
    Bitcoin is peer to peer with no special adjudicators or notaries. How would such a mechanism could be invented without special privileged roles, in a way that is better than the existing mechanism based on accumulated proof of work? Mar 22 at 12:54
  • Well there are rules for when nodes accept blocks, such as for instance that the transactions in the block have to be unspent. One such rule could be that blocks additionally have to contain this number. My question was more what this could be. Alternatively, blocks could be rejected if they are published a certain time after they were mined.
    – JohnBig
    Mar 22 at 14:14

This is precisely what federated byzantine agreement algorithms like that used by XRP and Avalanche do. But this is a such a huge change that you can't really consider the algorithm to be proof-of-work anymore.

What happens is that a block is not accepted when it is mined but some subsequent process that can only happen once the block is public is required. So if the block is not made public, it will never be accepted.

The scheme Arthur Britto, Jed McCaleb and myself developed for the XRP Ledger in 2011 allows each participant to choose whose signatures they will require before they locally consider the block valid. Only when you collect sufficient signatures do you accept the block. There is no way to obtain the signatures unless the block is made public.

A somewhat complex algorithm handles the case where a chain is built privately and then revealed later. That chain may have more work but it will have fewer signatures in the intermediary blocks. There's "preferred ledger by branch" code that detects this and heavily discourages adoption of the one with the fewer intermediary signatures.

Again, this is such a radical change that the result is not really proof-of-work but a different algorithm. In the case of the XRP Ledger's algorithm, it doesn't use any proof-of-work at all. But you could use this "preferred chain by branch" logic and the signatures as proof of the chain being made public in connection with proof-of-work if you wanted to.

  • I don't think question was about XRP or Avalanche.
    – Prayank
    Mar 23 at 7:38
  • @Prayank No. But it's not about bitcoin either since bitcoin (as presently constructed) has no such mechanism. Bitcoin could, if its users wanted to, adopt the mechanism that other blockchains use to prevent this (without any other changes unless they were also desired). Mar 23 at 7:40
  • Thanks for the response David! My question was about cryptocurrencies in general (it just found its way into the bitcoin subforum by accident). My thought was that if we can find an easier way reject fraudulent sidechains, it would more easily be possible to make finite blockchains that fit into every smartphone in order to decentralize mining. link
    – JohnBig
    Mar 23 at 17:38

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.