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

Added documents for design decision explorations and zkp+transactions design #2

Open
wants to merge 24 commits into
base: master
Choose a base branch
from

Conversation

ngkabra
Copy link
Contributor

@ngkabra ngkabra commented Jul 23, 2021

Added 2 new documents: one for exploring architectural design decisions (currently UTXO vs account models) and one for zkp+transactions+public/private ledger design

ngkabra added 2 commits July 22, 2021 12:29
Currently it has a discussion of the UTXO vs Account models. Later we
can more. The idea is that as new people join the project this will
help them get up to speed quickly on history of our thought process
and the design decisions.
- IOUType
- UOM (Unit of Measurement)
- PublicKey
- NotaryID (the primary notary for this wallet)
Copy link
Collaborator

Choose a reason for hiding this comment

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

Should we keep the primary notary to be decided at run time by the notary pool?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Actually, based on our discussion regarding how Notaries are assigned and possibly changed, I'll need to make bunch of small changes throughout the document. Will do that next week.

- TxCoreHash
- SIn1ID, SIn1Hash, TxCoreHash, SIn1Proof
- SIn1ID, SIn1Hash, TxCoreHash, SIn1Proof
- SOut1ID, SOut1Hash
Copy link
Collaborator

Choose a reason for hiding this comment

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

I suspect all attributes for out states that need to be recorded in the public ledger will be required here.

@rkshbrv
Copy link
Contributor

rkshbrv commented Jul 30, 2021

@ngkabra , apropos of "Proof of knowledge of the PrivateKey matching the PublicKey in SIn1Sleeve" in this as a separate proof from the statehash proof (which is how I read it), I was wondering if we should have proof of the whole state itself being signed by the (user's) Private Key .. this would be like the user authorizing the dropping of that UTXO? This would be to get over the possibility that the Wallet Ooperator could otherwise reuse the isolated proof over spurious transactions?

In fact perhaps @ngkabra the end user of the input utxo being extinguished could sign the transaction and that signature could be included in the transaction?

@ngkabra
Copy link
Contributor Author

ngkabra commented Jul 30, 2021

In fact perhaps @ngkabra the end user of the input utxo being extinguished could sign the transaction and that signature could be included in the transaction?

Yes, the owners of all the input states being extinguished need to sign the entire transaction. I will clarify that in the document.

Used attributes consistently to refer to members of states and
data-members for other uses. The term _owners_ is now used instead of
signatories.

Notary now adds a timestamp, computes a transaction_id by hashing the
transaction contents, and signs to the transaction. The transaction_id
is returned to the caller.

Clarified how the list of owners is computed.

Clarified the difference between public and private inputs to the ZKP
program
Transaction creator and other owners' are treated differently.

Transaction creator directly proves proof of knowledge of private id.

The other owners only sign a hash of the transaction core (not the
full transaction core).
Other owners now sign only the hash of the transaction core.

The requirements of the ZKP digital signature scheme now clarify that
only the signature verification needs to be ZKP friendly

Appendix of rejected ideas added

Creator private id is now a private input to the ZKP program
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants