Adding Ethereum blockchain anchoring to private blockchains

Anchoring in terms of blockchain is that, the block hashes of the private chain can be written to any of the public chains to provide private chain the advantages of the public chain.

The block hashes of a private chain are periodically written into a public chain. For this purpose, not all block hashes have to be transmitted; for example, a daily match is sufficient

There are various advantages and disadvantages of using private chains. So, Anchoring can provide a way to solve the disadvantages of using private chains.

Advantages of private chains:-

  1. Scalable
  2. Transactions cost less than public chains
  3. You can make it permissioned network

Disadvantages of private chains:-

  1. Private chains are often autonomous or under control of a consortium
  2. No public visibility (meaning less transparency)

Other than these disadvantages, the private chain behaves almost similar to public chains and it has some benefits like free transaction, fast speed, etc. That’s why people wish to use a private blockchain over the public blockchain. Also, using anchoring, one can solve the issue of private chain behaving like a centralized network by periodically writing the block hashes of the private chain into one or more public chains.


Why block hashes only? (Technical)

Using block hashes, one can get the stateRoot, transactionRoot, and receiptRoot, which is very important to generate Merkle proof. Then, using that Merkle proof one can validate that the particular transaction belongs to which network. That’s why we use block hashes. It is similar to SPV Proof which is used in the bitcoin network.

{
difficulty: 131072,
extraData: "0xd883010902846765746888676f312e31312e35856c696e7578",
gasLimit: 19669433,
gasUsed: 255048,
hash: "0xb9f07f5bb26aa12bfdda08398673f21bf3e28e28a33974e00f8a2bb596f1ca88",
logsBloom: "",
miner: "0x0a42662035d9eec01db432a1747e8ceeecc879f9",
mixHash: "0xc97df2d5add3aee937d776f218c9e9f86e9680f1371b018b5b6b882b8dcadb4b",
nonce: "0x2aeffbbd5f83174b",
number: 67,
parentHash: "0xca916421400cddf8f30913a9ac44dbcb1eed7b72c364703d206e46db577992df",
receiptsRoot: "0xa7e4b8bf4563ca144aa2b44b12698283a81d23359a4ebbec58d12d9e11c79fbb",
sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
size: 1416,
stateRoot: "0x76991f0999e1bad5a10317a99f45cb7327545939c31650f8e986ec9fe3002373",
timestamp: 1567398788,
totalDifficulty: 8782592,
transactions: ["0x56213021dc29d9a48f2a1dae041fd50c4b06c22781fbdbcf81f9bc7cf3a7e4ab"],
transactionsRoot: "0x388b7af92d1a1c62fdef6b283ac306bec54eccaafc6ffc4a1d0e9025f19ddd6d",
uncles: []
}

You can get the information about the block using web3.eth.getBlock(“block_hash”)


What Dappros has implemented?

Anchoring Architecture

We have carried out internal R&D to implement anchoring using a smart contract and have deployed a resulting solution to latest development branch of Dappros Platform. The smart contract will be used to propagate the block hashes from one chain to other chains. Currently, we have deployed our smart contract on the Ropsten test network. The Dappros Platform backend will automatically send the block hash of the dappros platform blockchain to the Ropsten test network using web3.js in every 24 hours. We are using a node-cron for that.

You can access the transactions on the Ropsten test network by visiting the below link on Etherscan: https://ropsten.etherscan.io/address/0xba5c1f68c102da922e67399e9683114d33c658c3

In the future, we will try to create a module using RLP (Recursive Length Prefix). So that using the block hash anyone can validate the transactions.

Previous ArticleNext Article

Leave a Reply

Your email address will not be published. Required fields are marked *