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

โ–ถ
compact multi signatures for smaller blockchains
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Compact Multi-Signatures for Smaller Blockchains

Dan Boneh1, Manu Drijvers2, Gregory Neven2

1 Stanford University 2 DFINITY

slide-2
SLIDE 2

Bitcoin Blockchain and transactions

Witness Input1 Output1 Input2 Output2

Pointer to previous

  • utput with

addrin = H(pk) amountin = 1 BTC recipient address & amount addrout = H(pkโ€™) amountout = 1 BTC Witness data for all transactions pk, ๐žฝ under pk

Witness

slide-3
SLIDE 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

using multisignatures

Witness

Input1 Output1 Input2 Output2

Witness

slide-4
SLIDE 4

Multi-Signature Schemes

  • Ver {๐‘ž๐‘™(, ๐‘ž๐‘™*, ๐‘ž๐‘™+}, ฯƒ, ๐‘› = 1/0
  • Every signer must agree to signing m
  • Key aggregation: ๐‘๐‘ž๐‘™ = KAgg({๐‘ž๐‘™(, ๐‘ž๐‘™*, ๐‘ž๐‘™+})
  • Ver ๐‘๐‘ž๐‘™, ฯƒ, ๐‘› = 1/0

๐‘ก๐‘™(, ๐‘ž๐‘™( โ† KGen(1=) ๐‘ก๐‘™*, ๐‘ž๐‘™* โ† KGen(1=)

Sign ๐‘ž๐‘™(, ๐‘ž๐‘™*, ๐‘ž๐‘™+, ๐‘ก๐‘™(, ๐‘› โ†” Sign ๐‘ž๐‘™(, ๐‘ž๐‘™*, ๐‘ž๐‘™+, ๐‘ก๐‘™*, ๐‘› โ†” Sign ๐‘ž๐‘™(, ๐‘ž๐‘™*, ๐‘ž๐‘™+, ๐‘ก๐‘™+, ๐‘›

๐‘ก๐‘™+, ๐‘ž๐‘™+ โ† KGen(1=)

ฯƒ ฯƒ ฯƒ

slide-5
SLIDE 5

Recap: Boneh-Lynn-Shacham signatures

Let ๐ป( = ๐‘•( , ๐ป* = ๐‘•* , ๐ปC = ๐‘•C , with bilinear pairing ๐‘“

  • KGen: ๐‘ž๐‘™ = ๐‘•*

FG

  • Sign(sk, m): ๐œ = ๐ผ ๐‘› FG
  • Verify(pk, ฯƒ, m): ๐‘“ ๐œ, ๐‘•* = ๐‘“(๐ผ ๐‘› , ๐‘ž๐‘™)
slide-6
SLIDE 6

Naรฏve BLS Multi-signatures

Let ๐ป( = ๐‘•( , ๐ป* = ๐‘•* , ๐ปC = ๐‘•C , with bilinear pairing ๐‘“

  • KGen: ๐‘ž๐‘™J = ๐‘•*

FGK

  • KAgg(pk1 , โ€ฆ, pkn): ๐‘๐‘ž๐‘™ = โˆ ๐‘ž๐‘™J
  • Sign(pk1 , โ€ฆ, pkn , ski, m): ๐‘กJ = ๐ผ ๐‘› FGK, ๐œ = โˆ ๐‘กJ
  • Verify(apk, ฯƒ, m): ๐‘“ ๐œ, ๐‘•* = ๐‘“(๐ผ ๐‘› , ๐‘๐‘ž๐‘™)

Rogue-Key Attack: Adversary chooses ๐‘ž๐‘™ = NO

PQ

RGโˆ— ,

Adversary can sign for {๐‘ž๐‘™, ๐‘ž๐‘™โˆ—} by setting ๐œ = ๐ผ ๐‘› FG Can be mitigated using โ€œproofs-of-possessionโ€ [RY07]

slide-7
SLIDE 7

New BLS Multi-signatures without PoPs

Let ๐ป( = ๐‘•( , ๐ป* = ๐‘•* , ๐ปC = ๐‘•C , with bilinear pairing ๐‘“

  • KGen: ๐‘ž๐‘™J = ๐‘•*

FGK

  • KAgg(pk1 , โ€ฆ, pkn): ๐‘๐‘ž๐‘™ = โˆ ๐‘ž๐‘™J

TK

  • , with ๐‘J = ๐ผ((๐‘ž๐‘™J, {๐‘ž๐‘™(, โ€ฆ , ๐‘ž๐‘™V})
  • Sign(pk1 , โ€ฆ, pkn, ski, m): ๐‘กJ = ๐ผW ๐‘› FGK,

๐œ = โˆ ๐‘กJ

TK

  • Verify(apk, ฯƒ, m): ๐‘“ ๐œ, ๐‘•* = ๐‘“(๐ผW ๐‘› , ๐‘๐‘ž๐‘™)

Uses trick from [Maxwell-PSW18] Thm: secure multi-signature scheme under co-CDH in ROM

slide-8
SLIDE 8

Bitcoin Multisig address

Witness Input Output

Pointer to addrin = H(pk1, โ€ฆ, pkn) amountin = 1 BTC

Witness Input Output

pk1, โ€ฆ, pkn, ๐žฝ1, ..., ๐žฝn 3n group elements Bitcoin with multiple ECDSA signatures Bitcoin using our BLS multi-signatures

Pointer to addrin = H(apk) amountin = 1 BTC

apk, ๐žฝ 2 group elements

slide-9
SLIDE 9

Aggregatable Multi-Signatures

Extend multi-signature definition with two additional algorithms

  • SigAgg({apki, mi, ฯƒi}): Aggregate a set of multi-signatures into a single object
  • AggVerify({apki, mi}, ฮฃ): Verify that the aggregate multi-signature

For our BLS multisignature scheme

  • Sign(pk1 , โ€ฆ, pkn, ski, m): ๐‘กJ = ๐ผW ๐‘๐‘ž๐‘™, ๐‘› FGK,

๐œ = โˆ ๐‘กJ

TK

  • SigAgg({apki, mi, ฯƒi}): ฮฃ = โˆ ๐œJ
  • AggVerify({apki, mi}, ฮฃ): ๐‘“ ฮฃ, ๐‘•* = โˆ ๐‘“(๐ผW ๐‘›J , ๐‘๐‘ž๐‘™J)
  • Thm: secure aggregatable multisignature scheme under ๐œ”-co-CDH in ROM
slide-10
SLIDE 10

Aggregatable Multi-Signatures in Bitcoin

Witness Input Output

Bitcoin with multiple ECDSA signatures Bitcoin using aggregatable multi-signatures

Witness Input Output Witness Input Output

โ‹ฎ โ‹ฎ โ‹ฎ

m

Combined witness contains

  • ๐‘œ โ‹… ๐‘› public keys
  • ๐‘œ โ‹… ๐‘› signatures

Combined witness contains

  • ๐‘› (aggregate) public keys
  • 1 aggregate multi-signature

Input Output Input Output

Witness

Input Output

โ‹ฎ โ‹ฎ โ‹ฎ

m

Block of m transactions, each spending from an n-multisig address 1296 KB 216 KB

slide-11
SLIDE 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

apk1 apk2 apk3 apk4 apk5 apk6 root

slide-12
SLIDE 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
slide-13
SLIDE 13

Our ASM Scheme

Alice ๐‘ž๐‘™( = ๐‘•*

FGf

Bob ๐‘ž๐‘™* = ๐‘•*

FGO

Charlie ๐‘ž๐‘™+ = ๐‘•*

FGg

Key aggregation: ๐‘๐‘ž๐‘™ = โˆ ๐‘ž๐‘™J

TK = ๐‘•* TFG

  • ๐‘›๐‘™( = ๐ผ* ๐‘๐‘ž๐‘™, 1 TFG

๐‘›๐‘™* = ๐ผ* ๐‘๐‘ž๐‘™, 2 TFG ๐‘›๐‘™+ = ๐ผ* ๐‘๐‘ž๐‘™, 3 TFG Membership keys: ๐‘ก( = ๐ผW ๐‘๐‘ž๐‘™, ๐‘› FGf โ‹… ๐‘›๐‘™( ๐‘ก* = ๐ผW ๐‘๐‘ž๐‘™, ๐‘› FGO โ‹… ๐‘›๐‘™* Combine: (๐‘™ = ๐‘ž๐‘™( โ‹… ๐‘ž๐‘™*, ๐‘ก = ๐‘ก( โ‹… ๐‘ก*) Sign: Verify(apk, S=[1,1,0], (k, s)) : ๐‘“ ๐‘ก, ๐‘•( = ๐‘“(โˆ ๐ผ* ๐‘๐‘ž๐‘™, ๐‘— , ๐‘๐‘ž๐‘™) โ‹… ๐‘“(๐ผ* ๐‘๐‘ž๐‘™, ๐‘› , ๐‘™)

  • Jโˆˆk

3 pairings

slide-14
SLIDE 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
slide-15
SLIDE 15

Thanks!

ia.cr/2018/483

slide-16
SLIDE 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

Witness Input Output

Pointer to addrin = H(apk,t) amountin = 1 BTC

apk, t, ๐žฝ, S

  • approx. 3 group elements