Skip to content
Open
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
13 changes: 13 additions & 0 deletions dip-0027.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
* [Overview](#overview)
* [Asset Locking](#asset-locking)
* [Asset Lock Transaction](#asset-lock-transaction)
* [Version 2: Automatic Credit Assignment](#version-2-automatic-credit-assignment)
* [Proof of Finality](#proof-of-finality)
* [Asset Unlocking](#asset-unlocking)
* [Asset Unlock Transaction](#asset-unlock-transaction)
Expand Down Expand Up @@ -48,6 +49,8 @@ Switching to the credit pool relieves this issue by allowing withdrawals to be p
* [DIP-0007: LLMQ Signing Requests / Sessions](https://github.com/dashpay/dips/blob/master/dip-0007.md)
* [DIP-0010: LLMQ InstantSend](https://github.com/dashpay/dips/blob/master/dip-0010.md)
* [DIP-0011: Identities](https://github.com/dashpay/dips/blob/master/dip-0011.md)
* [DIP-0017: Dash Platform Payment Addresses and HD Derivation](https://github.com/dashpay/dips/blob/master/dip-0017.md)
* [DIP-0018: Dash Platform Payment Address Encodings](https://github.com/dashpay/dips/blob/master/dip-0018.md)
Comment thread
knst marked this conversation as resolved.

## System Requirements

Expand Down Expand Up @@ -84,6 +87,16 @@ Each Asset Lock transaction must create an unspendable output by using an OP_RET
* Its value is the amount of Dash to be locked
* The sum of all TxOut amounts must equal the value of the output

#### Version 2: Automatic Credit Assignment

When Dash Platform implemented the Platform address system defined by [DIP-17](https://github.com/dashpay/dips/blob/master/dip-0017.md), there was no way to directly fund a Platform address from the Core chain. Version 2 Asset Lock transactions enable transferring Core chain funds to Platform addresses by signalling that each entry in `credit_outputs` MUST be automatically credited to the Platform address matching the entry's public key hash or script hash. No accompanying state transition is required.

Version 2 extends the set of allowed `credit_outputs[i].scriptPubKey` forms to `{P2PKH, P2SH}`; all other consensus rules are unchanged from version 1.

The `v24` hard fork enables `version = 2`: prior to activation only `version = 1` is valid; after activation `version ∈ {1, 2}` is valid.

[DIP-0018](./dip-0018.md) Platform P2PKH addresses (`dash1k…`, `tdash1k…`) MUST be encoded as P2PKH `credit_outputs` entries; Platform P2SH addresses (`dash1s…`, `tdash1s…`) MUST be encoded as P2SH `credit_outputs` entries.

### Proof of Finality

It is important to note that Dash Core transactions achieve finality through ChainLocks and InstantSend locks. Therefore, these locks can be used to prove that value has been added to the credit pool and is ready for Platform use. For example, Platform can safely increase an Identity’s balance without concerns that the related Asset Lock transaction will be double-spent.
Expand Down
Loading