-
Notifications
You must be signed in to change notification settings - Fork 259
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
ARC-0039 - signal records, and their necessity #62
base: master
Are you sure you want to change the base?
Conversation
From protocol point of view, to achieve this, we will need a way to use a record without consuming it. |
I'm also not sure how you prove the record hasn't been spent yet. Let's say there's a user Alice who creates a record and then a different user Bob wants to use the public parts of the record. I agree with @HarukaMa above that there's an issue to think through regarding how to spend or avoid spending this record. There's also an issue with checking that it hasn't been spent. Spending a record should only be known to the user who can generate the serial number for a record which requires the private key. |
@HarukaMa @evanmarshall I agree that the spending a record should be known only to the user. EXCEPT if the very intention of the user is the whole world to know that it was spent. Solution could be to allow to OPTIONALLY make the sequence number public, like any other field of the record. If user makes it private, that is the current behaviour, if public, anyone can know if the record has been spent. And if this "little" addition is done, I guarantee you will have a succesful ZeFi system: a system that is private, and a one that scales. I cant stress enough how important this "little" feature is for the success of ZeFi. |
I have updated my proposal based on your comments! Highly appreciate your help! |
Signed-off-by: r001 <[email protected]>
Signed-off-by: r001 <[email protected]>
Signed-off-by: r001 <[email protected]>
@r001 thank you for the submission! We plan to either close or refresh this PR on February 10th, 2025. |
Hi, Best |
How is a public record different from a mapping? It seems like the only difference is the ability to pass it directly to a transition. But a transition can always take arguments and check them in the finalize against a mapping. |
Your statement is almost true. In case of public record you do not need a finalize block at all and this might be a difference. My original motivation was to do this proposal, is that I found that there was not possible to use any messaging via records from one contract to an other only via very expensive mappings. My question is how much more expensive is it to store an info in mappings than in records. Correct me if I'm wrong, but If we do with mappings a VM must be fired at each validator O(n) difficulty for each For mappings that update frequently it is not feasible to write the logic in the Question do we have a calculation how much more costy is for us to put a peice of code in the transition or the same code in the If mappings and the associated code uses the same or less resources as records then this proposal is not needed. |
ARC0039 - README.md
Discussion
Aleo blockchain is both programmable and encrypted, positioning itself as a unique platform in the increasingly crowded DeFi market. With the current market saturation, gaining traction in this space is becoming more challenging. To stand out and attract significant players from traditional financial institutions, Aleo must introduce scalability as well to its DeFi applications. This proposal aims to unlock this potential by introducing a new type of record: signal records.
Signal records are designed to provide publicly readable information while ensuring that creation and consumption are restricted to a single entity. This feature is crucial for enabling scalable, secure, and efficient operations on Aleo's platform, making it more attractive to large financial institutions.
Key Benefits of Signal Records:
This new feature has several applications, including but not limited to:
Smart contract can create and recreate one or several signal record(s) of smart contract state. 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.
A signal 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 signal record. For DeFi apps a reliable UTC time source is a must.The existence of a signal record can prove a transition is enabled or disabled. The Administrator can issue the signal record.
A signal records public field can be the price provided by some Oracle for a token. The signal record can be updated by Oracle and read by anyone.