通證通研究院 × FENBUSHI DIGITAL 聯合出品

文:宋雙傑,CFA;田志遠;金佳豪

特別顧問:沈波;Rin

導讀

針對 BTC 在隱私性方面的問題,各種各樣的匿名通證應運而生,並迅速在數字通證市場佔據了一席之地。

摘要

作爲數字通證的先行者,BTC 已歷經十年起伏,具備良好魯棒性的同時也逐漸顯露出隱私保護的侷限性。
近年來,隨着區塊鏈技術、隱私計算技術、密碼學技術等方面的發展,基於各種新興技術爲保護交易隱私而創立的匿名通證相繼出現。

2012 年 12 月,
第一個針對數字通證隱私問題的協議——CryptoNote 問世。該協議介紹了兩種技術:隱私地址技術和環簽名技術,分別提供對數據接收方和發送方的隱私保護。

2013 年 1 月, BTC 開發商 Gregory Maxwell 爲提高 BTC 的隱私性提出了 Coinjoin 技術
,Coinjoin 使用多重簽名技術,交易者需各自獨立分散完成簽名,只有提供了所有簽名的交易才能被判定合法,並被網絡接收。

2013 年 5 月, 約翰霍普金斯大學教授 Matthew D. Green 等人提出了 Zerocoin 協議。
此協議提議允許銷燬並重新生成數字通證,以保證通證交易匿名化且無需可信第三方參與。次年 5 月 Matthew D. Green 等人在 Zerocoin 的基礎上創建了
Zerocash ,並提出了一種經典的零知識證明法—— zk-SNARKs

2015 年 10 月, Monero 研究實驗室的 Shen-Noether 提出 RING-CT,
該技術基於 CryptoNote 協議發展而來,是一種隱匿交易金額的技術,同時可加快交易速度。

2016 年 7 月, Tom Elvis Jedusorand 提出 Mimblewimble
該技術保留了 BTC 基於 PoW 共識的優越特性,同時針對 UTXO 集合進行了優化,在大幅提升匿名性的同時,能夠極大地節省區塊鏈存儲空間。

風險提示:監管不確定性,匿名性或影響性能

目錄

1 匿名伊始——BTC 的“提爾鋒”

1.1 BTC 的隱私策略

1.2 BTC 的“提爾鋒”

2.3 “匿名通證”應運而生

2 常見的匿名技術

2.1 CryptoNote 協議——首個數字通證隱私協議

2.1.1 隱私地址技術

2.1.2 環簽名技術

2.2 Coinjoin——非中心化的“混幣”方案

2.3 Zerocoin、Zerocash——巧用密碼學領域的高級證明法

2.4 RING-CT——CryptoNote 的繼任者

2.5 Mimblewimble——優化 BTC 的神奇咒語

正文

1 ** 匿名伊始——BTC 的“提爾鋒”**

2008 年,中本聰發表了聞名遐邇的《Bitcoin: A Peer-to-Peer Electronic Cash
System》(BTC:一個點對點的電子現金系統)並於次年挖掘出第一枚 BTC,數字通證第一次從設想成爲現實。彼時正值金融危機爆發,人們對於法定貨幣的信心大幅削減,而 BTC 的
非中心化(Decentralized)、抗通脹、公開透明、不可逆性(Immutable)和匿名性(Anonymous)
等特徵似乎符合人們對於理想貨幣的設想。

1.1 BTC 的隱私策略

在 BTC 初露鋒芒之際,媒體和投資者對於數字通證褒貶不一。一部分人的關注點在於數字通證是否爲一種新型的“龐氏騙局”;而另一部分人則聚焦於 BTC 的各種優越特性,包括非中心化、匿名性、不可逆性等。隨着對數字通證的認識越來越深入,公衆對於前者漸漸形成了共識——開源共享、自由查看的 BTC 不具備龐氏騙局的典型特徵。但 BTC 在運行過程中也逐漸暴露出一些問題,其中之一便是隱私問題。

進行 BTC 交易無需提供真實信息,只需提供與真實信息無關的虛擬信息(地址),但由於區塊鏈記載了每一筆交易的相關地址和金額,因此追蹤者可以在多次交易中匹配到相同的地址並將它們相關聯。正因如此,BTC 的隱私策略被稱爲“假名”(Pseudonymity)。

2017 年 9 月,美聯邦當局通過 BTC 地址在亞特蘭大機場抓捕了法國毒梟 Gal
Vallerius,這在當時引起了廣泛關注。調查人員發現暗網大毒梟 OxyMonster 多次使用同一 BTC 地址收款,並且該地址的 17 次轉出交易中有 15 次關聯到法國公民 Gal
Vallerius。執法部門注意到這條線索,進一步分析開源數據後定位到了 Vallerius 的 Instagram 和 Twitter 賬號,對 OxyMonster 和 Vallerius 的寫作風格進行對比後,最終確定其身份。

除了存在隱私方面的問題,“假名”策略還損害了 BTC 的 可替換性(Fungibility)

1.2 BTC 的“提爾鋒”

可替換性是指某種物品的獨立單位本質上可以互換,
黃金和法幣都具有可替換性,相同重量的黃金之間、相等面額的法幣之間都是等價的,不因黃金是否經手海盜或者鈔票是否曾在黑市流通(鈔票雖然具有編號,但很少會有人注意這些編號)而改變其價值。

BTC 的“假名”策略導致其喪失了“可替換性”這一特性。
交易記錄的公開透明、可追溯和不可篡改是 BTC 作爲數字通證深受讚譽的特點,區塊鏈上保存了從“創世塊”(Genesis block)至今所有的交易記錄。

但是這些特點如今成爲了 BTC 的“提爾鋒”。持有者絕不希望陷入被相關部門凍結通證之類的麻煩,因此交易接收方通常會拒絕收入“被污染的”(例如曾有過非法交易歷史)的 BTC,更傾向於持有乾淨的 BTC,其中價值最高的就是第一次從礦工手上流出的 BTC。

注:提爾鋒:北歐神話中的魔劍,無堅不摧百發百中,但同時也詛咒所有者步向滅亡。

爲加強數字通證交易的隱私性,ByteCoin,一種基於 BTC 發展而來的加密通證應運而生。

1.3 “匿名通證”應運而生

作爲第一個基於 CryptoNote 協議的匿名通證,Bytecoin 使用隱私地址技術(Stealth Address)和環簽名技術(Ring
Signature)應對 BTC 在隱私保護方面的缺陷。

自 Bytecoin 之後,各種匿名通證如雨後春筍般涌現,並且吸引了衆多投資者,其中 Monero、Dash 等匿名通證的市值在所有數字通證中穩居前列(依據 CoinMarketCap2019 年 6 月 24 日市值排名,Monero 居第十三,Dash 居第十五)。

目前市場上比較有代表性的匿名通證包括已經過幾年時間驗證的 Monero、Dash、Zcash 等,由匿名通證硬分叉而來的 Zencash
等,以及 Grin、Beam、Dero
等數字通證圈的新寵。這些匿名通證在信息技術、匿名技術、密碼學等方面各有突破,下文將對目前市場上常見的匿名技術進行介紹。

2 ** ** ** ** ** 常見的匿名技術****

針對 BTC 的隱私性問題,世界各地的學者們展開了研究,迄今爲止已經提出了許多比較完善的解決方案且已在實際區塊鏈項目中得到應用。

目前比較常見的匿名技術包括 CryptoNote、Coinjoin、Zerocoin (以及次年基於 Zerocoin 發展而來的 Zerocash)、RING-CT、Mimblewimble 等。

2.1 CryptoNote 協議——首個數字通證隱私協議

2012 年 12 月,第一個針對數字通證隱私問題的協議——CryptoNote 問世。 該協議介紹了兩種技術: 隱私地址技術和環簽名技術
,分別提供對數據接收方和發送方的隱私保護。 2013 年 10 月名義撰寫人 Nicolasvan
Saberhagen 更新了 CryptoNote 第 2 版。基於 CryptoNote 協議的匿名數字通證有很多,包括 Bytecoin、Monero 和 Particl
(Monero 和 Particl 使用 RING-CT 協議,此協議基於 CryptoNote 發展而來)。

2.1.1 隱私地址技術

隱私地址技術是隱藏實際交易地址的技術,該技術主要提供對數據接收方的隱私保護。

用戶進行 BTC 交易時將在公共區塊鏈上生成一份標準的 BTC 交易記錄,交易記錄包含接收方的地址,BTC 使用假名技術保護接收方的地址隱私,但是區塊鏈的公開透明性使追蹤者能夠將特定假名的所有交易相關聯,進而結合其他信息和方法可能追蹤到實際交易者。

CryptoNote 的 私地址技術使用一次性隱匿地址(後稱混淆地址)降低不同交易之間的關聯性,發送方和接收方可通過密鑰確認交易是否有效。

相較於其他的隱私策略,隱私地址技術具有 多重密鑰 的特性。 接收方具有私鑰 b 和公鑰 B (B=bG)
,G 爲橢圓曲線上的一個點。發送方在交易時取得接收方的公鑰 _ B_ ,生成混淆地址 _ P_ 。該地址由兩部分構成,一部分由接收方的公鑰 _
B_ 經過哈希生成,這一過程加入了只有發送方擁有的隨機數 _ r_ ;一部分爲接收方的公鑰 _ B_ 。

在交易的開始階段,支付方 Alice 獲得接收方 Bob 的公鑰 ** B** ,結合隨機數 _ r_ 經過哈希和橢圓算法獲得混淆地址。混淆地址 **
P** 生成後被礦工記錄上鍊。接收方可以在鏈上獲取隨機數 ** r** 經橢圓算法運算後的 ** R (R=rG)** ,且 _
bR=brG=rbG=rB_ ,根據此等式接收方可使用 ** R** 、私鑰 _ b_ 和公鑰 ** B** 生成相同的混淆地址:

接收方通過 ** R** 、私鑰 ** b** 和公鑰 _ B_ 檢驗區塊鏈上的所有交易地址以確認是否存在自己的交易。檢查等式如下:

隱私地址技術使用一次性的隱匿地址,極大地增強了交易接收方的安全性,保證通信接收方的信息隱私。

2.1.2 環簽名技術

相比於隱私地址技術, 環簽名技術 能夠提供對 數據發送方 的隱私保護。環簽名技術借用
無法追溯來源的共同簽名實現數字通證交易簽名混淆化
。共同簽名混合一羣信息發送方的簽名,其中之一是信息真正的發起者,其餘來自於區塊鏈網絡。後者從區塊鏈曾記錄的無數簽名中提取而來,被稱爲
誘餌(decoy)

環簽名技術涉及密碼學中的單向陷門函數,該函數 首先是一個單向函數, 通過不對稱算法保證不可逆性(即正向計算容易而反向計算困難,例如函數 _
y=f(x)_ 若已知 _ x_ 欲求 _ y_ 很容易,而已知 _ y_ 欲求 _
x=f^-1(x)_ 則很困難)。 其次具有一個特定陷門(也稱後門), 若知道陷門 _ m_ 可以很容易地計算出 _
x=f^-1(x)_
。在基於單向陷門函數的公開密鑰密碼體制中,公鑰是公開可查的,可用於加密信息,且僅有擁有私鑰的接收方可以使用私鑰對加密信息進行解密。

生成簽名。 利用發送方私鑰與一組區塊鏈上的隨機公鑰進行運算形成環簽名。首先,發送方從區塊鏈上獲得 r 個混淆公鑰 **
Pi (i=1,2,…,r)** ,生成隨機數 ** xi (i=1,2,…,r)** 並通過 r 個公鑰加密生成 _ yi (i=1,2,…,r)_
。然後選取隨機數 _ v_ ,並通過特定算法(此算法中, _ v_ 和 _ yi_ 爲參數)生成 _ ys_
。作爲私鑰的擁有者,發送者可以很容易地利用私鑰和 _ ys_ 計算得到 _ xs_ 。 最終的環簽名 P 由以下參數組成(其中
Ps 是發送方的公鑰):

驗證簽名。 驗證者使用環簽名中的參數 xi (i=1,2,…,r) ,xs 經過各自對應的單向陷門函數(即 Pi,Ps
),求得相對應的輸出值 yi (i=1,2,…,r),ys ,最後將 yi,ys 經過上述特定算法的逆運算得到 _ v'_ ,對比驗證環簽名中
_ v=_ v'若等式成立則環簽名有效。

環簽名技術在信息發送環節加入了不可分辨的無效信息,從而能夠保護髮送方的信息隱私。 在簽名驗證環節通過驗證整體的簽名即可確認交易信息的有效性。

2.2 Coinjoin——非中心化的“混幣”方案

2013 年 1 月 28 日,BTC 開發商 Gregory Maxwell 爲提高 BTC 的隱私性提出了 Coinjoin 技術,其基礎爲“混幣”技術。

“混幣”是一種較樸素的通證匿名技術,指將多個交易者的輸入進行混合後輸出。觀察者無法根據混幣後的輸出關聯到交易輸入,從而混淆數字通證流向。然而,早期的“混幣”需要可信第三方的參與,存在中心化風險和信任問題。
在此基礎上發展起來的 Coinjoin 則是非中心化的混幣方案。

Coinjoin 使用多重簽名技術(Multisig),交易者需各自獨立分散完成簽名,只有提供了所有簽名的交易才能被判定合法,並被網絡接收,否則,便會悉數分別退回個體的資產。

相比早期的混幣服務,Coinjoin 能夠有效化解第三方信任風險,避免了第三方盜竊與泄露混幣信息的可能。
CoinJoin 是非中心化混幣機制的基礎,主流匿名通證中的 Dash 便應用了此協議。

但是,即便 Coinjoin 在設計上不需要可信第三方參與,但爲保證混幣的效果,需要有充足數量的數字通證。
這依然導致對數字通證集中持有者的依賴性。Zerocoin 協議針對此問題提出了改進方案。

2.3 Zerocoin、Zerocash——巧用密碼學領域的高級證明法

2013 年 5 月,爲了改進 Coinjoin 需要第三方參與的缺陷,約翰霍普金斯大學教授 Matthew D. Green 等提出了
Zerocoin 協議。此協議提議允許銷燬並重新生成數字通證,以保證通證交易匿名化且無需第三方參與。

2014 年 5 月, Matthew D. Green 等人基於 Zerocoin 創建了 Zerocash 協議。 該協議利用密碼學領域的高級證明——
零知識證明方法 對 Zerocoin 進行了完善和改進。 Zerocash 提出了一種經典的零知識證明方法——zk-SNARKs。

本系列前文已經提到, 零知識證明是密碼學的高級證明
(詳見《隱私計算:動態的加密技術——區塊鏈技術引卷之八》)。
證明者在不透露隱私數據的情況下,可以向任意第三方證明自己確實擁有特定數據。零知識證明具有完備性、穩定性、零知識性的特點。
理論上,零知識證明是匿名程度最好的隱私計算技術,其學術資本較強。

zk-snark (Zero-knowledge succinct non-interactive arguments of knowledge)
是一種經典的零知識證明法,發送方可以在不泄露交易的金額、地址等細節的前提下向驗證者證明交易的合法性。

zk-SNARKs 的驗證過程主要包含三部分。

第一:抽象編碼。 證明者需要向驗證者證明他知道某一事實,這一邏輯在第一步被抽象爲證明者需要向驗證者證明一個多項式成立。例如:

第二:簡單隨機抽樣。 驗證者雖無法直接確認多項式成立,但可使用評估點進行評估。驗證者選取隨機的評估點 s,若在評估點上等式成立(即 _
f(s)⋅g(s)=h(s)⋅w(s)_ ),則說明含參多項式具有一定可信度。通過多次選取評估點能不斷提升可信度。

第三:零知識證明。 爲了確保證明者不會因爲透露 _ f(s)、g(s)、h(s)、w(s)_
的值而泄露安全信息,證明者使用同態加密技術將上述值加密。例如使用同態加密函數 E 將上述值加密爲 _
E(f(s))、E(w(s))、E(h(s))、E(w(s))_ ,驗證者被授權驗證加密後的值,如果加密後的值符合下式,則驗證成功。

但是, zk-SNARKs 有兩個明顯的缺陷。第一,依賴於可信的初始設置。
基於此方法的數字通證交易要求每一對證明者和驗證者都提供一組公共參數以進行零知識證明,而這組公共參數是由協議開發者共同設置的,擁有這些公共參數意味着擁有了造假權。換言之,
zk-SNARKs 無法避免開發者風險,開發者可能由於不同的原因泄露公共參數。 第二,zk-SNARKs 的加密技術基於橢圓曲線密碼,
目前的計算機無法暴力破解。但隨着計算機性能的提高,尤其是量子計算機的進步, 這種不具備量子抵抗能力的方法可能會在將來被暴力破解。

zk-stark (Zero-knowledge Scalable Transparent Argument of Knowledge),
一種零知識、可擴展、透明的知識論證正在研究當中。 該方法能夠保證生成證明的所有參數都是公開並隨機生成的,同時還具備量子抗性。

2.4 RING-CT——CryptoNote 的繼任者

RING-CT (Ring Confidential Transactions)是一項隱匿交易金額的技術。
這項技術於 2015 年 10 月由 Monero 研究實驗室的 Shen-Noether 提出。在最初的 Monero 交易中,爲了保證環簽名有充足的數據來源,交易往往需要被拆分爲特定面額,以保證環簽名技術的混淆能力。

然而,通證的交易數額也屬於交易雙方的隱私。 基於這一理念,RING-CT 技術被提出並得到了廣泛應用。應用 RING-CT 協議之後,數字通證
只有從區塊鏈中獎勵給礦工時會顯示數額,其後的所有交易將遮罩交易面額, 轉爲在交易中提供一個數字 _ RCXXX_ 作爲交易金額輸出。

交易輸出由兩部分組成,一是隨機數,用來遮罩真實金額,由錢包自動產生;另一部分爲真實交易金額。 礦工不能從 _ RCXXX_
中得到交易具體數額,但可根據 _ RCXXX_ 驗證 交易輸入是否等於交易輸出,
以確認沒有僞造產生通證。在整個環節中,不論礦工還是其餘觀察者都無從得知確切的交易金額信息。

RING-CT 同時解決了環簽名技術需要分割交易的問題。
公開交易金額削弱了環簽名的混淆能力,而隱匿交易金額能彌補這一缺陷,同時由於交易金額隱匿後無需分割交易,因此在提升了交易隱匿性的同時,也能夠加快數字通證交易速度。

2.5 Mimblewimble——優化 BTC 的神奇咒語

Mimblewimble 取名於哈利波特中的魔法咒語,於 2016 年 7 月被匿名撰稿人 Tom Elvis
Jedusorand 提議並於 2016 年 10 月由 Andrew Poelstra 進一步擴展。其研究之初的目的是爲了改進 BTC 的隱私性,同時節省存儲空間。
Mimblewimble 基於 BTC 去粗存精,保留了 PoW 的優越特性的同時,針對 UTXO 集合進行了優化。
目前基於 Mimblewimble 的數字通證代表是 Grin 和 Beam——兩位數字通證界的新寵。

機密交易(Confidential Transactions)是 Mimblewimble 的一項核心技術, 其主要原理基於以下公式:

其中 _ C_ (Pedersen Commitment)是經過橢圓算法 ECDSA 得到的加密交易金額,礦工透過 Pedersen
Commitment 的同態加密特性,即使不知道具體的輸入和輸出金額,但依然可以利用加密後的值確認輸入值等於輸出值,確認交易有效性。

其次,礦工利用 Range Proof 來驗證交易值沒有溢出,即交易雙方沒有憑空創造額外的通證。
比如 Alice 持有 5 枚 BTC,Bob 持有 0 枚 BTC,則交易後 Bob 不可能擁有超過 5 枚 BTC。

最後,Mimblewimble 針對優化礦工存儲空間設計了 Cut-through (覈銷)特性,能夠降低區塊鏈的大小。
隨着時間的推移,區塊鏈會不可避免地擴增、臃腫,但 Mimblewimble 通過 Cut-through 能夠刪除無用信息從而有效壓縮區塊鏈大小。例如,BTC 的區塊鏈上記錄了兩條信息:

  1. Alice 支付 1 BTC 給 Bob

  2. Bob 支付 1 BTC 給 Charlotte

在這個例子中,BTC 區塊鏈記錄了兩筆交易,第一筆交易記錄了來自 Alice 的輸入信息和發送向 Bob 的輸出信息,第二筆交易記錄了來自 Bob 的輸入信息和發送向 Charlotte 的輸出信息。但在交易完成後,Bob 的輸出和輸入信息是過期的無效信息
。Cut-through 技術允許刪除中間無效信息,從而能夠大幅壓縮區塊鏈體積,此外中間信息的丟棄也提高了交易的隱私性。

但需要指出的是,目前基於 Mimblewimble 的實際項目 Grin、Beam 雖然實現了 Cut-through,但礦工能夠根據需要剔除相應代碼,因此 Cut-through 通過刪除中間信息加強數字通證交易隱私性的設想並沒有完全實現。

本文詳細介紹了主要的隱私交易技術,在後續專題中,我們將對各種隱私通證技術進行對比,並對使用各種隱私交易技術的匿名通證的生存環境和未來發展作出分析。

附註:

因一些原因,本文中的一些名詞標註並不是十分精準,主要如:通證、數字通證、數字 currency、貨幣、token、Crowdsale 等,讀者如有疑問,可來電來函共同探討。

來源鏈接:mp.weixin.qq.com