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
12 changes: 12 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,7 @@ 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-0018: Dash Platform Payment Address Encodings](https://github.com/dashpay/dips/blob/master/dip-0018.md)

## System Requirements

Expand Down Expand Up @@ -84,6 +86,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

A `version = 2` Asset Lock transaction signals that each entry in `credit_outputs` MUST be automatically credited by Platform to the Identity matching the entry's public key hash or script hash, without an accompanying Identity Registration or Top-Up state transition.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This update is intended to allow sending directly to platform addresses, correct? The text mentions crediting to an identity, but platform addresses aren't linked to particular identities.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@knst can you check the comment above?


`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