improving privacy of blockchains - github pages · overview of blockchains cryptography background...

57
Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Improving Privacy of Blockchains Emily Schaefer Computer Science Senior Seminar Division of Science and Mathematics University of Minnesota, Morris Morris, Minnesota, USA November 18th, 2017 Emily Schaefer Improving Privacy of Blockchains

Upload: others

Post on 21-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Improving Privacy of Blockchains

Emily Schaefer

Computer Science Senior SeminarDivision of Science and Mathematics

University of Minnesota, MorrisMorris, Minnesota, USA

November 18th, 2017

Emily Schaefer Improving Privacy of Blockchains

Page 2: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Introduction

Blockchains were proposed by Satoshi Nakamoto in 2008

Founded Bitcoin in 2009

Bitcoin is a currency and an electronic cash system without the useof third parties using blockchains

Increasing in popularity

Emily Schaefer Improving Privacy of Blockchains

Page 3: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Introduction

Decentralized

Modified from http://cryptorials.io/real-power-bitcoin-lie-purchasing-power-vs-remittance/

Emily Schaefer Improving Privacy of Blockchains

Page 4: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Introduction

There are many variations and applications for blockchains!

https://datafloq.com/read/what-is-the-blockchain-and-why-is-it-so-important/2270

Emily Schaefer Improving Privacy of Blockchains

Page 5: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Outline

1 Overview of Blockchains

2 Cryptography Background

3 Bitcoin’s Blockchain Protocol

4 Improving Privacy of Blockchains

Emily Schaefer Improving Privacy of Blockchains

Page 6: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

What are Blockchains?Blockchain Characteristics

Outline

1 Overview of BlockchainsWhat are Blockchains?Blockchain Characteristics

2 Cryptography Background

3 Bitcoin’s Blockchain Protocol

4 Improving Privacy of Blockchains

Emily Schaefer Improving Privacy of Blockchains

Page 7: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

What are Blockchains?Blockchain Characteristics

What are Blockchains?

A blockchain is a record of financial transactions that is made upof a chain of blocks. Each block contains transactions and is inchronological order.

Based onhttps://www.linkedin.com/pulse/blockchain-

breathes-mastermind-group-computers-ajitesh-kumar

Emily Schaefer Improving Privacy of Blockchains

Page 8: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

What are Blockchains?Blockchain Characteristics

Blockchain Characteristics

Public

Pseudonymous

Distributed

Peer-to-Peer

Modified from https://www.linkedin.com/pulse/blockchain-breathes-mastermind-group-computers-ajitesh-kumar

Emily Schaefer Improving Privacy of Blockchains

Page 9: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Public-Key CryptographyHash FunctionDigital Signature

Outline

1 Overview of Blockchains

2 Cryptography BackgroundPublic-Key CryptographyHash FunctionDigital Signature

3 Bitcoin’s Blockchain Protocol

4 Improving Privacy of Blockchains

Emily Schaefer Improving Privacy of Blockchains

Page 10: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Public-Key CryptographyHash FunctionDigital Signature

Public-Key Cryptography

Cryptography is the study of secure communication of messagesbetween two parties to prevent third parties from viewing the

message.

Encryption means converting a message in plaintext tociphertext

Decryption means decoding the ciphertext back to plaintext

Involves public key and private key pair

Public key is used for encryption and private key is used fordecryption

Emily Schaefer Improving Privacy of Blockchains

Page 11: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Public-Key CryptographyHash FunctionDigital Signature

Public-Key Cryptography

1 Bob generates a publicand private key pair

2 Bob’s public key ispublished

3 Alice encrypts hermessage with Bob’spublic key

4 Bob decrypts Alice’smessage with hisprivate key to getAlice’s original message

Example of Alice sending Bob a message

Emily Schaefer Improving Privacy of Blockchains

Page 12: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Public-Key CryptographyHash FunctionDigital Signature

Hash Function

A hash function takes an arbitrary sized input and produces astring of a fixed length called a hash value.

Features:

1 It is easy to compute the hash value of a message

2 Given the hash value, it is impossible to find the original message

3 Two identical messages result in the same hash value

4 Two different messages do not result in the same hash value

Emily Schaefer Improving Privacy of Blockchains

Page 13: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Public-Key CryptographyHash FunctionDigital Signature

Hash Function

Based off of Christof Paar et al, “Understanding Cryptography” (2010)

Emily Schaefer Improving Privacy of Blockchains

Page 14: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Public-Key CryptographyHash FunctionDigital Signature

Digital Signature

What is a digital signature?It is similar to a handwritten signature to show approval of atransaction.

General Overview: a sender signs the message by encrypting itwith their private key and the receiver verifies the signature bydecrypting with the corresponding public key.

2 Parts:

SigningVerification

Emily Schaefer Improving Privacy of Blockchains

Page 15: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Public-Key CryptographyHash FunctionDigital Signature

Digital SignatureSigning

1 Bob has a public andprivate key pair

2 A hash value isgenerated from Bob’smessage

3 Bob signs the hashvalue by encrypting itwith his private key

4 The message andBob’s digitalsignature of the hashvalue are sent to Alice

Bob digitally signing a message to Alice

Emily Schaefer Improving Privacy of Blockchains

Page 16: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Public-Key CryptographyHash FunctionDigital Signature

Digital SignatureVerification

1 Alice has Bob’smessage, signed hashvalue, and public key

2 Alice computes thehash value of Bob’smessage

3 Alice decrypts thesigned hash valueusing Bob’s public key

4 If the hash values areequal the signature isvalidated

Bob digitally signing a message to Alice

Emily Schaefer Improving Privacy of Blockchains

Page 17: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

AddressesTransactionsBitcoin Mining

Outline

1 Overview of Blockchains

2 Cryptography Background

3 Bitcoin’s Blockchain ProtocolAddressesTransactionsBitcoin Mining

4 Improving Privacy of Blockchains

Emily Schaefer Improving Privacy of Blockchains

Page 18: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

AddressesTransactionsBitcoin Mining

Addresses

Users perform transactionswith public and private keys

The address is the hashvalue of the users public keyand is used to send andreceive payments

Users have several addresseswith each having a Bitcoinamount associated withthem

A user’s private key is usedto sign transactions

Modified fromhttp://tech.eu/features/808/bitcoin-part-one/

Emily Schaefer Improving Privacy of Blockchains

Page 19: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

AddressesTransactionsBitcoin Mining

Transactions

Transactions are from thesender’s address to thereceiver’s address

The input address is thesender’s address

The output address is thereceiver’s address

The input addresses aredigitally signed

Modified from Tim Ruffing et al, ”CoinShuffle: PracticalDecentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 20: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

AddressesTransactionsBitcoin Mining

Bitcoin Mining

Mining is the process of adding blocks containing unconfirmedtransactions to the blockchain.

Proof-of-work: Adding blocks to the blockchain should be difficultbut verifying blocks should be easy.

Users called miners complete a resource-intensive task inproof-of-work.

2 parts:

Resource-intensive task

Verifying resource-intensive task to add a block to theblockchain

Emily Schaefer Improving Privacy of Blockchains

Page 21: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

AddressesTransactionsBitcoin Mining

Bitcoin MiningResource-intensive task

Nonce: a random number

Resource-intensive task: find anonce value that when hashedwith the previous block hashvalue and the unconfirmedtransactions results in a hashresult less than a target number

Strategy: Brute forceModified fromhttp://www.imponderablethings.com/2013/07/how-bitcoin-works-under-hood.html

Emily Schaefer Improving Privacy of Blockchains

Page 22: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

AddressesTransactionsBitcoin Mining

Bitcoin MiningVerifying and Adding block

Block is broadcasted to all nodesin the Bitcoin Network

Nodes check the validity of theblock by checking the hashcomputation of the block

If the nodes come to theconsensus that it is valid, theblock is added to the growingblockchain on each node.

Modified from https://promarket.org/expect-within-next-10-years-probably-half-banks-will-gone/

Emily Schaefer Improving Privacy of Blockchains

Page 23: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

Outline

1 Overview of Blockchains

2 Cryptography Background

3 Bitcoin’s Blockchain Protocol

4 Improving Privacy of BlockchainsPrivacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

Emily Schaefer Improving Privacy of Blockchains

Page 24: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

Privacy Overview

Blockchains are public and therefore transactions are public

Current Privacy: The use of pseudonymous addresses

Privacy Concerns: Once addresses are used, all transactionsassociated with them can be traced.

Emily Schaefer Improving Privacy of Blockchains

Page 25: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

Bitcoin Mixing

Combines multiple transactions into one transaction by mixingBitcoins with other users to make input and output addressesunlinkable.

Emily Schaefer Improving Privacy of Blockchains

Page 26: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

Bitcoin Mixing

Combines multiple transactions into one transaction by mixingBitcoins with other users to make input and output addressesunlinkable.

Emily Schaefer Improving Privacy of Blockchains

Page 27: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

Bitcoin Mixing

Combines multiple transactions into one transaction by mixingBitcoins with other users to make input and output addressesunlinkable.

Emily Schaefer Improving Privacy of Blockchains

Page 28: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

Bitcoin Mixing

Combines multiple transactions into one transaction by mixingBitcoins with other users to make input and output addressesunlinkable.

Emily Schaefer Improving Privacy of Blockchains

Page 29: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

Bitcoin Mixing

Combines multiple transactions into one transaction by mixingBitcoins with other users to make input and output addressesunlinkable.

Emily Schaefer Improving Privacy of Blockchains

Page 30: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

Bitcoin Mixing

Combines multiple transactions into one transaction by mixingBitcoins with other users to make input and output addressesunlinkable.

Emily Schaefer Improving Privacy of Blockchains

Page 31: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle Protocol

CoinShuffle Protocol

Announcement

Shuffling

Transaction Verification

Blame

Tim Ruffing et al, ”CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 32: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolProtocol

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 33: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolAnnouncement

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 34: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolAnnouncement

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 35: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolAnnouncement

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 36: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolShuffling

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 37: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolShuffling

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 38: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolShuffling

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 39: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolShuffling

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 40: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolShuffling

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 41: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolShuffling

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 42: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolShuffling

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 43: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolShuffling

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 44: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolShuffling

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 45: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolShuffling

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 46: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolShuffling

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 47: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolShuffling

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 48: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolShuffling

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 49: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolTransaction Verification

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 50: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolTransaction Verification

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 51: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolBlame

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 52: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle ProtocolBlame

Modified from Tim Ruffing et al, “CoinShuffle: Practical Decentralized Coin Mixing for Bitcoin” (2014)

Emily Schaefer Improving Privacy of Blockchains

Page 53: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

CoinShuffle Privacy Analysis

The shuffling participants don’t learn the relationship between aninput address to its corresponding output address.

The only information that is shared among participants are:

Input addresses

Amount of Bitcoins

Public encryption key (lock)

List of shuffled output addresses

Overall: CoinShuffle allows users to combine transactions to mixBitcoins to decrease the correlation between input and outputaddresses without giving any additional information to otherparticipants.

Emily Schaefer Improving Privacy of Blockchains

Page 54: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Privacy OverviewBitcoin MixingCoinShuffle ProtocolCoinShuffle Privacy Analysis

Conclusions

Privacy is important in all blockchain uses!

https://datafloq.com/read/what-is-the-blockchain-and-why-is-it-so-important/2270

Emily Schaefer Improving Privacy of Blockchains

Page 55: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

References I

[1] Elli Androulaki et al. “Evaluating User Privacy in Bitcoin”. In: 2015.

[2] Joseph Bonneau et al. “SoK: Research Perspectives and Challenges forBitcoin and Cryptocurrencies”. In: 2015.

[3] Damiano Di Francesco Maesa, Andrea Marino, and Laura Ricci.“Uncovering the Bitcoin Blockchain: An Analysis of the Full UsersGraph”. In: 2016.

[4] Ujan Mukhopadhyay et al. “A brief survey of Cryptocurrency systems”.In: 2016.

[5] Satoshi Nakamoto. “Bitcoin: A peer-to-peer electronic cash system”. In:2008.

[6] Christof Paar and Jan Pelzl. Understanding Cryptography. Springer,2010. isbn: 978-3-642-04100-6.

[7] Tim RuffingPedro, Moreno-Sanchez, and Aniket Kate. “CoinShuffle:Practical Decentralized Coin Mixing for Bitcoin”. In: 2014.

Emily Schaefer Improving Privacy of Blockchains

Page 56: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

References II

[8] Zibin Zheng et al. “An Overview of Blockchain Technology: Architecture,Consensus, and Future Trends”. In: 2017.

Emily Schaefer Improving Privacy of Blockchains

Page 57: Improving Privacy of Blockchains - GitHub Pages · Overview of Blockchains Cryptography Background Bitcoin’s Blockchain Protocol Improving Privacy of Blockchains Public-Key Cryptography

Overview of BlockchainsCryptography Background

Bitcoin’s Blockchain ProtocolImproving Privacy of Blockchains

Acknowledgements

Thank you for your time and attention!

Special thanks to Elena Machkasova, and K.K. Lamberty for theirguidance and feedback.

Emily Schaefer Improving Privacy of Blockchains