Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Documentation]Update RFC 201 for Coinbase handling #2747

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions RFC/src/RFC-0120_Consensus.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,15 @@ Every [block] MUST conform to the following:

If a [block] does not confirm to the above, the block should be rejected as invalid and the peer from which it was received marked as a malicious peer.

#### Coinbase

Every coinbase transaction contained in a block MUST conform to the following:

* Be only one UTXO
* Have only one kernel
* Contain the exact specified emission amount
* Contain the exact specified lock-height.

### Blockheaders

Every [block header] MUST contain the following fields:
Expand Down
2 changes: 2 additions & 0 deletions RFC/src/RFC-0201_TariScript.md
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,8 @@ pub struct BlockHeader {
pub total_script_offset: BlindingFactor,
}
```
One important distinction to make is that the coinbase utxo does not count towards the _script offset_. This is because the coinbase UTXO already has special rules accompanying it and it has no input. Thus we cannot generate a \\( \so \\) for a coinbase transaction.
The coinbase can allow any script and \\( k_{O} \\) as long as the range proof is validly constructed for \\( \hat{C_i} \\) and it does not break any of the rules in [RFC 120](RFC-0120_Consensus.md).

In addition to the changes given above, there are consensus rule changes for transaction and block validation.

Expand Down