diff --git a/home.md b/home.md index a836059..18a50fc 100644 --- a/home.md +++ b/home.md @@ -17,8 +17,8 @@ - [Script](/protocol/blockchain/script) - [Op Codes](/protocol/blockchain/script#op-codes) - [Transaction Validation](/protocol/blockchain/transaction-validation) - - [Block Level Validation Rules](/protocol/blockchain/transaction-validation/block-level-validation-rules) - - [Network Level Validation Rules](/protocol/blockchain/transaction-validation/network-level-validation-rules) + - [Block-Level Validation Rules](/protocol/blockchain/transaction-validation/block-level-validation-rules) + - [Network-Level Validation Rules](/protocol/blockchain/transaction-validation/network-level-validation-rules) - Standardness Rules - Custom / Non Standard - Cryptography diff --git a/protocol/blockchain/transaction-validation.md b/protocol/blockchain/transaction-validation.md new file mode 100644 index 0000000..a0de586 --- /dev/null +++ b/protocol/blockchain/transaction-validation.md @@ -0,0 +1,11 @@ +# Transaction Validation + +Transaction validation in Bitcoin Cash involves a variety of checks that determine what happens to a transactions that has been received by a given node. Some transactions may be considered invalid and rejected outright, others may be considered valid by some nodes but invalid by other nodes, and some valid transactions may not be distributed throughout the network as readily as others. Each of these cases culminate in a network consensus by way of the [blockchain](/protocol/blockchain). That is to say that although these rules clearly impact what transactions appears in blocks, any uncertainty about the validity of a transaction are quickly be resolved as new blocks are mined. + +Transaction validation can be broken down into three major categories: + + - [Script](/protocol/blockchain/script) Execution Rules which determine whether the inputs of a transaction are considered spendable by the transaction + - [Block-Level Validation Rules](/protocol/blockchain/transaction-validation/block-level-validation-rules) which determine whether transactions are valid in a given blockchain context (i.e. in a given block with a given history) + - [Network-Level Validation Rules](/protocol/blockchain/transaction-validation/network-level-validation-rules) which determine whether transactions are relayed from node to node + +The three of these are closely intertwined but often result in different behavior when they are violated. For details, see the linked pages for definitions of each. \ No newline at end of file diff --git a/protocol/blockchain/transaction-validation/block-level-validation-rules.md b/protocol/blockchain/transaction-validation/block-level-validation-rules.md new file mode 100644 index 0000000..0db8f4c --- /dev/null +++ b/protocol/blockchain/transaction-validation/block-level-validation-rules.md @@ -0,0 +1 @@ +# Block-Level Validation Rules diff --git a/protocol/blockchain/transaction-validation/network-level-validation-rules.md b/protocol/blockchain/transaction-validation/network-level-validation-rules.md new file mode 100644 index 0000000..07ee838 --- /dev/null +++ b/protocol/blockchain/transaction-validation/network-level-validation-rules.md @@ -0,0 +1 @@ +# Network-Level Validation Rules