日前,Qtum核心開發(fā)工程師Shannon發(fā)布了隱私資產(chǎn)技術(shù)提案QIP-19。該提案想通過(guò)預(yù)編譯智能合約實(shí)現(xiàn)隱私協(xié)議,以此來(lái)實(shí)現(xiàn)在Qtum網(wǎng)絡(luò)上發(fā)行帶有隱私保護(hù)的資產(chǎn)和Token。并在《如何在現(xiàn)有的區(qū)塊鏈上增加隱私功能?》一文中分析了隱私資產(chǎn)的一個(gè)代表性項(xiàng)目Zether。本文則主要分析目前該領(lǐng)域內(nèi)進(jìn)行中的一些研究工作。
鏈上資產(chǎn)
Colored Coin
比特幣發(fā)展早期,開發(fā)者們一直探索如何在比特幣的交易中存儲(chǔ)特定的數(shù)據(jù)。直到2013年0.9.0版本的發(fā)布,比特幣腳本中增加了OP_RETURN這一新的opcode。OP_RETURN允許在比特幣的輸出腳本中記錄最多80 byte的數(shù)據(jù)。之后,使用了OP_RETURN的交易數(shù)量快速上升[1]。
基于OP_RETURN誕生了一系列協(xié)議,具體參見[2]。這些協(xié)議利用了區(qū)塊鏈上信息公開且不可變的特性,將應(yīng)用的數(shù)據(jù)以特定的格式存儲(chǔ)在OP_RETURN中,從而構(gòu)建了各種各樣的應(yīng)用。其中的一類協(xié)議,例如Open Assets[3]、Omni Layer[4],允許用戶在比特幣的區(qū)塊鏈上創(chuàng)建新的資產(chǎn),資產(chǎn)的發(fā)行、轉(zhuǎn)賬等數(shù)據(jù)存儲(chǔ)在OP_RETURN中。以O(shè)mni Layer為例,支持的數(shù)據(jù)類型如下:
由此,大量的比特幣鏈上資產(chǎn)出現(xiàn)。其中大多數(shù)資產(chǎn)會(huì)與真實(shí)世界中的一種資產(chǎn)進(jìn)行錨定,例如黃金、鉆石等。這類資產(chǎn)又被稱作Colored Coin。至今,我們最為熟悉的一種Colored Coin是USDT,它以美元作為錨定,出現(xiàn)在大多數(shù)的數(shù)字貨幣交易所中。
在比特幣區(qū)塊鏈上發(fā)行資產(chǎn)有著很多優(yōu)勢(shì)。其中最為重要的一點(diǎn)是,發(fā)行方可以借助比特幣本身的安全性和易用性來(lái)維護(hù)資產(chǎn),而不需要自己進(jìn)行區(qū)塊鏈系統(tǒng)的開發(fā)。
ERC-20和ERC-721
以太坊最大的創(chuàng)新在于智能合約。通過(guò)智能合約,可以更為靈活地構(gòu)建鏈上去中心化應(yīng)用,即DApp。智能合約也常被用來(lái)構(gòu)建鏈上資產(chǎn)。為了規(guī)范以太坊上資產(chǎn)的接口形式,社區(qū)提出了ERC-20 [5]標(biāo)準(zhǔn)。
ERC-20定義了一種基于以太坊智能合約的token資產(chǎn)標(biāo)準(zhǔn)。標(biāo)準(zhǔn)提供了基本的token轉(zhuǎn)賬以及授權(quán)的功能,從而讓第三方,包括錢包、交易所,可以復(fù)用同樣的接口處理不同的token。我們熟悉的USDT也在以太坊上有ERC-20的實(shí)現(xiàn)。ERC-20的具體接口如下:
隨著以太坊上DApp的多樣化,token資產(chǎn)已經(jīng)不能滿足需求。隨著CryptoKitties等收藏型DApp的出現(xiàn),社區(qū)又提出了ERC-721 [6]標(biāo)準(zhǔn)。ERC-721提出了NTF(Non-Fungible Token)的概念,表示一種互相之間有區(qū)別的資產(chǎn),例如房產(chǎn)、藝術(shù)品甚至虛擬的卡片等。鏈上資產(chǎn)從單純的貨幣擴(kuò)展到了更為廣闊的資產(chǎn)概念中。
隱私問(wèn)題
在鏈上資產(chǎn)廣泛應(yīng)用的同時(shí),隱私問(wèn)題也逐漸暴露出來(lái)。資產(chǎn)的余額、轉(zhuǎn)賬等信息都以公開的方式永久記錄在區(qū)塊鏈上,限制了鏈上資產(chǎn)的進(jìn)一步商業(yè)化應(yīng)用。以USDT為例,其發(fā)行、銷毀和轉(zhuǎn)賬,通常都會(huì)被第三方監(jiān)控且解讀。如果使用USDT給他人轉(zhuǎn)賬,自己賬戶下的余額就會(huì)暴露給對(duì)方,這在一些商業(yè)場(chǎng)景下是令人難以接受的。
隱私資產(chǎn)
為了解決鏈上資產(chǎn)的隱私性,許多解決方案被提出。
UTXO上的解決方案
BlockStream率先在2017年提出了一種UTXO上的隱私資產(chǎn)實(shí)現(xiàn)方案 [7],并且應(yīng)用在了Elements項(xiàng)目中。該方案用Pedersen Commitment代替了原本的交易金額:commitment = xG + a(H + rG)
其中a是交易金額。G和H是橢圓曲線上的生成點(diǎn)。G是常量。H表示資產(chǎn)類型,對(duì)于不同的隱私資產(chǎn)取不同的值。x和r稱作Blinding Factor。它們?cè)诿總€(gè)UTXO中都會(huì)隨機(jī)選擇不同的值,分別用于進(jìn)一步隱藏交易金額和資產(chǎn)類型。
在資產(chǎn)的創(chuàng)建、交易和銷毀過(guò)程中,還需要引入一些證明,來(lái)證明隱藏的交易金額和資產(chǎn)類型取值合理。用于交易金額的證明稱作Range Proof,證明了其數(shù)值是一個(gè)正數(shù)。用于資產(chǎn)類型的證明稱作Surjection Proof,用于證明其取值屬于一個(gè)特定的集合。
在Elements項(xiàng)目中,這一方案應(yīng)用在了比特幣的系統(tǒng)中,未來(lái)也計(jì)劃用于MimbleWimble的系統(tǒng)中,例如Grin [8]、Beam [9]。它們的區(qū)別是:
1. 基于比特幣的實(shí)現(xiàn),交易是Non-interactive的,即交易接收方不需要在線以完成交易。基于MimbleWimble的實(shí)現(xiàn)則相反。
2. 基于比特幣的實(shí)現(xiàn),沒(méi)有隱藏交易雙方的地址。基于MimbleWimble的實(shí)現(xiàn)則隱藏了。
BlockStream提出的這種解決方案的優(yōu)點(diǎn)是具有極強(qiáng)的隱私性。交易的地址、金額和資產(chǎn)類型都可以在區(qū)塊鏈上進(jìn)行隱藏,只有UTXO的所有者才能知道。但缺點(diǎn)也很明顯:
1. 系統(tǒng)改動(dòng)較大。必須通過(guò)一條新的區(qū)塊鏈或是對(duì)已有區(qū)塊鏈進(jìn)行硬分叉來(lái)實(shí)現(xiàn)。
2. 沒(méi)有智能合約。在這個(gè)解決方案上無(wú)法再加入智能合約的功能,因此無(wú)法對(duì)隱私資產(chǎn)的邏輯進(jìn)行自定義編程,也無(wú)法創(chuàng)建基于隱私資產(chǎn)的鏈上應(yīng)用。只能通過(guò)一種叫做Scriptless Script的方案來(lái)實(shí)現(xiàn)一些簡(jiǎn)單的交易邏輯。
智能合約上的解決方案
為了解決這些問(wèn)題,許多基于智能合約的隱私資產(chǎn)解決方案被提出,包括AZTEC [10]、Zether [11]、Anonymous Zether [12]、PGC [13]、Nightfall [14] 等。它們都是在智能合約上實(shí)現(xiàn)了隱私交易的功能 ,所以可以用于隱私資產(chǎn)、投票、拍賣等多種場(chǎng)景中。它們之間的對(duì)比如下 :
基于智能合約的隱私資產(chǎn)的優(yōu)點(diǎn)是:
1. 可編程性(Programmability)。可以通過(guò)智能合約修改資產(chǎn)的發(fā)行、銷毀、轉(zhuǎn)賬、交易、鎖定等邏輯,賦予隱私資產(chǎn)更多的功能和屬性。
2. 互操作性(Interoperability)。隱私資產(chǎn)可以和其他代幣、拍賣、投票、質(zhì)押等合約進(jìn)行交互,給予隱私資產(chǎn)更多的應(yīng)用。
這些解決方案的實(shí)現(xiàn),得益于以太坊上BN-128橢圓曲線相關(guān)的預(yù)編譯合約功能。BN-128是一條pairing-friendly的橢圓曲線,之前主要用在zk-SNARK中。以太坊通過(guò)EIP-196 [15]、EIP-197 [16] ,增加了3個(gè)預(yù)編譯合約,分別實(shí)現(xiàn)了BN-128上的加法(ECADD)、標(biāo)量乘法(ECMUL)和pairing check。這些預(yù)編譯合約很大程度地減少了通過(guò)智能合約進(jìn)行橢圓曲線計(jì)算的gas消耗,讓基于合約的隱私解決方案得以實(shí)現(xiàn)。
然而,以太坊對(duì)每個(gè)block的gas有一個(gè)總量限制,其值大概在8M,可以從etherscan [17]查看具體取值。對(duì)比上文中的表格可以發(fā)現(xiàn),這些解決方案的gas都十分接近block的gas限制,所以難以運(yùn)行在以太坊上。EIP-1108 [18]提議降低bn128預(yù)編譯合約的gas(如下圖所示,Current Gas Cost為當(dāng)前預(yù)編譯合約的gas開銷,Updated Gas Cost為EIP-1108提議的預(yù)編譯合約gas開銷),EIP-1109 [19]則提議降低所有預(yù)編譯合約的gas。但這些EIP都需要通過(guò)硬分叉才能應(yīng)用在以太坊中,因此需要很長(zhǎng)一段時(shí)間才能實(shí)現(xiàn)。
Qtum和隱私資產(chǎn)
Qtum上的智能合約基于了以太坊的EVM。在即將進(jìn)行的硬分叉 [20] 中,Qtum將對(duì)虛擬機(jī)進(jìn)行升級(jí)以支持BN-128橢圓曲線相關(guān)的預(yù)編譯合約。因此上述基于智能合約的隱私資產(chǎn)解決方案都能直接應(yīng)用于Qtum。
另外,Qtum對(duì)于每個(gè)block的gas限制是40M,遠(yuǎn)高于以太坊。這一限制還可通過(guò)Qtum的DGP(Decentralized Governance Protocol)進(jìn)一步在線修改。因此隱私資產(chǎn)在Qtum上運(yùn)行時(shí)不需要再考慮gas過(guò)高的問(wèn)題。
最后,如QIP-19 [21] 所計(jì)劃,后續(xù)可以通過(guò)增加預(yù)編譯合約,讓更多的隱私資產(chǎn)方案能夠運(yùn)行在Qtum上。比如,可以增加secp256k1橢圓曲線的預(yù)編譯合約,從而優(yōu)化Zether、Anonymous Zether和PGC這3個(gè)方案的性能。又比如,可以增加Schnorr簽名、Bulletproofs的預(yù)編譯合約,從而讓MimbleWimble以合約的方式運(yùn)行在Qtum上。
未來(lái)
后續(xù),我們將繼續(xù)深入探索如何將隱私資產(chǎn)應(yīng)用到Qtum上。研究?jī)?nèi)容包括預(yù)編譯合約、Range Proof、MimbleWimble等。
評(píng)論