Skip to content

Commit

Permalink
add a Merkle commitment to transactions in block header (algorand#1879)
Browse files Browse the repository at this point in the history
This will enable short proofs of transactions being present in a given
block.

The proof includes both the transaction ID (which is likely the most
useful part, knowing that some transaction ID was committed), as well as
the hash of the entire SignedTxn and ApplyData (in case some application
wants to know what LogicSig.Args were used, or what the ApplyData was
for rewards calculation).

The Merkle tree uses the same merklearray code that's already used for
compact certificates.
  • Loading branch information
zeldovich authored and tsachiherman committed Feb 18, 2021
1 parent 8196a3d commit f4d4837
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions config/consensus.go
Original file line number Diff line number Diff line change
Expand Up @@ -887,6 +887,9 @@ func initConsensusProtocols() {
vFuture.CompactCertWeightThreshold = (1 << 32) * 30 / 100
vFuture.CompactCertSecKQ = 128

// Enable transaction Merkle tree.
vFuture.PaysetCommit = PaysetCommitMerkle

Consensus[protocol.ConsensusFuture] = vFuture
}

Expand Down

0 comments on commit f4d4837

Please sign in to comment.