SPV in Tron cross chain


How to verify whether a transaction is confirmed on the other chain?

Merkle tree is a kind of hash binary tree. One of its obvious advantages is that it can use a branch(as a small tree) to verify part of the data, which is more efficient. The block structure in the above figure shows that a block body contains such a Merkle tree, which is used to summarize all transactions in the block. Each leaf node is the hash of each transaction, and the two adjacent hashes are merged into a string and then hashed, and repeat the similar operation until only one node left, that is the Merkle root, which is stored in the block header.
  1. Merkle proof: It can be used to verify whether a transaction is included in the Merkle tree, which is represented by the Merkle root;
  2. Block header: Contains the Merkle Root of the Merkle tree composed of all transactions in the block, and uses this Merkle Root to represent this block;
  • The latest block header list of chain B.
  • Merkle Proof list of the transaction.
message BlockHeader {
message raw {
int64 timestamp = 1;
bytes txTrieRoot = 2;
bytes parentHash = 3;
int64 number = 7;
int64 witness_id = 8;
bytes witness_address = 9;
int32 version = 10;
bytes accountStateRoot = 11;
bytes chainId = 12;
bytes crossTxRoot = 13;
raw raw_data = 1;
bytes witness_signature = 2;
The Merkle path of the transaction hash K (green square) is the list of hashes in the blue square above.
  1. High efficiency: To verify two transactions, just compare whether the Merkle Root of the two Merkle trees is the same. If the same, it means the transactions are the same.
  2. High security: If a transaction K changes, it will lead to the Merkle Root change, so it is difficult to forge a transaction.
1. Given a transaction hash value.
2. Obtain the transaction hash values list ​​of the related block from the full node and mark them as leaf nodes.
3. Traverse all leaf nodes in a group of two, calculates the parent hash value of each two leaf node, adds it to the parent list, and finds the leaf node that matches the given transaction hash value.
4. Add the hash values ​​of the other nodes in the group to the Merkle proof list and mark its parent node.
5. Iterate the parent node list in a group of two each time, calculate the hash value of each two nodes, and add it to the temporary parent node list and find the marked node.
6. Add the other node of the group to the Merkle proof list and mark its parent node.
7. Replace the left nodes list with the temporary parent node list, check the size of the node list, If it is greater than 1, go to step 5, otherwise return to the Merkle proof list
public boolean validProof(Sha256Hash root, List<ProofLeaf> proofPath, Sha256Hash src)

How does TRON innovatively solve the existing problems of the SPV?

message SignedBlockHeader {
BlockHeader blockHeader = 1;
repeated bytes srs_signature = 2;
PBFTCommitResult sr_list = 3;
message SRL {
repeated bytes srAddress = 1;
public boolean validSrList(PBFTCommitResult dataSign, Set<ByteString> preSRL)



For more information




Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Beyond Cryptocurrencies: The Future is Blockchain

The Deployer: ARK’s Newest Product Revolutionizes Blockchain Creation

Vibe shift, blockchain edition: From attention to stakeholder economy

Austrian Government-Backed Project Will Use Blockchain to Find Waste Heat Spots

Powers On … Biden approves blockchain innovation, identifies its advantages as well as promotes…

Unraveling NFTs (Non-Fungible Tokens)

A “Real-Time” Comprehensive Coronavirus Plan…for OKC, anyway.

Target, General Mills Getting Look In At Hedera Blockchain Technology Through Couponing

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
TRON Core Devs

TRON Core Devs

More from Medium

Marvelous NFT (Bad Days) & Project Inverse Partnership

Baby Groot Token (%100 Community Project)

BitYard x Ambire AdEx AMA Recap (2021/12/21)