mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-09 14:48:08 -05:00
3.1 KiB
3.1 KiB
darkpool for drk
renegade for dummies
- renegade1 implemented for erc20 transparent token to be swapped between two parties, each party create a wallet
W = (B,O,F,K,r)of balance, order, fee, public keys, blinding value with transition state for every internal (within-darkpool)T_I=(\tilde{m_I},\tilde{v_i})encrypted by the receiver key, or external transaction (transparent)T_E=(\tilde{m_E},\tilde{v_E},\tilde{d_E}), each trader picks order o to be matched, it's corresponding covering balance b, and fee f, blinding r, and create commitments to o, b, f, r asH_o,H_b,H_f,H_rand a VALID-COMMITMENT zk-snark proof that those commitments are derived from known private witnesses. - from on-chain published VALID-COMMITMENT counterparties validate it's valid, and start matching process.
- reconstruct commitment over MPC through secret shares [o], [b], [f], [r], first construct match tuple
M=(\tilde{m_1}, \tilde{m_2}, \tilde{v_1}, \tilde{v_2}, d, f_1, f_2)validate exchange coins match,v_1==v_2, directions, and that fee covers relay fee. reconstruct commitments sharesH_{o_1},H_{b_1},H_{f_1},H_{o_2},H_{b_2},H_{f_2}, open shares through third party, then exchange notes.
renegade performance
- both bulletproof over mpc, and collaborative zksnark over mpc are 2 times proving, and verifying of single prover proof 2 ,3
dark renegade
- internal, and external wallet update state
T_I,T_Eare replaced by drk money transfer contract. - eliminate third-party for opening shares using witness encryption.
framework
- mpc-stark4 is spdz mpc built over stark-curve (curve can change), we have sage implementation 5
- mpc-bulletproof6 mpc r1cs with mpc inner product proof built over mpc-stark, we have sage implementation of the ipp 7
- plug darkfi-p2p network into mpc-bulletproof
- fork renegade8
- if the aim is to use halo2 proof zk-proofs, fork mpc-stark, and replace stark-curve with pallas-curve.
- rewrite renegade zk-snark proofs with darkfi compiler
- replace wallet update with money transfer contracts