Arc0039 - "owned by one and used by many" type of record, and their necessity #62
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
ARC0039 - README.md
Discussion
Aleo is a L1 blockchain using ZK proofs. This feature enables significant scalability as contracts are run by one, and verified by many in O(1) time. This is opposed to legacy protocols where validators run code again to verify. There is a caveat though, whatever is executed in the
finalize()
function uses a one-time execution and a many-time execution model. This means it is only as scalable as legacy protocols. Aleo's record infrastructure is scalable. SnarkVM needs one new minor (?) feature to avoidfinalize()
function: in transitions, make it possible to access the public fields of records whose owner differs from the signer. In other words, we need “owned by one and used by many" types of records for transitions.This new feature has several applications, including but not limited to:
An authority can create and recreate a record of system settings. These can be used in any transition by anyone. Once the settings are updated only the updated settings will be applicable to the next transition.
The existence of a record can prove a transition is enabled or disabled. The Administrator can issue the record.
A records public field can be the price provided by some Oracle for a token. The record can be updated by Oracle and read by anyone.
A record of the current UTC time can be consumed and recreated by a node every
x
minutes and read by anyone as a trusted time record.