-
-
Notifications
You must be signed in to change notification settings - Fork 53
Revision of v0.11.1 increasing code reliability #292
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
base: v0.11.1
Are you sure you want to change the base?
Conversation
and v0.12 underlying stack
Codecov ReportAttention: Patch coverage is
❌ Your patch check has failed because the patch coverage (1.0%) is below the target coverage (60.0%). You can increase the patch coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## v0.11.1 #292 +/- ##
=========================================
+ Coverage 9.8% 10.4% +0.6%
=========================================
Files 27 23 -4
Lines 2670 1785 -885
=========================================
- Hits 262 185 -77
+ Misses 2408 1600 -808
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
@codecov-ai-reviewer review |
On it! We are reviewing the PR and will provide feedback shortly. |
PR DescriptionThis pull request refactors the RGB Core library to simplify its architecture, improve maintainability, and enhance security by removing the AluVM-based smart contract execution environment and replacing it with a declarative validation approach using Vesper. It also updates dependencies and streamlines data structures for improved efficiency. Click to see moreKey Technical Changes
Architecture Decisions
Dependencies and Interactions
Risk Considerations
Notable Implementation Details
|
@codecov-ai-reviewer got confused: vesper is not used in any validation. As before it is used just in producing docs on commitment structures, and was moved into a separate feature to make the dependency tree lighter when |
Could you please open a PR targeting |
Sure, but I do not see such a branch here. Is it this one? zoedberg#3 It seems somehow it got also two merges which I did for your branches from here... |
I meant this branch https://github.com/zoedberg/rgb-tests/tree/0.11.1-3 |
Hm, but that would require rgb-std and rgb changes where I would need your help. Before processing with them can you at least concept and approach ack here? |
We haven’t yet reviewed the code deeply enough to provide an N/ACK. We thought that updating rgb-tests was a quick way to first of all be sure no tested features have been removed. |
Ok, here it is: RationalFix double spending bugs and backdoors you have introduced into the consensus code. Described here: #288 (review) I am doing your work for you. Will this work? |
@dr-orlovsky could you please expand your comment to properly explain the rationale behind your changes? Your PR introduces significant modifications and appears to remove several features currently used by existing wallets. If you're seeking a concept ACK, it's important to explain why the specific changes are necessary. If you don't care about receiving an ACK, then it's unclear why you're asking for one in the first place. |
This PR must not contain any changes which reduce known wallet or asset use of RGB. If you see any of the changes which can do that (even potentially) please let me know - and I will either explain how that functionality is in fact preserved, or, if you were right, will bring back missing functions. Regarding the rational, it seems we just misunderstand each other. There is no other rational here than the one I already described:
I am willing to adopt these changes in |
There are several features that we are not sure are preserved. Let's start from the first that concerns us the most: by removing the |
There are several ways how this can be achieved. First, a contract schema may allow to spend or allocate multiple types in a transition. So, for RGB20 schema which supports secondary inflation the "inflate" transition may be allowed to spend "owned" allocations. Second option is to provide a dedicated transition type in a schema to unwind such conditions. This is not the same as a "blank transition"; the thing will be only used by the issuer if he got into this situation. In all existing RGB2x standards the only party who can get several different types of assignments on the same UTXO is the asset issuer - and it will have tools to unwind that with both of approaches. The users are unaffected anyway. |
Re-introducing a transition that allows to spend or allocate multiple (unrelated) types in a transition seems like a regression, even if not called "blank transitions" the proposed solutions would have similar issues. Also, notably, it's not only issuers who could end up in this situation, as right transfers are possible. |
First, it is not a regression: none of functionality is lost. The purpose is reduction of the attack surface: using bundles at the consensus level is an overkill for this!
Sorry, I do not understand. The only thing you need is a transition type known only for issuer, which does the same thing as normal asset transfer, plus ensures that the sum of inflation inputs is equal to the sum of inflation outputs. Literally, one line of code.
When an issue right is transferred, the receiving party becomes an issuer by definition. Thus, it is only issuers who are affected. |
It is. In order to conceal transitions (and thus increase privacy) we need to be able to define multiple transitions.
From the info you provided it's unclear what exactly you're suggesting. Would you mind providing the line of code that would achieve this?
There will not be just issue rights, also other kind of rigths exist and may be transferred to non-issuers as well. |
I have no idea what do you mean by that. Which privacy increase? v0.11.1 before this version provides no privacy with bundles.
This line of code will exist in a PR I will make in
It is clear that the holders of this rights are singular parties designated by the issuer - and clearly not the common users of the assets or contracts. Overall, I am tired of this arguing just for the sake of arguing. If you do not want to pay attention to my suggestions and fixes, just say that directly and stop wasting my time. |
#293 brings back the ability to conceal transitions in a bundle, we were already working on it and we didn't want to roll it back.
I still don't see why we should remove the possibility of multiple transitions in a bundle. It reduces the toolset available for allocation management and it prevents concealed transitions, while not causing any (known) issues.
I paid enough attention to be able to say that at least some of them go in an undesired direction. Also, it doesn't seem to me the right moment for such a deep consensus rework, we are aiming towards more targeted bugfixes and a release as soon as possible. |
This makes 0.11.1 smaller and more audible, removing unneeded dependencies, not-anymore-used code, functionality and getting rid of high-risk code, significantly reducing attack surface.
Key highlights: