BLOCKCHAIN
The foundation behind Bitcoin
Sourav Sen Gupta
Indian Statistical Institute, Kolkata
BLOCKCHAIN The foundation behind Bitcoin Sourav Sen Gupta Indian - - PowerPoint PPT Presentation
BLOCKCHAIN The foundation behind Bitcoin Sourav Sen Gupta Indian Statistical Institute, Kolkata CRYPTOGRAPHY Backbone of Blockchain Technology Component 1 : Cryptographic Hash Functions HASH FUNCTIONS Map variable-length input to
Indian Statistical Institute, Kolkata
y x
101011101011001…0010110100101 101110101001000110111100010101
y ?
101011101011001…0010110100101 101110101001000110111100010101
y x1
101011101011001…0010110100101 101110101001000110111100010101
x2
1100101001011001…110010100110
It is of course possible, but not easy.
y x1
101011101011001…0010110100101
x2
1100101001011001…110010100110 101110101001000110111100010101
y1 x1
101011101011001…0010110100101 101110101001000110111100010101
x2
101010101011001…0010110100101
y2
110010100101100100110010100110
Example : SHA 256 — used in Bitcoin
m1 IV
m2
mn h
Example : SHA 3 — used in Ethereum
m1
m2
mn
h1
Random nonce r must have a high min-entropy for this scheme to be secure.
y x r commit(x) : c = h(r || x) verify(c,r,x) : h(r || x) == c
y x record(x) : c = h(x) verify(c,x) : h(x) == c
Hash Pointer
hash(data) data addr(data)
Block
HP(block) data timestamp
Block
HP(block) data timestamp
Block
HP(block) data timestamp
Block
HP(block) data timestamp
Block
HP(block) data timestamp
Block
HP(block) data timestamp
Block
HP(block) data timestamp
Block
HP(block) data timestamp
Block
HP(block) data timestamp
Block
HP(block) data timestamp
Block
HP(block) data timestamp
Block
HP(block) data timestamp
Block
HP(block) data timestamp
Block
HP(block) data timestamp
Block
HP(block) data timestamp
Block
HP(block) data timestamp
Block
HP(block) data timestamp
Node
HP(left) data timestamp HP(right)
Node
HP(left) data timestamp HP(right)
Node
HP(left) data timestamp HP(right)
Node
HP(left) data timestamp HP(right)
Node
HP(left) data timestamp HP(right)
HP(root)
Node
HP(left) data timestamp HP(right)
Node
HP(left) data timestamp HP(right)
Node
HP(left) data timestamp HP(right)
Node
HP(left) data timestamp HP(right)
Node
HP(left) data timestamp HP(right)
HP(root)
Properties Blockchain Merkle Tree Merkle Trie
Size of Commitment
O(1) O(1) O(1)
Append a Block/Node
O(1) O(log n) O(k)
Update a Block/Node
O(n) O(log n) O(k)
Proof of Membership
O(n) O(log n) O(k)
Structural Abstraction
List of Objects Set of Objects Set of (key, value)
Used for Construction
Bitcoin Bitcoin Ethereum
s = sign(sk,m) verify(pk,m,s) pk sk
keygen(n)
1 2 3
pk sk
s = sign(sk,m) verify(pk,m,s) keygen(n)
pk sk
s = sign(sk,m) verify(pk,m,s) keygen(n)
ECDSA on curve E(Fp) : { (x,y) in Fp x Fp | y2 = x3 + 7 } with base prime p = 2256 - 232 - 29 - 28 - 27 - 26 - 24 - 1
ECDSA on curve E(Fp) : { (x,y) in Fp x Fp | y2 = x3 + 7 } with base prime p = 2256 - 232 - 29 - 28 - 27 - 26 - 24 - 1
Parameters Format Range Bit-size sk random Zq 256 pk sk x G E(Fp) 512 m hash(M) Zq 256 Signature (r, s) Zq x Zq 512
pk sk
sk
verify(pk,m,sign(sk,m))
sk
NOT BITCOIN
NOT BITCOIN
NOT BITCOIN
NOT BITCOIN YET
Signed by
Signed by
pk sk pk
Input : Array of previous Transactions | Output : Array of recipient Addresses
pk2 sk1
pk1
pk3 sk2 sk3 pk
pk
pk
Input : Array of previous Transactions | Output : Array of recipient Addresses R1
pk2 sk1
pk1
pk3 sk2 sk3 pk
R2
pk
R3
pk
Metadata Input(s) Output(s)
Data obtained from blockchain.info
Tx
Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx
Data obtained from blockchain.info
Data obtained from blockchain.info
Data obtained from blockchain.info
Data obtained from blockchain.info
Data obtained from blockchain.info
Tx Tx Tx
Tx
Mining Transaction
Tx Tx Tx
Tx
Computational Lottery (Puzzle) Transaction Winner writes the next block Existing blocks at a given time Find r such that hash(r || m) < C
Data obtained from blockchain.info
Data obtained from blockchain.info
Data obtained from blockchain.info
Data obtained from blockchain.info
Data obtained from blockchain.info
Tx Tx Tx
Tx
Mining Transaction
X X X X X X X
Data obtained from blockchain.info
Data obtained from blockchain.info
Data obtained from blockchain.info
Data obtained from blockchain.info
Data obtained from blockchain.info
Robin Yao (BW), Wang Chun (F2Pool), Marshall Long (FinalHash), Pan Zhibiao (Bitmain) Liu Xiang Fu (Avalon), Sam Cole (KnCMiner) and Alex Petrov (BitFury)
Data obtained from blockchain.info
Data obtained from blockchain.info
Data obtained from blockchain.info
Data obtained from blockchain.info
Data obtained from blockchain.info
Data obtained from blockchain.info
Provides “anonymity” of Bitcoin transactions.
Data obtained from blockchain.info
Data obtained from blockchain.info
Data obtained from blockchain.info
Is it still possible to trace transactions and identities?
R1
R2 Rm S1 S2 Sn
R1 S1
1FLa9NcXJPA2XvF34LRuB4zbXX4Ws32dpL 18rdKmjrg1EawxgiVT3ikLExj6GWS2MNCk
Note : Single recipient with an exact match of input to output — highly unlikely.
R1
R2 S1
1Ao6mKMEXxCVNVAuGjfLXZ3Zf43hd3yAEq 16pDB5bvoqRGvoH32GaJLfsEcaMc2T9xDr 1H3bY2Cv1pmn8ffTdyeRvZAUjNJC1giQHm
Note : Nice complete denomination along with a random change.
R1
R2 S1
1PXzMrz8KBNEkTt3Wnuqy4axiWszbyQKyE 1AASWBCGveXH6H5yTCZW2x7uZrawDiqp4U 19onWuLmjXGVfc7oUAEVuy9Yd3jxqhsUbK
Note : 0.01121504 BTC = 6.50 USD at the time of transaction.
R1 S1
19SZcQ2CzJacQZE9rYwQjsfcBKMWDNwBWD 1PLjv1VzGEKxtM2FnRzg2FmDjen9trUBrh
Note : Two arbitrary inputs exactly match up to a desired output — highly unlikely. S2
13Zjnzx8VxtLUEiYcrVXKp5sLucLMvBqaG
R1
R2 S1
1Djvb34FNpNXtrbbjaQeERZf68cyUdWyzd 1Nq612zwhEZDBNz2AeWKZxD6LvwiLm6cQU 1AffmSG4tcNRjcgTWTnS6TM3cWPeeA9EVd
Note : Two input transactions coupled for a payment plus some random change. S2
17atn5sagYRBUvzgFLd9bUjWF4yStkdokW
6.13 USD 6.03 USD 4.10 USD 7.95 USD
1FLa9NcXJPA2XvF34LRuB4zbXX4Ws32dpL 18rdKmjrg1EawxgiVT3ikLExj6GWS2MNCk 1Ao6mKMEXxCVNVAuGjfLXZ3Zf43hd3yAEq 16pDB5bvoqRGvoH32GaJLfsEcaMc2T9xDr 1H3bY2Cv1pmn8ffTdyeRvZAUjNJC1giQHm 1PXzMrz8KBNEkTt3Wnuqy4axiWszbyQKyE 1AASWBCGveXH6H5yTCZW2x7uZrawDiqp4U 19onWuLmjXGVfc7oUAEVuy9Yd3jxqhsUbK 19SZcQ2CzJacQZE9rYwQjsfcBKMWDNwBWD 1PLjv1VzGEKxtM2FnRzg2FmDjen9trUBrh 13Zjnzx8VxtLUEiYcrVXKp5sLucLMvBqaG 1Djvb34FNpNXtrbbjaQeERZf68cyUdWyzd 1Nq612zwhEZDBNz2AeWKZxD6LvwiLm6cQU 1AffmSG4tcNRjcgTWTnS6TM3cWPeeA9EVd 17atn5sagYRBUvzgFLd9bUjWF4yStkdokW
1FLa9NcXJPA2XvF34LRuB4zbXX4Ws32dpL 18rdKmjrg1EawxgiVT3ikLExj6GWS2MNCk 1Ao6mKMEXxCVNVAuGjfLXZ3Zf43hd3yAEq 16pDB5bvoqRGvoH32GaJLfsEcaMc2T9xDr 1H3bY2Cv1pmn8ffTdyeRvZAUjNJC1giQHm 1PXzMrz8KBNEkTt3Wnuqy4axiWszbyQKyE 1AASWBCGveXH6H5yTCZW2x7uZrawDiqp4U 19onWuLmjXGVfc7oUAEVuy9Yd3jxqhsUbK 19SZcQ2CzJacQZE9rYwQjsfcBKMWDNwBWD 1PLjv1VzGEKxtM2FnRzg2FmDjen9trUBrh 13Zjnzx8VxtLUEiYcrVXKp5sLucLMvBqaG 1Djvb34FNpNXtrbbjaQeERZf68cyUdWyzd 1Nq612zwhEZDBNz2AeWKZxD6LvwiLm6cQU 1AffmSG4tcNRjcgTWTnS6TM3cWPeeA9EVd 17atn5sagYRBUvzgFLd9bUjWF4yStkdokW
The Unreasonable Effectiveness of Address Clustering — Harrigan and Fretter, May 2016
— Clustering of Bitcoin Addresses with suitable definition of Metrics — Identification of the Clusters using known and/or leaked Addresses
— Registering on Dark Marketplaces, Exchanges, and Mining Pools — Using Addresses leaked from all these sources for Identification
Elliptic (https://www.elliptic.co/) does something similar in the UK. We should try to build our own tool for de-anonymization.
Input : Array of previous Transactions | Output : Array of recipient Addresses R1
pk2 sk1
pk1
pk3 sk2 sk3 pk
R2
pk
R3
pk
Metadata Input(s) Output(s)
Data obtained from blockchain.info
Data obtained from blockchain.info
Proof of Space
Proof of Retrievability
Proof of Commitment
Smart Properties Proof of Existence
Thank you for listening!