-
Notifications
You must be signed in to change notification settings - Fork 58
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
Confidential Transactions #161
base: master
Are you sure you want to change the base?
Conversation
New Dash CTs will need a new type of address, a confidential address, to send and receive CT transactions. This means that the Dash full node will require new RPCs to create, validate, list and import confidential addresses. A prefix will need to be decided upon for these addresses so they can easily be differentiated from other Dash addresses. These addresses will be new data in wallet.dat and the code which reads and writes wallet.dat will need to also be updated to store and retrieve this data. The code which rescans blockchain history for transactions belonging to the current wallet will also need to be updated, i.e. the `-rescan` CLI option. | ||
|
||
These new CT addresses require a different base58 prefix to identify them as different from traditional Dash addresses. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Needs more details about ct address calculations - what data is used and how it's used exactly.
|
||
These new CT addresses require a different base58 prefix to identify them as different from traditional Dash addresses. | ||
|
||
### New RPCs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This applies to one implementation only, Dash Core, not sure if we want it here
* Takes no arguments. | ||
* Returns a list of all CT addresses | ||
|
||
### Modified RPCs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same
* A 33 byte Pederson commitment to the amount being transferred | ||
* A BP rangeproof that ensures the amount transferred is inside a certain interval between 0 and 2^N - 1 | ||
* To support all potential value transfers between 0 and 21M the BP rangeproof needs N equal to 52 | ||
* The exact size of the proof depends on the number of inputs and outputs | ||
* An explicit fee, since the fee cannot be computed by the network since the amount is hidden | ||
* A list of input UTXOs | ||
* A list of one or more output addresses | ||
* These may be normal or CT addresses |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need exact data structure changes, similar to other DIPs, smth like:
Some structure (e.g. transaction or transaction output etc.)
name | type | size | description |
---|---|---|---|
old_field | SomeTypeA | x bytes | some text |
new_field | SomeTypeB | y bytes | some text |
changed_field | SomeTypeC | m bytes | some text |
removed_field | SomeTypeD | n bytes | some text |
This is a draft DIP for adding Confidential Transactions (CTs) to Dash. I would like to request a DIP number be assigned.
Any and all feedback is welcome, including suggestions for a base58 prefix for CT addresses.