mimblewimble: private, massively-prunable blockchainsmimblewimble.cash ›...

59
Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra [email protected] October 8, 2016 1 / 57

Upload: others

Post on 07-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Mimblewimble: Private, Massively-PrunableBlockchains

Andrew Poelstra

[email protected]

October 8, 2016

1 / 57

Page 2: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

History

04:30 UTC, August 2nd, 2016: “Tom Elvis Jedusor” posts a.onion link to a text file on IRC, titled MIMBLEWIMBLE anddated July 19.

Next morning: myself and Bryan Bishop verify it’s actuallyjust text and rehost it.

(Previous week: I had independently found a small part ofMimblewimble which was almost supported by ElementsAlpha; starting from this I got the gist of the paper.)

Following week: discussion on Reddit with Greg Sanders andothers leads to understanding Mimblewimble’s trust model,and hints that the new crypto has merit.

September: myself and Avi Kulkarni develop an extension,“sinking signatures”, to greatly improve its scaling properties.

I am not Lord Voldemort.

2 / 57

Page 3: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

History

04:30 UTC, August 2nd, 2016: “Tom Elvis Jedusor” posts a.onion link to a text file on IRC, titled MIMBLEWIMBLE anddated July 19.

Next morning: myself and Bryan Bishop verify it’s actuallyjust text and rehost it.

(Previous week: I had independently found a small part ofMimblewimble which was almost supported by ElementsAlpha; starting from this I got the gist of the paper.)

Following week: discussion on Reddit with Greg Sanders andothers leads to understanding Mimblewimble’s trust model,and hints that the new crypto has merit.

September: myself and Avi Kulkarni develop an extension,“sinking signatures”, to greatly improve its scaling properties.

I am not Lord Voldemort.

3 / 57

Page 4: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

History

04:30 UTC, August 2nd, 2016: “Tom Elvis Jedusor” posts a.onion link to a text file on IRC, titled MIMBLEWIMBLE anddated July 19.

Next morning: myself and Bryan Bishop verify it’s actuallyjust text and rehost it.

(Previous week: I had independently found a small part ofMimblewimble which was almost supported by ElementsAlpha; starting from this I got the gist of the paper.)

Following week: discussion on Reddit with Greg Sanders andothers leads to understanding Mimblewimble’s trust model,and hints that the new crypto has merit.

September: myself and Avi Kulkarni develop an extension,“sinking signatures”, to greatly improve its scaling properties.

I am not Lord Voldemort.

4 / 57

Page 5: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

History

04:30 UTC, August 2nd, 2016: “Tom Elvis Jedusor” posts a.onion link to a text file on IRC, titled MIMBLEWIMBLE anddated July 19.

Next morning: myself and Bryan Bishop verify it’s actuallyjust text and rehost it.

(Previous week: I had independently found a small part ofMimblewimble which was almost supported by ElementsAlpha; starting from this I got the gist of the paper.)

Following week: discussion on Reddit with Greg Sanders andothers leads to understanding Mimblewimble’s trust model,and hints that the new crypto has merit.

September: myself and Avi Kulkarni develop an extension,“sinking signatures”, to greatly improve its scaling properties.

I am not Lord Voldemort.

5 / 57

Page 6: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

History

04:30 UTC, August 2nd, 2016: “Tom Elvis Jedusor” posts a.onion link to a text file on IRC, titled MIMBLEWIMBLE anddated July 19.

Next morning: myself and Bryan Bishop verify it’s actuallyjust text and rehost it.

(Previous week: I had independently found a small part ofMimblewimble which was almost supported by ElementsAlpha; starting from this I got the gist of the paper.)

Following week: discussion on Reddit with Greg Sanders andothers leads to understanding Mimblewimble’s trust model,and hints that the new crypto has merit.

September: myself and Avi Kulkarni develop an extension,“sinking signatures”, to greatly improve its scaling properties.

I am not Lord Voldemort.

6 / 57

Page 7: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

History

04:30 UTC, August 2nd, 2016: “Tom Elvis Jedusor” posts a.onion link to a text file on IRC, titled MIMBLEWIMBLE anddated July 19.

Next morning: myself and Bryan Bishop verify it’s actuallyjust text and rehost it.

(Previous week: I had independently found a small part ofMimblewimble which was almost supported by ElementsAlpha; starting from this I got the gist of the paper.)

Following week: discussion on Reddit with Greg Sanders andothers leads to understanding Mimblewimble’s trust model,and hints that the new crypto has merit.

September: myself and Avi Kulkarni develop an extension,“sinking signatures”, to greatly improve its scaling properties.

I am not Lord Voldemort.

7 / 57

Page 8: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

What is Mimblewimble?

Mimblewimble is a design for a blockchain-based ledger that isvery different from Bitcoin.

It can be implemented as a sidechain, or softforked intoBitcoin (with limitations).

In Bitcoin transactions, old outputs sign new outputs; outputshave “script pubkeys” that are independent of each other. InMimblewimble transactions, outputs have only EC pubkeys,and the difference between new outputs’ keys and old ones’ ismultisigned by all transacting parties.

Mimblewimble transactions are inherently scriptless.

8 / 57

Page 9: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

What is Mimblewimble?

Mimblewimble is a design for a blockchain-based ledger that isvery different from Bitcoin.

It can be implemented as a sidechain, or softforked intoBitcoin (with limitations).

In Bitcoin transactions, old outputs sign new outputs; outputshave “script pubkeys” that are independent of each other. InMimblewimble transactions, outputs have only EC pubkeys,and the difference between new outputs’ keys and old ones’ ismultisigned by all transacting parties.

Mimblewimble transactions are inherently scriptless.

9 / 57

Page 10: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

What is Mimblewimble?

Mimblewimble is a design for a blockchain-based ledger that isvery different from Bitcoin.

It can be implemented as a sidechain, or softforked intoBitcoin (with limitations).

In Bitcoin transactions, old outputs sign new outputs; outputshave “script pubkeys” that are independent of each other. InMimblewimble transactions, outputs have only EC pubkeys,and the difference between new outputs’ keys and old ones’ ismultisigned by all transacting parties.

Mimblewimble transactions are inherently scriptless.

10 / 57

Page 11: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

What is Mimblewimble?

Mimblewimble is a design for a blockchain-based ledger that isvery different from Bitcoin.

It can be implemented as a sidechain, or softforked intoBitcoin (with limitations).

In Bitcoin transactions, old outputs sign new outputs; outputshave “script pubkeys” that are independent of each other. InMimblewimble transactions, outputs have only EC pubkeys,and the difference between new outputs’ keys and old ones’ ismultisigned by all transacting parties.

Mimblewimble transactions are inherently scriptless.

11 / 57

Page 12: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Mimblewimble Transactions

A Mimblewimble transaction is the following data:

Inputs (references to old outputs).

Outputs: confidential transaction outputs (group elements,which blind and commit to amounts), plus rangeproofs.

Excess: difference between outputs and inputs (groupelement), plus signature (for authentication and to provenon-infaltion)

12 / 57

Page 13: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Mimblewimble Transactions

A Mimblewimble transaction is the following data:

Inputs (references to old outputs).

Outputs: confidential transaction outputs (group elements,which blind and commit to amounts), plus rangeproofs.

Excess: difference between outputs and inputs (groupelement), plus signature (for authentication and to provenon-infaltion)

13 / 57

Page 14: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Mimblewimble Transactions

A Mimblewimble transaction is the following data:

Inputs (references to old outputs).

Outputs: confidential transaction outputs (group elements,which blind and commit to amounts), plus rangeproofs.

Excess: difference between outputs and inputs (groupelement), plus signature (for authentication and to provenon-infaltion)

14 / 57

Page 15: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Mimblewimble Transactions

15 / 57

Page 16: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Mimblewimble Transactions

16 / 57

Page 17: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Mimblewimble Transactions

17 / 57

Page 18: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Mimblewimble Transactions

18 / 57

Page 19: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Mimblewimble Transactions

19 / 57

Page 20: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Mimblewimble Blocks

Blocks consist of:

A merkle tree of transaction inputs.

A merkle tree of transaction outputs and rangeproofs.

A list of excess value(s) and signature(s)

20 / 57

Page 21: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Mimblewimble Blocks

Blocks consist of:

A merkle tree of transaction inputs.

A merkle tree of transaction outputs and rangeproofs.

A list of excess value(s) and signature(s)

21 / 57

Page 22: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Mimblewimble Blocks

Blocks consist of:

A merkle tree of transaction inputs.

A merkle tree of transaction outputs and rangeproofs.

A list of excess value(s) and signature(s)

22 / 57

Page 23: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Mimblewimble Transactions

23 / 57

Page 24: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Mimblewimble Transactions

24 / 57

Page 25: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Mimblewimble Transactions

25 / 57

Page 26: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Mimblewimble Transactions

26 / 57

Page 27: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Trust Model: Transactions

A transaction is valid if:

It is non-inflationary (total input amount equals total outputamount)

The owner of the input(s) has signed off on it.

27 / 57

Page 28: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Trust Model: Transactions

A transaction is valid if:

It is non-inflationary (total input amount equals total outputamount)

The owner of the input(s) has signed off on it.

28 / 57

Page 29: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Trust Model: Transactions

A transaction is valid if:

It is non-inflationary (total input amount equals total outputamount)

The owner of the input(s) has signed off on it.

29 / 57

Page 30: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Trust Model: Blockchain

It should be verifiable that

A transaction, once committed to a block, cannot be reversedwithout doing enough work to rewrite the block (and all itsdescendants).

The current state of all coins reflects zero net theft andinflation.

The exact historical sequence of transactions does not need tobe publicly verifable.

30 / 57

Page 31: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Trust Model: Blockchain

It should be verifiable that

A transaction, once committed to a block, cannot be reversedwithout doing enough work to rewrite the block (and all itsdescendants).

The current state of all coins reflects zero net theft andinflation.

The exact historical sequence of transactions does not need tobe publicly verifable.

31 / 57

Page 32: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Trust Model: Blockchain

It should be verifiable that

A transaction, once committed to a block, cannot be reversedwithout doing enough work to rewrite the block (and all itsdescendants).

The current state of all coins reflects zero net theft andinflation.

The exact historical sequence of transactions does not need tobe publicly verifable.

32 / 57

Page 33: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Trust Model: Blockchain

It should be verifiable that

A transaction, once committed to a block, cannot be reversedwithout doing enough work to rewrite the block (and all itsdescendants).

The current state of all coins reflects zero net theft andinflation.

The exact historical sequence of transactions does not need tobe publicly verifable.

33 / 57

Page 34: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Trust Model: Block Verification

It is possible to verify the blockchain with only the following data:

Block headers

Unspent outputs from each block

Excess values and signatures.

Rangeproofs for the above (witness data)

Full blocks near the tip should be kept to handle reorgs

In Bitcoin there are 150 million transactions and 40 millionunsigned transaction outputs: 21.6Gb of historic data, 2Gb ofUTXOs and 100Gb of UTXO rangeproofs.

34 / 57

Page 35: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Trust Model: Block Verification

It is possible to verify the blockchain with only the following data:

Block headers

Unspent outputs from each block

Excess values and signatures.

Rangeproofs for the above (witness data)

Full blocks near the tip should be kept to handle reorgs

In Bitcoin there are 150 million transactions and 40 millionunsigned transaction outputs: 21.6Gb of historic data, 2Gb ofUTXOs and 100Gb of UTXO rangeproofs.

35 / 57

Page 36: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Trust Model: Block Verification

It is possible to verify the blockchain with only the following data:

Block headers

Unspent outputs from each block

Excess values and signatures.

Rangeproofs for the above (witness data)

Full blocks near the tip should be kept to handle reorgs

In Bitcoin there are 150 million transactions and 40 millionunsigned transaction outputs: 21.6Gb of historic data, 2Gb ofUTXOs and 100Gb of UTXO rangeproofs.

36 / 57

Page 37: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Trust Model: Block Verification

It is possible to verify the blockchain with only the following data:

Block headers

Unspent outputs from each block

Excess values and signatures.

Rangeproofs for the above (witness data)

Full blocks near the tip should be kept to handle reorgs

In Bitcoin there are 150 million transactions and 40 millionunsigned transaction outputs: 21.6Gb of historic data, 2Gb ofUTXOs and 100Gb of UTXO rangeproofs.

37 / 57

Page 38: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Trust Model: Block Verification

It is possible to verify the blockchain with only the following data:

Block headers

Unspent outputs from each block

Excess values and signatures.

Rangeproofs for the above (witness data)

Full blocks near the tip should be kept to handle reorgs

In Bitcoin there are 150 million transactions and 40 millionunsigned transaction outputs: 21.6Gb of historic data, 2Gb ofUTXOs and 100Gb of UTXO rangeproofs.

38 / 57

Page 39: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Trust Model: Block Verification

It is possible to verify the blockchain with only the following data:

Block headers

Unspent outputs from each block

Excess values and signatures.

Rangeproofs for the above (witness data)

Full blocks near the tip should be kept to handle reorgs

In Bitcoin there are 150 million transactions and 40 millionunsigned transaction outputs: 21.6Gb of historic data, 2Gb ofUTXOs and 100Gb of UTXO rangeproofs.

39 / 57

Page 40: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Sinking Signatures

Open problem 2 from the Voldemort paper: can we aggregateexcess signatures?

Difficult to do without also making them negatable in laterblocks. (If you can add you can subtract.)

We can by using pairings and (a variant of)Boneh-Lynn-Shacham signatures which sign the current blockheight.

Now only one excess and (multi-)signature per block.

In Bitcoin there are 450000 blocks: so 22Mb of historic data(but 450k pairings to verify), 2Gb of UTXO and 100Gb ofrangeproofs.

40 / 57

Page 41: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Sinking Signatures

Open problem 2 from the Voldemort paper: can we aggregateexcess signatures?

Difficult to do without also making them negatable in laterblocks. (If you can add you can subtract.)

We can by using pairings and (a variant of)Boneh-Lynn-Shacham signatures which sign the current blockheight.

Now only one excess and (multi-)signature per block.

In Bitcoin there are 450000 blocks: so 22Mb of historic data(but 450k pairings to verify), 2Gb of UTXO and 100Gb ofrangeproofs.

41 / 57

Page 42: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Sinking Signatures

Open problem 2 from the Voldemort paper: can we aggregateexcess signatures?

Difficult to do without also making them negatable in laterblocks. (If you can add you can subtract.)

We can by using pairings and (a variant of)Boneh-Lynn-Shacham signatures which sign the current blockheight.

Now only one excess and (multi-)signature per block.

In Bitcoin there are 450000 blocks: so 22Mb of historic data(but 450k pairings to verify), 2Gb of UTXO and 100Gb ofrangeproofs.

42 / 57

Page 43: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Sinking Signatures

Open problem 2 from the Voldemort paper: can we aggregateexcess signatures?

Difficult to do without also making them negatable in laterblocks. (If you can add you can subtract.)

We can by using pairings and (a variant of)Boneh-Lynn-Shacham signatures which sign the current blockheight.

Now only one excess and (multi-)signature per block.

In Bitcoin there are 450000 blocks: so 22Mb of historic data(but 450k pairings to verify), 2Gb of UTXO and 100Gb ofrangeproofs.

43 / 57

Page 44: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Sinking Signatures

What if we could combine blocks as well?

It is possible to compress a chain of blockheaders tologarithmic size while still having a proof that takes the sameexpected work as the original [Back et. al. 2014; Kiayias,Lamprou, Stouka 2016].

Treat the blockchain as a “skiplist” where blocks have distantparents.

If excess values signed the current height and previousheights, the excesses and signatures can be combined forskipped blocks.

This is a sinking signature, which can be made log-sized.[Poelstra, Kulkarni 2016]

Simulations show a 500000-block chain can likely becompressed to 300 blocks. We now have 1Mb of historic data(20 seconds on one core to verify), 2Gb of UTXO and 100Gbof rangeproofs.

44 / 57

Page 45: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Sinking Signatures

What if we could combine blocks as well?

It is possible to compress a chain of blockheaders tologarithmic size while still having a proof that takes the sameexpected work as the original [Back et. al. 2014; Kiayias,Lamprou, Stouka 2016].

Treat the blockchain as a “skiplist” where blocks have distantparents.

If excess values signed the current height and previousheights, the excesses and signatures can be combined forskipped blocks.

This is a sinking signature, which can be made log-sized.[Poelstra, Kulkarni 2016]

Simulations show a 500000-block chain can likely becompressed to 300 blocks. We now have 1Mb of historic data(20 seconds on one core to verify), 2Gb of UTXO and 100Gbof rangeproofs.

45 / 57

Page 46: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Sinking Signatures

What if we could combine blocks as well?

It is possible to compress a chain of blockheaders tologarithmic size while still having a proof that takes the sameexpected work as the original [Back et. al. 2014; Kiayias,Lamprou, Stouka 2016].

Treat the blockchain as a “skiplist” where blocks have distantparents.

If excess values signed the current height and previousheights, the excesses and signatures can be combined forskipped blocks.

This is a sinking signature, which can be made log-sized.[Poelstra, Kulkarni 2016]

Simulations show a 500000-block chain can likely becompressed to 300 blocks. We now have 1Mb of historic data(20 seconds on one core to verify), 2Gb of UTXO and 100Gbof rangeproofs.

46 / 57

Page 47: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Sinking Signatures

What if we could combine blocks as well?

It is possible to compress a chain of blockheaders tologarithmic size while still having a proof that takes the sameexpected work as the original [Back et. al. 2014; Kiayias,Lamprou, Stouka 2016].

Treat the blockchain as a “skiplist” where blocks have distantparents.

If excess values signed the current height and previousheights, the excesses and signatures can be combined forskipped blocks.

This is a sinking signature, which can be made log-sized.[Poelstra, Kulkarni 2016]

Simulations show a 500000-block chain can likely becompressed to 300 blocks. We now have 1Mb of historic data(20 seconds on one core to verify), 2Gb of UTXO and 100Gbof rangeproofs.

47 / 57

Page 48: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Sinking Signatures

What if we could combine blocks as well?

It is possible to compress a chain of blockheaders tologarithmic size while still having a proof that takes the sameexpected work as the original [Back et. al. 2014; Kiayias,Lamprou, Stouka 2016].

Treat the blockchain as a “skiplist” where blocks have distantparents.

If excess values signed the current height and previousheights, the excesses and signatures can be combined forskipped blocks.

This is a sinking signature, which can be made log-sized.[Poelstra, Kulkarni 2016]

Simulations show a 500000-block chain can likely becompressed to 300 blocks. We now have 1Mb of historic data(20 seconds on one core to verify), 2Gb of UTXO and 100Gbof rangeproofs.

48 / 57

Page 49: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Trust Model: Blockchain verifitation, redox

Compact chains have same expected work to produce butmuch higher variance than the original chain.

With nontrivial probability a compact chain can be producedin less work than one block; thus compact chains prove nowork.

We thus distinguish between expected work which affectseconomic incentives for forgeries, and proven work whichassures a verifier an historic fact about how a chain wasproduced.

Mimblewimble verifiers should demand a month or two ofnon-compact blocks on top of a compact chain. This proves amonth or two of work, but a forger expects to do as muchwork as the entire chain. So no “incentive cliff” and verifierscan also be assured that their chain was no accident.

49 / 57

Page 50: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Trust Model: Blockchain verifitation, redox

Compact chains have same expected work to produce butmuch higher variance than the original chain.

With nontrivial probability a compact chain can be producedin less work than one block; thus compact chains prove nowork.

We thus distinguish between expected work which affectseconomic incentives for forgeries, and proven work whichassures a verifier an historic fact about how a chain wasproduced.

Mimblewimble verifiers should demand a month or two ofnon-compact blocks on top of a compact chain. This proves amonth or two of work, but a forger expects to do as muchwork as the entire chain. So no “incentive cliff” and verifierscan also be assured that their chain was no accident.

50 / 57

Page 51: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Trust Model: Blockchain verifitation, redox

Compact chains have same expected work to produce butmuch higher variance than the original chain.

With nontrivial probability a compact chain can be producedin less work than one block; thus compact chains prove nowork.

We thus distinguish between expected work which affectseconomic incentives for forgeries, and proven work whichassures a verifier an historic fact about how a chain wasproduced.

Mimblewimble verifiers should demand a month or two ofnon-compact blocks on top of a compact chain. This proves amonth or two of work, but a forger expects to do as muchwork as the entire chain. So no “incentive cliff” and verifierscan also be assured that their chain was no accident.

51 / 57

Page 52: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Trust Model: Blockchain verifitation, redox

Compact chains have same expected work to produce butmuch higher variance than the original chain.

With nontrivial probability a compact chain can be producedin less work than one block; thus compact chains prove nowork.

We thus distinguish between expected work which affectseconomic incentives for forgeries, and proven work whichassures a verifier an historic fact about how a chain wasproduced.

Mimblewimble verifiers should demand a month or two ofnon-compact blocks on top of a compact chain. This proves amonth or two of work, but a forger expects to do as muchwork as the entire chain. So no “incentive cliff” and verifierscan also be assured that their chain was no accident.

52 / 57

Page 53: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Next Steps

Development, development, development!

Nail down chain parameters, in particular choice ofpairing-friendly curve.

Sidechain?

53 / 57

Page 54: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Next Steps

Development, development, development!

Nail down chain parameters, in particular choice ofpairing-friendly curve.

Sidechain?

54 / 57

Page 55: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Next Steps

Development, development, development!

Nail down chain parameters, in particular choice ofpairing-friendly curve.

Sidechain?

55 / 57

Page 56: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Open Problems

Smaller rangeproofs? Aggregation of rangeproofs?

Peer-to-peer protocol that can handle transaction merging

Quantum resistance

56 / 57

Page 57: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Open Problems

Smaller rangeproofs? Aggregation of rangeproofs?

Peer-to-peer protocol that can handle transaction merging

Quantum resistance

57 / 57

Page 58: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Open Problems

Smaller rangeproofs? Aggregation of rangeproofs?

Peer-to-peer protocol that can handle transaction merging

Quantum resistance

58 / 57

Page 59: Mimblewimble: Private, Massively-Prunable Blockchainsmimblewimble.cash › 20160808-ScalingBitcoinMilan2016.pdf · Mimblewimble: Private, Massively-Prunable Blockchains Andrew Poelstra

Thank You

Andrew Poelstra <[email protected]>

59 / 57