跟大家一起學習區塊鏈技術系列之一 比特幣之合約(混幣)

愛麗絲擔心她的隱私。她知道每筆交易都會加到公共區塊鏈,所以當鮑勃和查理付錢給她時,他們可以輕易的跟蹤這些比特幣,知道她支付了哪些地址,支付了多少,剩下多少。

愛麗絲不是個罪犯,她僅僅想合理的拒絕被人知道她的錢的收支情況,所以她在自己的電腦啟動了洋蔥路由匿名服務並以AnonGirl的名字登陸到IRC聊天室。

在聊天室的還有Nemo和Neminem,他們都同意彼此轉移比特幣,這樣除他們之外沒有人可靠的知道誰控制哪些比特幣。但是他們面臨一個困境:誰先轉一個比特幣給另外兩個匿名的人?混幣方式的合約,如下圖,使得這個決定很簡單:他們創建一個單獨的交易同時完成所有的花費,確保他們中沒有人可以拿走別人的比特幣。

跟大家一起學習區塊鏈技術系列之一 比特幣之合約(混幣)

每個貢獻者查看他們所有的UTXO,找出一共可以花費100mBTC的UTXO。隨後他們每個人創建一個新的公鑰,並把UTXO的細節和公鑰哈希給促進者。在這個例子當中,促進者是AnonGirl,她創建一個交易把這些UTXO花費給三個等量的輸出。一個輸出對應一個貢獻者的公鑰哈希。

AnonGirl用SIGHASH_ALL對她的輸入進行簽名,確保沒有人能修改輸入和輸出。她把這個部分簽名的交易發給Nemo,Nemo同樣方式簽名後傳給Neminem,Neminem也是一樣的做法。Neminem向網絡廣播這個交易,混合了所有的比特幣到一個單獨交易。

你從圖中可以看到,沒有辦法讓除AnonGirl、Nemo、Neminem之外的人肯定的確定誰接收這些輸出,所以他們每個人可以花費這個輸出,併合理的拒絕別人的跟蹤。

現在當鮑勃或查理想通過區塊鏈跟蹤愛麗絲的交易,他們也看到了 Nemo和Neminem的交易。如果愛麗絲再做一點混幣,鮑勃和查理可能需要從幾十個或幾百個人的交易裡來猜測哪些交易是愛麗絲的。

愛麗絲的完整的比特幣的歷史還在區塊鏈中,所以一個堅定的調查者可能會和AnonGirl混幣的人進行談話,找到她比特幣的最初來源,進而可能揭露出AnonGirl就是愛麗絲。對於無意瀏覽區塊鏈歷史的人,愛麗絲的隱私到了合理的拒絕。

上面描述的混幣技術,讓參與者要花費一筆小的手續費。一個替代技術,買方混幣,即節省了比特幣,又同時保護了隱私。

AnonGirl在IRC聊天室裡等待,直到她想買點東西,並把這個想用比特幣買東西的意願告訴大家,等到也有別人想買東西時,可能從不同的商戶。他們同樣的方式混合他們的輸入,但是輸出是分開的商戶地址,這樣沒有人能從區塊鏈歷史記錄來指出是誰從哪個商戶買了東西。

因為他們本來買東西也要付手續費的,AnonGirl和她的夥伴沒有額外付任何費用-而且因為他們混合多個交易減少了負載,節省了字節數,他們交易費減少了,還給他們節省了一點比特幣。


分享到:


相關文章: