-
Notifications
You must be signed in to change notification settings - Fork 50
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
[500 SigmaUSD] Distributed signatures support #367
Comments
I will take it. |
Prover
@sahandzou I added requirements and implementation details in the description. Please keep in mind that I'm doing AtLeast implementation in #377 which makes a lot of small changes in sigma protocol implementation (see EDIT: Or alternatively you can branch from develop and start drafting |
thanks. |
@sahandzou Build and tests are green in my #377 in case you want to branch off of it. |
UPDATE: multi-sig test with two signers passed! |
The bounty is sent. Thank you! |
References:
EIP-11
Improved distributed signatures
New code should be in
prover::multi_sig
module.Generate commitments
fn generate_commitments(tx_context: TransactionContext, state_context: &ErgoStateContext) -> Result<TransactionHintsBag, _>
function should be an equivalent ofwallet/generateCommitments
node API call, see implementation at https://github.com/ergoplatform/ergo/blob/95139ec990fc91f8f4c70a61468edf8834143329/ergo-wallet/src/main/scala/org/ergoplatform/wallet/interpreter/ErgoProvingInterpreter.scala#L182-L222TransactionHintsBag
type should be an equivalent of https://github.com/ergoplatform/ergo/blob/95139ec990fc91f8f4c70a61468edf8834143329/ergo-wallet/src/main/scala/org/ergoplatform/wallet/interpreter/TransactionHintsBag.scala#L5Extract hints from signed(invalid) transaction
fn extract_hints(tx_context: TransactionContext, state_context: &ErgoStateContext, real_secrets_to_extract: Vec<SigmaBoolean>, simulated_secrets_to_extract: Vec<SigmaBoolean>) -> Result<TransactionHintsBag, _>
should be an equivalent ofscript/extractHints
node API call, see implementation at https://github.com/ergoplatform/ergo/blob/95139ec990fc91f8f4c70a61468edf8834143329/ergo-wallet/src/main/scala/org/ergoplatform/wallet/interpreter/ErgoProvingInterpreter.scala#L224-L263Hints support in prover and tx signing
tx_hints: TransactionHintsBag
parameter toWallet::sign_*
methods and pass it down to prover (asHintsBag
);Wasm API.
TransactionHintsBag
type via wrapper;tx_hints: TransactionHintsBag
parameters toWallet::sign_*
methods;generate_commitments
andextract_hints
(passing serialized SigmaBooleans) functions.Testing.
generate_commitments
should be implemented after https://github.com/ScorexFoundation/sigmastate-interpreter/blob/455d4a3b5a82eec9301be89019d8ea675386474a/sigmastate/src/test/scala/sigmastate/utxo/ProverSpecification.scala#L17-L58The text was updated successfully, but these errors were encountered: