compact multi signatures for smaller blockchains
play

Compact Multi-Signatures for Smaller Blockchains Dan Boneh 1 , Manu - PowerPoint PPT Presentation

Compact Multi-Signatures for Smaller Blockchains Dan Boneh 1 , Manu Drijvers 2 , Gregory Neven 2 1 Stanford University 2 DFINITY Bitcoin Blockchain and transactions Input 1 Output 1 Witness Input 2 Output 2 Witness Pointer to previous


  1. Compact Multi-Signatures for Smaller Blockchains Dan Boneh 1 , Manu Drijvers 2 , Gregory Neven 2 1 Stanford University 2 DFINITY

  2. Bitcoin Blockchain and transactions Input 1 Output 1 Witness Input 2 Output 2 Witness Pointer to previous recipient address & Witness data for output with amount all transactions addr in = H(pk) addr out = H(pkโ€™) pk, ๐žฝ under pk amount in = 1 BTC amount out = 1 BTC

  3. Saving space is important โ€ข Larger transactions mean higher network and storage requirements โ€ข Current Bitcoin blockchain is almost 200 GB โ€ข Block size is limited โ€ข Limits transaction throughput โ€ข Smaller transactions can mean higher throughput โ€ข Goal: minimize total witness size Input 1 Output 1 Witness using multisignatures Input 2 Output 2 Witness

  4. Multi-Signature Schemes ๐‘ก๐‘™ ( , ๐‘ž๐‘™ ( โ† KGen(1 = ) ๐‘ก๐‘™ + , ๐‘ž๐‘™ + โ† KGen(1 = ) ๐‘ก๐‘™ * , ๐‘ž๐‘™ * โ† KGen(1 = ) Sign ๐‘ž๐‘™ ( , ๐‘ž๐‘™ * , ๐‘ž๐‘™ + , ๐‘ก๐‘™ ( , ๐‘› โ†” Sign ๐‘ž๐‘™ ( , ๐‘ž๐‘™ * , ๐‘ž๐‘™ + , ๐‘ก๐‘™ * , ๐‘› โ†” Sign ๐‘ž๐‘™ ( , ๐‘ž๐‘™ * , ๐‘ž๐‘™ + , ๐‘ก๐‘™ + , ๐‘› ฯƒ ฯƒ ฯƒ โ€ข Ver {๐‘ž๐‘™ ( , ๐‘ž๐‘™ * , ๐‘ž๐‘™ + }, ฯƒ, ๐‘› = 1/0 โ€ข Every signer must agree to signing m โ€ข Key aggregation : ๐‘๐‘ž๐‘™ = KAgg({๐‘ž๐‘™ ( , ๐‘ž๐‘™ * , ๐‘ž๐‘™ + }) โ€ข Ver ๐‘๐‘ž๐‘™, ฯƒ, ๐‘› = 1/0

  5. Recap: Boneh-Lynn-Shacham signatures Let ๐ป ( = ๐‘• ( , ๐ป * = ๐‘• * , ๐ป C = ๐‘• C , with bilinear pairing ๐‘“ FG โ€ข KGen : ๐‘ž๐‘™ = ๐‘• * โ€ข Sign(sk, m) : ๐œ = ๐ผ ๐‘› FG โ€ข Verify(pk, ฯƒ, m) : ๐‘“ ๐œ, ๐‘• * = ๐‘“(๐ผ ๐‘› , ๐‘ž๐‘™)

  6. ๏ฟฝ๏ฟฝ ๏ฟฝ๏ฟฝ Naรฏve BLS Multi-signatures Let ๐ป ( = ๐‘• ( , ๐ป * = ๐‘• * , ๐ป C = ๐‘• C , with bilinear pairing ๐‘“ FG K โ€ข KGen : ๐‘ž๐‘™ J = ๐‘• * โ€ข KAgg(pk 1 , โ€ฆ, pk n ) : ๐‘๐‘ž๐‘™ = โˆ ๐‘ž๐‘™ J โ€ข Sign(pk 1 , โ€ฆ, pk n , sk i , m) : ๐‘ก J = ๐ผ ๐‘› FG K , ๐œ = โˆ ๐‘ก J โ€ข Verify(apk, ฯƒ, m) : ๐‘“ ๐œ, ๐‘• * = ๐‘“(๐ผ ๐‘› , ๐‘๐‘ž๐‘™) PQ Rogue-Key Attack: Adversary chooses ๐‘ž๐‘™ = N O RG โˆ— , Adversary can sign for {๐‘ž๐‘™, ๐‘ž๐‘™ โˆ— } by setting ๐œ = ๐ผ ๐‘› FG Can be mitigated using โ€œproofs-of-possessionโ€ [RY07]

  7. ๏ฟฝ๏ฟฝ ๏ฟฝ๏ฟฝ New BLS Multi-signatures without PoPs Let ๐ป ( = ๐‘• ( , ๐ป * = ๐‘• * , ๐ป C = ๐‘• C , with bilinear pairing ๐‘“ FG K โ€ข KGen : ๐‘ž๐‘™ J = ๐‘• * T K โ€ข KAgg(pk 1 , โ€ฆ, pk n ) : ๐‘๐‘ž๐‘™ = โˆ ๐‘ž๐‘™ J , with ๐‘ J = ๐ผ ( (๐‘ž๐‘™ J , {๐‘ž๐‘™ ( , โ€ฆ , ๐‘ž๐‘™ V }) T K โ€ข Sign(pk 1 , โ€ฆ, pk n , sk i , m) : ๐‘ก J = ๐ผ W ๐‘› FG K , ๐œ = โˆ ๐‘ก J โ€ข Verify(apk, ฯƒ, m) : ๐‘“ ๐œ, ๐‘• * = ๐‘“(๐ผ W ๐‘› , ๐‘๐‘ž๐‘™) Uses trick from [Maxwell-PSW18] Thm: secure multi-signature scheme under co-CDH in ROM

  8. Bitcoin Multisig address Bitcoin with multiple ECDSA signatures Bitcoin using our BLS multi-signatures Witness Input Output Witness Input Output Pointer to Pointer to addr in = H(apk) addr in = H(pk 1 , โ€ฆ, pk n ) amount in = 1 BTC amount in = 1 BTC apk , ๐žฝ pk 1 , โ€ฆ, pk n, ๐žฝ 1 , ..., ๐žฝ n 2 group elements 3n group elements

  9. ๏ฟฝ๏ฟฝ ๏ฟฝ๏ฟฝ ๏ฟฝ๏ฟฝ Aggregatable Multi-Signatures Extend multi-signature definition with two additional algorithms โ€ข SigAgg({apk i , m i , ฯƒ i }): Aggregate a set of multi-signatures into a single object โ€ข AggVerify({apk i , m i }, ฮฃ): Verify that the aggregate multi-signature For our BLS multisignature scheme T K โ€ข Sign(pk 1 , โ€ฆ, pk n , sk i , m) : ๐‘ก J = ๐ผ W ๐‘๐‘ž๐‘™, ๐‘› FG K , ๐œ = โˆ ๐‘ก J โ€ข SigAgg({apk i , m i , ฯƒ i }): ฮฃ = โˆ ๐œ J โ€ข AggVerify({apk i , m i }, ฮฃ): ๐‘“ ฮฃ, ๐‘• * = โˆ ๐‘“(๐ผ W ๐‘› J , ๐‘๐‘ž๐‘™ J ) Thm: secure aggregatable multisignature scheme under ๐œ” -co-CDH in ROM

  10. Aggregatable Multi-Signatures in Bitcoin Block of m transactions, each spending from an n -multisig address Bitcoin with multiple ECDSA signatures Bitcoin using aggregatable multi-signatures Input Output Input Output Witness Input Output Input Output Witness Witness m m Input Output Input Output Witness โ‹ฎ โ‹ฎ โ‹ฎ โ‹ฎ โ‹ฎ โ‹ฎ Combined witness contains Combined witness contains ๐‘œ โ‹… ๐‘› public keys ๐‘› (aggregate) public keys โ€ข โ€ข ๐‘œ โ‹… ๐‘› signatures 1 aggregate multi-signature โ€ข โ€ข 1296 KB 216 KB

  11. t -out-of- n wallets โ€ข Multi-signatures always require n -out-of- n , what about other policies? โ€ข Typical threshold wallets have addr = ๐ผ(๐‘ž๐‘™ ( , โ€ฆ , ๐‘ž๐‘™ V , ๐‘ข) โ€ข Need to reveal n keys and t signatures โ€ข For small V C , use multi-signatures โ€ข Exhaustively list apk of all t-size subsets root apk 1 apk 2 apk 3 apk 4 apk 5 apk 6

  12. Can we handle arbitrary t, n? Yes! Using a new Accountable Subgroup Multi-signature (ASM) โ€ข Aggregate public key ๐‘๐‘ž๐‘™ โˆˆ ๐ป * โ€ข Any subset ๐‘‡ = [1, 1, 0, โ€ฆ ] can sign in an accountable way โ€ข Signature ๐œ โˆˆ ๐ป ( ร—๐ป * โ€ข Thm : under ๐œ” -co-CDH in ROM โ€ข t-out-of-n Bitcoin transaction โ€ข Reveal ๐‘๐‘ž๐‘™ , ๐œ , ๐‘‡ โ€ข Almost constant: 3 group elements + n bits

  13. ๏ฟฝ๏ฟฝ ๏ฟฝ Our ASM Scheme Alice Bob Charlie FG f FG O FG g ๐‘ž๐‘™ ( = ๐‘• * ๐‘ž๐‘™ * = ๐‘• * ๐‘ž๐‘™ + = ๐‘• * T K = ๐‘• * TFG Key aggregation: ๐‘๐‘ž๐‘™ = โˆ ๐‘ž๐‘™ J Membership keys: ๐‘›๐‘™ ( = ๐ผ * ๐‘๐‘ž๐‘™, 1 TFG ๐‘›๐‘™ * = ๐ผ * ๐‘๐‘ž๐‘™, 2 TFG ๐‘›๐‘™ + = ๐ผ * ๐‘๐‘ž๐‘™, 3 TFG Sign: ๐‘ก ( = ๐ผ W ๐‘๐‘ž๐‘™, ๐‘› FG f โ‹… ๐‘›๐‘™ ( ๐‘ก * = ๐ผ W ๐‘๐‘ž๐‘™, ๐‘› FG O โ‹… ๐‘›๐‘™ * Combine: (๐‘™ = ๐‘ž๐‘™ ( โ‹… ๐‘ž๐‘™ * , ๐‘ก = ๐‘ก ( โ‹… ๐‘ก * ) 3 pairings Verify(apk, S=[1,1,0], (k, s)) : ๐‘“ ๐‘ก, ๐‘• ( = ๐‘“(โˆ ๐ผ * ๐‘๐‘ž๐‘™, ๐‘— , ๐‘๐‘ž๐‘™) โ‹… ๐‘“(๐ผ * ๐‘๐‘ž๐‘™, ๐‘› , ๐‘™) Jโˆˆk

  14. Conclusion โ€ข BLS multi-signatures without PoPs โ€ข Support key aggregation โ€ข Support aggregation of multi-signatures โ€ข Accountable Subgroup Multi-signatures โ€ข Key aggregation โ€ข Any subgroup can create constant size accountable multi-signature โ€ข Supports partial aggregation โ€ข Schnorr multi-signatures without PoPs โ€ข All schemes with PoPs

  15. Thanks! ia.cr/2018/483

  16. Can we handle arbitrary t, n? Yes! Using a new Accountable Subgroup Multi-signature (ASM) โ€ข Aggregate public key ๐‘๐‘ž๐‘™ โˆˆ ๐ป * โ€ข Any subset ๐‘‡ = [1, 1, 0, โ€ฆ ] can sign in an accountable way โ€ข Signature ๐œ โˆˆ ๐ป ( ร—๐ป * โ€ข Thm : under ๐œ” -co-CDH in ROM Input Output Witness Pointer to apk, t, ๐žฝ , S addr in = H(apk,t) approx. 3 group elements amount in = 1 BTC

Recommend


More recommend