乾貨 | 比特幣與密碼朋克的延續

買賣虛擬貨幣

從比特幣到區塊鏈再到分散式賬本,密碼學貨幣領域日新月異,以至於我們很難看清它的發展方向。

但是,我們仍然可以發現一些蹤跡。雖然密碼學貨幣行業有很多創新技術,但都建立在前人數十年的研究基礎上。透過追溯這段歷史,我們可以理解比特幣運動背後的動機,進而理解比特幣對未來的願景。

20 世紀 70 年代以前,密碼學主要由軍事機構和間諜機構秘密使用。然而,兩個出版物的釋出讓密碼學技術進入了大眾視野:美國政府出版的《資料加密標準》以及 whitfield diffie 博士和 martin hellman 博士共同撰寫的首部公開的公鑰密碼學著作《密碼學的新方向》。

20 世紀 80 年代,david chaum 博士撰寫了大量關於密碼學的論文。其中一篇論文《無需身份證明的安全性:讓 “老大哥” 成為過去式的交易系統》提及了匿名數字現金和匿名聲譽系統。

接下來的幾年裡,這些想法相互融合,形成了一場運動。

在 1992 年底,eric hughes、timothy c may 和 john gilmore 組成了一個小團隊,每月都會在 john gilmore 位於舊金山灣區的公司 cygnus solutions 碰面。這個團隊有個詼諧的名字“密碼朋克(cypherpunks)”,是 “cipher(密碼)” 和 “cyberpunk(賽博朋克)” 的簡稱。

密碼朋克郵件列表就是在這個時候創立的。幾個月後,eric hughes 發表了《密碼朋克宣言(a cypherpunk’s manifesto)》。他寫道:

“在電子時代,隱私是實現開放型社會的前提。隱私不能與秘密混為一談。私事是不想讓所有人都知道的事,而秘密是不想讓任何人知道的事。隱私是選擇性向世界展露自我的權利。”

聽起來很有道理。但是你可能會想,我又不是密碼朋克,我又沒做錯什麼事,我有什麼好隱藏的?但正如 bruce schneier 所言,說出 “無需隱藏” 論的人弄錯了前提:並不是只有犯了事的人才需要隱私,使用隱私保護措施並不意味著有鬼。

例如,你在窗戶上裝了窗簾,防止外人看到屋內。這不能說明你在從事什麼非法或不道德的活動,只是因為你擔心向外界暴露自己可能會帶來的負面影響。

正在閱讀這篇文章的你會發現自己是密碼朋克運動的直接受益者。

下面是一些知名密碼朋克和他們所做的貢獻:

  • jacob appelbaum:tor 的開發者
  • julian assange:維基解密(wikileaks)的創始人
  • adam back 博士:hashcash 的發明者兼 blockstream 的創始人
  • bram cohen:bittorrent 的發明者
  • hal finney:pgp 2.0 的主要作者兼可重複使用的工作量證明(reusable proof of work)的創造者
  • tim hudson:ssleay(openssl 的前身)的合著者
  • paul kocher:ssl 3.0 的合著者
  • moxie marlinspike:open whisper systems 的創始人(signal 的開發者)
  • steven schear:“權證金絲雀(warrant canary)” 概念的提出者
  • bruce schneier:知名安全研究作者
  • zooko wilcox-o’hearn:digicash 的開發者兼 zcash 的創始人
  • philip zimmermann:pgp 1.0 的提出者

(譯者注:這些成果中有一大部分都是關於網際網路隱私的,並且有些已經成了網際網路的基礎設施,比如 ssl。)


20 世紀 90 年代


20 世紀 80 年代至 90 年代這 10 年間爆發了密碼學戰爭,美國政府試圖扼殺密碼學技術商用的趨勢。

這期間,密碼學幾乎完全被當作軍事技術壟斷,加密技術被列入美國軍需品清單(us munitions list)的第 13 類,遭嚴令禁止 “出口”。

由於出口限制,“可出口” 的 ssl 加密技術只支援 40 位的金鑰長度,使用一臺個人電腦花幾天即可破解。

由於公民自由主義者和隱私倡導者對美國政府侵犯公民隱私的控訴、加密軟體在美國境外的普及和 matt blaze 成功黑入美國政府提出的帶後門的 clipper 晶片,美國政府最終放棄了對密碼學技術的壟斷。

1997 年,adam back 博士發明了 hashcash。hashcash 是一個抗垃圾郵件機制,透過有效提高傳送郵件的(時間和計算)成本,讓垃圾郵件傳送者血本無歸。

adam back 認為 hashcash 會比 chaum 的 digicash 更易用,因為使用者不需要建立賬戶。另外,hashcash 還採取了一些措施來防止 “雙重花費” 攻擊。

1998 年底,wei dai 提出了 “b-money” 的設想,用來執行匿名參與者之間的協議。他提出了兩個有趣的概念,想必你不會感到陌生。第一個概念是讓每位參與者都維護一個獨立的資料庫,用來記錄使用者的資金歸屬情況;第二個概念是第一個的變體,由一部分參與者記錄使用者的賬戶資金餘額,這些參與者需要交納押金來防止作惡。

比特幣採用了第一個概念,其它很多密碼學貨幣專案則採用了第二個概念的變體(也就是我們如今所說的權益證明)。


21 世紀


顯然,密碼朋克基於彼此的研究成果進行了長達數十年的構建工作,實驗並建立了 20 世紀 90 年代所需的框架。然而,最關鍵的還是 21 世紀誕生的密碼學貨幣。

2004 年,hal finney 基於 back 的 hashcash 創造了可重複使用的工作量證明(rpow)。rpow 是隻能使用一次的特殊密碼學代幣,很像是比特幣的未花費交易輸出。但是,驗證和防止雙重花費攻擊仍由中心化伺服器執行。

nick szabo 在 2005 年提出了 “bit gold”—— 基於 finney 的 rpow 建立的數字收藏品。然而,szabo 並沒有提出一種機制來限制 bit gold 的總髮行量,而是設想每單位 bit gold 的價值會根據建立它們所需的計算量有所不同。

最後,在 2008 年,中本聰(至今都身份不明的個人/團體)釋出了比特幣白皮書,並在其中提到了 hashcash 和 b-money。實際上,中本聰曾在發給 wei dai 的電子郵件中提到他從 back 博士那裡瞭解了 b-money。

中本聰在比特幣白皮書中專門提到了隱私:

“傳統的銀行模式會透過限制訪問相關方的資訊和可信第三方來實現一定程度的隱私性。在必須公開所有交易資訊的情況下,傳統的隱私保護方法行不通,但是還有另一種方法:透過隱藏公鑰持有者的身份來阻斷資訊流。公眾可以看到有人將一筆資金髮送給了另一個人,但是無法透過任何資訊將這筆交易與任何人聯絡起來。其資訊公開程度類似於證券交易所。證券交易所只透過證券買賣彙總記錄帶(tape)公開每筆交易的時間和規模,但是不會洩漏參與方的身份資訊。”


- 比特幣的隱私模型(來源:比特幣白皮書) -

中本聰建立了一個可供人們使用、擴充套件和分叉的系統,極大地推動了密碼學技術的發展。

比特幣的誕生讓整場密碼朋克運動如虎添翼。它使得維基解密等組織在被傳統金融系統列入黑名單之後,依然可以透過比特幣捐款來維持運營。


隱私保護鬥爭


然而,隨著比特幣生態系統近年來發展壯大,隱私問題似乎被淡化了。

很多早期比特幣使用者以為比特幣系統可以讓他們完全匿名,但是據我們的瞭解,很多執法機構都透露過它們能夠在調查期間查明比特幣使用者的身份。

open bitcoin privacy project 透過對使用者進行隱私性教育和推薦最佳比特幣服務用例彌補了這方面的不足。該團體構建了一個關於比特幣錢包隱私性攻擊的威脅模型。

該模型目前將攻擊者分為以下幾類:

  • 區塊鏈觀察者 —— 透過觀察價值流的模式來將不同的交易和同一個身份聯絡起來。
  • 網路觀察者 —— 透過觀察點對點網路上的活動來將不同的交易和地址聯絡起來。
  • 物理攻擊者 —— 嘗試查詢錢包裝置上的資料來篡改該錢包或對其進行分析。
  • 交易參與者 —— 建立交易來追蹤區塊鏈上的活動並識別交易者的身份。
  • 錢包提供商 —— 可能會要求使用者提供個人身份資訊,然後觀察他們的交易。

blockstream 的 jonas nick 就比特幣使用者的隱私問題進行了大量研究。

jonas nick 在一次精彩的演講中揭露了很多隱私漏洞。其中一些漏洞對 spv 比特幣客戶端來說是毀滅性的:

影片地址:
https://youtu.be/hsck4pkdnds

就比特幣而言,最大的隱私威脅來自區塊鏈觀察者 —— 由於網路中的每筆交易都是永久公開的,無論是現在還是將來,任何人都有可能威脅到比特幣使用者的隱私性。

因此,最好的做法就是永遠不要重複使用同一個比特幣地址,這也是老生常談的建議。

中本聰甚至在比特幣白皮書中強調了這一點:

“作為額外的隱私安全保護措施,交易者每傳送一筆交易都應該使用一個新的金鑰對,以防有人找到這些交易的共同所有者。多輸入交易必定會顯示這些輸入都來自同一個所有者,因此難免會洩漏一些關聯性。這裡的風險在於,這種關聯性有可能在金鑰所有者身份曝光時洩漏該所有者的其它交易。”


近年來的密碼朋克創新


為了提高比特幣使用者的隱私性,近年來人們建立了很多系統和最佳範例。pieter wuille 博士在 bip32 中提出的分層確定性錢包(hierarchical deterministic wallet)可以大幅降低比特幣錢包管理地址的難度。

雖然隱私保護並非 pieter wuille 的主要目的,但是分層確定性錢包可以輕而易舉地生成新的地址用於交易,幫助使用者避免地址重用。

橢圓曲線迪菲-赫爾曼-默克爾(ecdhm)地址是隱私增強型比特幣地址方案。ecdhm 地址可以公開分享。交易傳送方和接收方可以利用 ecdhm 地址秘密生成區塊鏈觀察者無法預測的傳統比特幣地址。因此,ecdhm 地址是可以重用的,不像傳統比特幣地址那樣會因重用而洩漏隱私。

ecdhm 地址方案的例子包括 peter todd 提出的 stealth addresses(秘密地址)、justus ranvier 提議的 bip47 可重用支付碼和 justin newton 等人提議的 bip75 帶外地址交換等。

使用者還可以使用比特幣混幣器來增強隱私性,但是這種方法需要消耗較多人力資源。將網路參與者的代幣混合這一概念類似 chaum 博士提出的 “混合網路(mix network)”。


現有的幾種混幣演算法包括:

  • coinjoin —— 第一個混幣演算法是 blockstream 的聯合創始人 gregory maxwell 提出的 coinjoin。它可以讓使用者使用來自多方的輸入建立交易,然後將比特幣傳送至多個輸出(即,同一批人),由於每筆資金都被混合在了一起,輸入和輸出之間的關聯很難被找到。

- 簡單的 coinjoin 交易示意圖 -

  • joinmarket —— 開發者 chris belcher 提出的 joinmarket 可以讓比特幣持有者透過提供比特幣來參與 coinjoin 混合來賺取手續費。joinmarket 使用了某種智慧合約來避免使用者的私鑰離開本地,從而降低私鑰丟失的風險。簡而言之,joinmarket 可以讓你以低成本且去中心化的方式來提高比特幣交易的隱私性。
  • coinshuffle —— 一群德國薩爾大學的研究者開發了去中心化混幣協議 coinshuffle。coinshuffle 是 coinjoin 的改良版,不需要可信第三方來建立混幣交易,因此不會收取額外的混幣費。
  • coinswap —— maxwell 提出的 coinswap 與 coinjoin 差別很大,因為它使用一組 4 筆多籤交易(兩筆託管交易和兩筆託管釋放交易)來實現雙方的免信任代幣交易。它雖然在效率上遠低於 coinjoin,但是可以提供更強的隱私性,甚至實現跨鏈代幣交易。

混幣無異於 “藏木於林”,只是這片林子通常不會很大。混幣只能產生混淆,無法實現完全匿名性,因為這類方案只能讓低段位的觀察者難以追蹤資金流向,但是高段位的觀察者依然有可能破解混幣交易。

2014 年,kristov atlas(open bitcoin privacy project 的創始人)在一篇文章中闡述了 coinjoin 客戶端實現不當會產生的弱點。

- coinjoin 的輸入和輸出分組 -

atlas 指出即使使用比較粗糙的分析工具,他也能找出一筆 coinjoin 交易內 69% 的輸入和 53% 的輸出。

甚至還有一些聚焦隱私性的密碼學貨幣。

例如,evan duffield ?和 daniel diaz 設計的 dash 有一個叫作 “darksend” 的功能。darksend 是 coinjoin 的改良版,主要在使用金額和混幣頻率上進行了改進。

dash 的混幣方案使用 0.1 dash、1 dash、10 dash 和 100 dash 等常見金額,大幅提高了輸入輸出分組的難度。在每個混幣會話中,使用者提交相同的金額作為輸入和輸出。

為使混幣的隱私性最大化,讓時序攻擊難以成功,darksend 會自動以特定的時間間隔執行。

- dash 混幣(來源:dash 白皮書) -

還有一類隱私幣甚至沒有在比特幣的基礎上構建。2014 年,nicolas van saberhagen 釋出了 cryptonote 的白皮書。一些密碼學貨幣就是根據 cryptonote 概念實現的,例如門羅。主要的創新是密碼學環形簽名和一次性金鑰。

常見的數字簽名(比如比特幣簽名)都是由一對金鑰(公鑰和私鑰)建立的。因此,只要有人能使用私鑰簽署一筆交易,即可證明該私鑰對應的公開地址為 ta 所有。

環簽名由(ring signature)adi shamir 博士等人在 2001 年首次提出,基於 chaum 博士和 eugene van heyst 在 1991 年提出的群簽名(group signature)構建。環簽名需要一群參與方,各參與方持有自己的金鑰對。

環簽名能夠證明某個資訊的簽名者是群成員。它與普通數字簽名方案的主要區別在於,簽名者只需要持有一個私鑰,但驗證者無法確定簽名者的確切身份。

因此,如果你看到包含 alice、bob 和 carol 的公鑰的環簽名,你只能斷定簽名者就是三人之一,但是無法知道被簽署的交易究竟屬於誰。環簽名提供了另一種層次上的混淆,讓區塊鏈觀察者難以追蹤系統中每筆付款的歸屬(發起方)。

有趣的是,環簽名是針對告密場景提出的,可以在不洩漏告密者身份的同時證明其訊息來源的可信度(可知告密者是某個知名團體的成員)。

cryptonote 旨在降低金鑰重用和利用輸入追蹤輸出所產生的風險。付款地址是利用付款方和收款方的資料生成的一次性金鑰。只要你在輸入中使用環簽名,它到底花了哪筆交易的輸出會變得更加難於確定。

如果區塊鏈觀察者試圖根據區塊鏈上的交易找出已使用過的地址之間的關聯並繪製關係圖,將得到一個樹狀圖,因為沒有地址被二次使用過。隨著交易越多,樹狀圖的可能性會呈指數級增長,因為每個環簽名都會為地址之間的價值流動增加不確定性。

因此,你無法確定具體的付款地址。

根據環簽名所涉及的參與者人數,每筆交易的混淆性從 “1/2” 到 “1/100” 不等。每新增一筆交易都會增加熵值,並提高區塊鏈觀察者的追蹤難度。

- 抗區塊鏈分析(來源:https://cryptonote.org/inside/) -


醞釀中的密碼朋克創新


雖然密碼學貨幣使用者的隱私安全依然存在很多隱患,但是在密碼朋克的不斷努力下,前途將是一片光明。

零知識證明或將推動隱私保護實現下一個重大飛躍。零知識證明於 1985 年首次提出,旨在拓寬密碼學協議的潛在應用。

基於 back 博士在 2013 年撰寫的《具有同態值的比特幣》,maxwell 一直在潛心研究保密交易(confidential transaction)。保密交易使用零知識範圍證明(zero-knowledge range proof)來建立比特幣交易,使得交易所包含的值僅相關方可見。

保密交易本身就是一大進步。但是,如果我們將它與 coinjoin 結合起來,就可以構建一種混幣服務,切斷交易輸入和輸出之間的一切關聯。

maxwell 曾在舊金山舉辦的比特幣開發者會議上做了一場主題為 “側鏈要素” 的分享。我記得他說了一句話:“ietf(網際網路工程任務組)裡那幫老頭最大的遺憾之一就是構建網際網路時沒有預設採用加密資料傳輸方式。”

對於比特幣的隱私性,maxwell 顯然也是這麼想的:要是一開始能使用保密交易就好了。如今,blockstream 已經在 liquid 側鏈上實現了保密交易,來掩蓋交易所之間的轉賬。

maxwell 已經在比特幣網路上實現了零知識證明有條件支付(zero-knowledge contingent payment,zkcp),併成功完成了第一筆付款。zkcp 是一種免信任交易協議,可以讓買方使用比特幣向賣方購買資訊。只有當付款完成後,買方才會且一定會收到資訊。買賣雙方不需要信任對方,或依賴第三方仲裁。

幾年前,我寫過一篇關於 zerocoin 的文章,並指出該系統需要解決一些技術挑戰才能變得真正可用。自那以後,研究人員已經讓證明變得更加高效,並透過初始系統引數生成解決了信任問題。zerocoin 的願景即將由 wilcox-o’hearn 建立的 zcash 實現。

zcash 提供完全的付款保密性,同時使用公鏈來維護去中心化網路。zcash 交易會自動隱藏所有鏈上交易的付款方、收款方和轉賬金額。只有查閱金鑰的持有者才能檢視對應交易的內容。由於 zcash 交易的內容經過了加密,而且是私密的,系統需要使用新的密碼學方法來驗證付款。

zcash 採用了一種叫作 zk-snark 的零知識證明結構。zk-snark 由一群經驗豐富的密碼學家開發。

交易後設資料都是加密的,不會公開轉賬授權和金額。zk-snark 被用來證明交易的有效性。zcash 很可能是首個實現防彈匿名性的數字支付系統。


密碼朋克薪火相傳


密碼朋克上下求索的這十年來,計算機技術也有了長足發展。無論是個人還是團體,都能以完全匿名的方式進行通訊和互動。

兩個人可以在不知道對方真實姓名和身份的情況下交換資訊、開展業務並締結電子合約。當然了,政府會以該技術有可能威脅國家安全、助長犯罪和導致社會分裂為由,來阻礙或遏制它的傳播。


密碼朋克深知,要想獲得隱私,我們必須捍衛它。幾個世紀以來,為了捍衛隱私,人們使出了百般手段:竊竊私語、暗處密會、密封信函、緊閉門扉、秘密握手和專人傳信。

20 世紀之前既沒有強大的隱私技術,也沒有可以實現低成本大規模監督的技術。

儘管存在隱私增強技術,但是這個世界依然偏重監視而輕視隱私。我們已經進入了很多人口中的密碼學戰爭 2.0 時期。

雖然密碼朋克贏得了第一場密碼學戰爭,但是我們千萬不能得意忘形。zooko 有過密碼朋克專案的失敗經歷,他告誡我們要做好迎接失敗的心理準備。


密碼朋克相信,隱私性是基本人權,包括政府保障的隱私性。他們明白,無論系統的安全性因何種原因(包括 “可信當局” 的介入)被削弱,都會威脅到系統使用者的安全。

密碼朋克要寫程式碼。他們知道必須要有人編寫軟體來捍衛隱私性,因此挺身而出。他們還會公開程式碼,以便其他密碼朋克進行學習、攻擊和改進。

密碼朋克允許任何人使用他們的程式碼,也不在乎別人是否認同他們編寫的軟體。他們知道自己的軟體無法被破環,廣泛分佈的系統也無法被關閉。

—–begin pgp signed message—–

hash: sha256

public key: https://keybase.io/lopp/key.asc

the original cypherpunks mailing list no longer exists, but there are more cypherpunks now than ever before. we discuss our ideas on a wide variety of email lists, chat rooms, and social media platforms. there is much work to be done; while great progress has been made designing and deploying privacy enhancing systems, they are still far from perfect and it is still far too difficult for the average person to benefit from them. there are many battles left to be fought in the crypto wars; take up your keyboards and let us proceed together apace.

—–begin pgp signature—–

wsfcbaebcaaqbqjw9vrfcranjdn7da6bsqaai68qakxmrygxfr8g0xhnjadjfah6

ixjlv+pa74h3oskv97loaejy8ygyhyb8uodf5h3ybqsrlucef2xj8u4pcl5imvse

uurfxbseyucgmonxf8w4dswcu0ls1znlbpvkolirnakkfvg+lygy0ec7ddq17okf

mtzjaw6/3ed289+yz7lj5fe6pst4l7isoedlypsm/1rn6jlvaq/wongb/xpujnzw

zagpg5qhggctchcpzr9i1obsjtklhlcrhccxhq6ldailxjn0weochyirhac4fr0p

c+ybb2bwzxccvh4puvgc4oextfvzuckvud88z3j5zn8r0zjb83zpitk7tmueneyw

ery21lxg2wv+cacwpze+lm9gkaolkedgiendq20csm6vql3gkicj3kdfl9btyvzw

tpihbmve4hmepivc4tjhemiictmajkcn0mrql/tjspw5dyqbs22++o/cslzc3w+t

ky+7da4jibmk993fpdszwyqpvkpxwyllofbqq6dmlycu1ahpdv8x18kapey0w2e8

rspdr4eukxnlddemoqfdtsiydpb/ldqe5raxuh7/xpwzwuoccoe305puznic7co3

5cvnsg7kgujfzhfhpijytzhko8qshsl7bsmw/botao9c/wha0/+qmnwvmduwbvyj

bldemjqvb87ubje5e7rl

=hr9e

—–end pgp signature—–

(被簽名的訊息意為:最初的密碼朋克郵件列表已不復存在,但是密碼朋克隊伍已然壯大到了前所未有的規模。我們在各種郵件列表、聊天室和社交平臺上討論了我們的想法。目前我們還有很多事情要做;雖然隱私增強系統的設計和部署方面取得了巨大進展,但還遠遠沒到完美的地步,普通人也很難從中受益。密碼學戰爭還有很多戰鬥要打響;拿起你們的鍵盤,我們一起衝鋒向前。)


原文連結:

https://blog.lopp.net/bitcoin-and-the-rise-of-the-cypherpunks/

作者: jameson lopp

翻譯&校對: 閔敏 & 阿劍

(文章來源:以太坊愛好者)


免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读