Merge branch 'master' of /opt/jwik/data/repository

This commit is contained in:
bitcoin
2019-12-18 15:07:17 -05:00
4 changed files with 13 additions and 4 deletions
+1 -4
View File
@@ -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
+9
View File
@@ -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
+2
View File
@@ -1 +1,3 @@
# Script # Script
## Script Execution