-
Notifications
You must be signed in to change notification settings - Fork 990
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
Add multisig bulletproof functions #3645
Conversation
Looking good at first glance. Do you think adding tests for the ser/deser would be useful? |
I did run into issues with V5 slate changes in Can take a look at what the ser/deser tests would look like for the node. Are you talking about the intermediate states? The final bulletproof looks the same AFAIU. In the wallet, I think only the Serialization tests for multiparty bulletproofs are probably better suited in the wallet, IMHO. |
@GeneFerneau If I understand this correctly, the multi-party bulletproofs will be seen as invalid if we try to use the existing verify bulletproof APIs, which is why we're exposing |
As I understand it, the No hardfork necessary, AFAIU |
Yep, you're correct. I don't think you even need to use the batch api here though. You're only verifying a single bulletproof by the looks of it. |
Definitely, I can remove it if you want. Just thought it might be useful for if/when the node wanted to do batch verify, maybe during IBD? |
We already use the batch api during IBD. It's called from TransactionBody::validate() |
I'll remove |
Add function to create a multisignature bulletproof. Callers must go through multiple steps to create the full bulletproof Each party must complete each step in the protocol, and the initiator finalizes the multisignature bulletproof
K: Keychain, | ||
B: ProofBuild, | ||
{ | ||
// TODO: proper support for different switch commitment schemes |
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.
Doesn't the derive_key call on line 83 take care of the switch commitment? What more is needed?
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.
It does, and I copied this comment from the existing create
function. I think it's referring to being able to specify the SwitchCommitmentType
with a function argument.
I can add that if you want.
Merged these changes into #3643 |
Add functions to create and verify a multisignature bulletproof. Callers must go
through multiple steps to create the full bulletproof
Each party must complete each step in the protocol, and the initiator
finalizes the multisignature bulletproof