<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>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 &quot;preferred ledger by branch&quot; code that detects this and heavily discourages adoption of the one with the fewer intermediary signatures.</p>
<p>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 &quot;preferred chain by branch&quot; logic and the signatures as proof of the chain being made public in connection with proof-of-work if you wanted to.</p>

CC BY-SA 4.0
2021-03-23T07:40:52.420Z
@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).
David Schwartz
CC BY-SA 4.0
2021-03-23T17:38:42.460Z
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](https://crypto.stackexchange.com/questions/88393/would-it-be-technically-possible-to-delete-old-blocks-from-a-blockchain-cryptocu)
JohnBig
CC BY-SA 4.0
2021-03-23T06:42:18.507Z
2021-03-23T06:42:18.507Z
David Schwartz
<p>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.</p>

CC BY-SA 4.0
2021-03-22T12:54:56.290Z
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?
RedGrittyBrick
CC BY-SA 4.0
2021-03-22T14:14:29.420Z
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
<blockchain><consensus><selfish-mining>
Preventing secretly mined chains
JohnBig
# Preventing secretly mined chains

(Asked by: username_0 on 2021-03-22)

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.

**Tags:** blockchain, consensus, selfish-mining

> **Comments:**
> **username_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?  
> **username_0**: 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.  

---

## 1 answers

### Answer by username_2 on 2021-03-23. Score: 1

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.

> **Comments:**
> **username_2**: @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).  
> **username_0**: Thanks for the response username_2! 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](https://crypto.stackexchange.com/questions/88393/would-it-be-technically-possible-to-delete-old-blocks-from-a-blockchain-cryptocu)  

---

