It's possible I misunderstood how BTCRelay works, but relayers submit block headers to verify from Ethereum that transactions took place in Bitcoin. What prevents relayers from committing fraud by submitting false information as the block headers?

After enough blocks, with enough relayers independently submitting information, the system could find the inconsistency, but what prevents or discourages someone from submitting false information in the first place?


The block are verified by the BTCRelay contract, they should follow the consensus rules of the bitcoin blockchain: valid the proof of work, expected difficulty, etc.

To create fake blocks you need an important computing capacity because you need to fake the proof of work, and in that circumstance it should be more beneficial to mine bitcoin directly.

Also relayers can set a fee with storeBlockWithFee for the block they are submitting. This fee is paid by those who want to verify a transaction in that block.

  • I'm not suggesting someone creates a fake block. Why can't they just lie to the contract, give it false information about the transactions. The contract doesn't have a way to directly verify with Bitcoin – luca590 Jan 12 '18 at 6:04
  • 1
    @luca590 When you send the transaction you also send a proof of which block includes it, the contract has the blocks headers and can verify the proof is correct. Search for SPV proof if you want to know more details about it. – Ismael Jan 12 '18 at 14:47
  • Okay, I think your comment answered the question, thanks – luca590 Jun 5 '18 at 8:56

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.