Bitcoins' anonymity

41
Coins’ Anonymity 2015/06/09 Mai-Hsuan Chia [email protected] [email protected]

Transcript of Bitcoins' anonymity

Page 2: Bitcoins' anonymity

Abstract

● Is Bitcoin Anonymous?● Solutions● Projects

○ Dash○ CryptoNote

Page 3: Bitcoins' anonymity

Is Bitcoin Anonymous?

Page 4: Bitcoins' anonymity

Is Bitcoin Anonymous?

Yes!! Due to the fact that addresses are segregated from ids.

Page 5: Bitcoins' anonymity

Is Bitcoin Anonymous?

Yes!! Due to the fact that addresses are segregated from ids.

No, because …

Page 6: Bitcoins' anonymity

Is Bitcoin Anonymous?

● Transaction Linkage○ 可以從一個交易關聯到另外一個交易

Page 7: Bitcoins' anonymity

Is Bitcoin Anonymous?

● Transaction Linkage○ Forward Change Linking

Page 8: Bitcoins' anonymity

Is Bitcoin Anonymous?

● Transaction Linkage○ Through Change Linking

Page 9: Bitcoins' anonymity

Is Bitcoin Anonymous?

● Fingerprinting○ 透過timestamp, 交易金額, …,猜出可能的交易

Page 10: Bitcoins' anonymity

Is Bitcoin Anonymous?

● Fingerprinting○ 透過timestamp, 交易金額, …,猜出可能的交易

Alice, I will give you 1.5 btc tomorrow!

OK, Thank you <3

Page 11: Bitcoins' anonymity

Is Bitcoin Anonymous?

● Fingerprinting○ 透過timestamp, 交易金額, …,猜出可能的交易

Alice, I will give you 1.5 btc tomorrow!

OK, Thank you <3

Page 12: Bitcoins' anonymity

Is Bitcoin Anonymous?

● Mantissa Attack○ 利用金額的尾數分析金錢流向

Page 13: Bitcoins' anonymity

Is Bitcoin Anonymous?

● Mantissa Attack○ 利用金額的尾數分析金錢流向

Page 14: Bitcoins' anonymity

Solutions

● CoinJoin● Ring Signature● Teleport, Coin shuffle, ...

Page 15: Bitcoins' anonymity

Solutions

● CoinJoin : 混合coins

Page 16: Bitcoins' anonymity

Solutions

● CoinJoin : 混合coins

Page 17: Bitcoins' anonymity

Solutions

● CoinJoin○ Dark Wallet : a Bitcoin wallet client○ Dash ( Darkcoin )

Page 18: Bitcoins' anonymity

Solutions

● Ring Signature

Page 19: Bitcoins' anonymity

Solutions

● Ring Signature○ 只知道簽章是由團體的其中一個人簽的,但不知道是

哪個人

Page 20: Bitcoins' anonymity

Solutions

● Ring Signature○ CryptoNote ( implemented by Bytecoin, Monero,...)

Page 21: Bitcoins' anonymity

Projects

● Dark Wallet● Dash● CryptoNote● Tor

Page 22: Bitcoins' anonymity

Projects

● Dark Wallet○ A Bitcoin wallet client, 提供dark wallet users使用

CoinJoin一起作交易

Page 23: Bitcoins' anonymity

● Dash○ Altcoin○ POW x11 hash algorithm○ InstantTx○ DarkSend using CoinJoin

Page 24: Bitcoins' anonymity

● DarkSend ○ DarkSend pool ○ Master node○ Collatoral transactions and payment nodesDarkSend pool

● 每個池只收一種面額● 面額有0.1, 1, 10, 100, …● 每次mixing金額不超過1000DASH。● mixing一次稱為 1 session

Page 25: Bitcoins' anonymity

● DarkSend ○ DarkSend pool○ Master node○ Collatoral transactions and payment nodesMaster nodes

● 負責建造coinjoin tx並broadcast。● 若Master Node掛了則由pool其他人遞補。

Page 26: Bitcoins' anonymity

● DarkSend ○ DarkSend pool○ Master node○ Collatoral transactions and payment nodesPayment nodes

● 加入mixing的users必須繳交押金● payment node負責監看darksend pool● 若有人搞鬼就吃掉他的押金● 通常為一個pool的管理者

Page 27: Bitcoins' anonymity

● DarkSend ○ 優點○ 缺點

Page 28: Bitcoins' anonymity

● DarkSend ○ 優點

○ 缺點 : masternode可能偷看coinjoin過程,並告訴其他

人哪個input對到哪個output

Page 29: Bitcoins' anonymity

● CryptoNote○ Technology that allows the creation of completely

anonymous egalitarian cryptocurrencies○ Egalitarian PoW○ Adaptive limits

■ Difficulty adjusted every block■ Dynamic Max block size

○ Ring Signature

Page 30: Bitcoins' anonymity

● Ordinary signature

● Ring signature

Page 31: Bitcoins' anonymity

● Untraceable Transactions

Page 32: Bitcoins' anonymity

● Linkable tx

● Unlinkable tx

Page 33: Bitcoins' anonymity

one-time keypairs● Sender要送錢給Receiver時,會先建一個新的one-time

pubkey,並將錢送到這個one-time pubkey,而只有receiver能取得對應的one-time privkey

● One-time pubkey由random data與receiver address產生● *One-time privkey由random data與receiver privkey產生

(這裡怪怪der,要查清楚)● 因此CryptoNote沒有reuse address的問題,因為每次都

會生一個新的unique one-time pubkey。● receiver想花錢時,會生出對應的one-time privkey即可花

Page 34: Bitcoins' anonymity

one-time keys

Page 35: Bitcoins' anonymity

one-time keys● For example,1. B在網路中跟大家說他的address為b_addr2. A想送錢給B, 因此拿b_addr和臨時產生的random data造

出了one-time pubkey3. 當哪天B想花錢時,生出對應的one-time privkey去花錢4. 網路上的旁觀者都看不出來哪些tx是給B的(因為output目

的地都是unique one-time pubkey)5. 但B能透過監看網路上的tx,並一一去try看看這筆tx是不

是給自己的,從而知道自己到底有哪些錢

Page 36: Bitcoins' anonymity

*Prevention from double spending● 既然沒人知道哪個output是哪個人的(除了擁有該output的人以外),要

如何讓spender證明自己是output的主人或如何防止double spending呢?

● 將one-time privkey拿去hash,生出key image,並附在input。● 所有的users會紀錄所有看到的key image,因此,若發現重複的

key image表示有double spend,予以reject。

Page 37: Bitcoins' anonymity

one-time ring signatures operations● SIG (sign)

○ input : message, other pubkeys, (mypubkey, myprivkey) ○ output : a signature, all pubkeys

● VER (verify)○ input : message, all pubkeys, signature○ output : true or false

● ...

Page 38: Bitcoins' anonymity
Page 39: Bitcoins' anonymity

● CryptoNote○ 優點 : 匿名性保障○ 缺點

Page 40: Bitcoins' anonymity

● CryptoNote○ 優點○ 缺點 : blockchain size過大

e.g. Bitcoin v.s. MoneroElapsed time Blockchain size # of transactions

Bitcoin 5 years 20GB 43,000,000

Monero 3 months 2 GB 170,000