You've already forked specification
Merge branch 'master' of /opt/jwik/data/repository
This commit is contained in:
@@ -13,16 +13,13 @@
|
|||||||
- [Block](/protocol/blockchain/block)
|
- [Block](/protocol/blockchain/block)
|
||||||
- [Header](/protocol/blockchain/block/block-header)
|
- [Header](/protocol/blockchain/block/block-header)
|
||||||
- [Merkle Tree](/protocol/blockchain/block/merkle-tree)
|
- [Merkle Tree](/protocol/blockchain/block/merkle-tree)
|
||||||
- Merkle Root
|
- [Partial Merkle Tree](/protocol/blockchain/block/merkle-tree/partial-merkle-tree)
|
||||||
- Partial Merkle Tree
|
|
||||||
- Transactions
|
- Transactions
|
||||||
- Legacy Transaction Ordering
|
- Legacy Transaction Ordering
|
||||||
- Canonical Transaction Ordering (CTOR)
|
- Canonical Transaction Ordering (CTOR)
|
||||||
- [Script](/protocol/blockchain/script)
|
- [Script](/protocol/blockchain/script)
|
||||||
- Opcodes
|
- Opcodes
|
||||||
...
|
...
|
||||||
- Script Execution
|
|
||||||
- Stack
|
|
||||||
- Transaction Validation
|
- Transaction Validation
|
||||||
- Block Level Validation Rules
|
- Block Level Validation Rules
|
||||||
- Network Level Validation Rules
|
- Network Level Validation Rules
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# Merkle Tree
|
||||||
|
|
||||||
|
A [merkle tree](https://en.wikipedia.org/wiki/Merkle_tree) is a data structure designed to build a hash of many separate pieces of data and allowing efficient recalculation of the hash when items are added, removed, or changed.
|
||||||
|
|
||||||
|
In Bitcoin Cash, the transactions in a [block](/protocol/blockchain/block) are built into a merkle tree. The root of this tree, or **merkle root**, is a hash representing a compound, indirect hash of all of the items added to the merkle tree (i.e. transactions) and is included in the [block header](/protocol/blockchain/block/block-header), ensuring the block hash is dependent (indirectly) on all of the transactions that are included in the block.
|
||||||
|
|
||||||
|
Using a merkle tree to manage hashing the transactions in a block enables efficient addition of newly submitted transactions to a block being mined. Rather than re-hashing the entirety of the data of the transactions to be included in the block, the new transaction can be hash and then a small number of hashes can be recalculated, leading up to the merkle root. For large blocks this can heavily reduce the amount of data to be (re-)hashed.
|
||||||
|
|
||||||
|
Using merkle trees also allows for transferring only a subset of a block while still providing confidence that the data provided in fact appeared in the block in question. For more information, see [Partial Merkle Tree](/protocol/blockchain/block/merkle-tree/partial-merkle-tree).
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# Partial Merkle Tree
|
||||||
@@ -1 +1,3 @@
|
|||||||
# Script
|
# Script
|
||||||
|
|
||||||
|
## Script Execution
|
||||||
Reference in New Issue
Block a user