區(qū)塊鏈上的隱私

2 評(píng)論 7670 瀏覽 34 收藏 27 分鐘

區(qū)塊鏈中的隱私保護(hù)協(xié)議有兩大挑戰(zhàn):其中一個(gè)挑戰(zhàn)是統(tǒng)計(jì)學(xué)上的,第二個(gè)挑戰(zhàn)是開(kāi)發(fā)者體驗(yàn)挑戰(zhàn)。

很多人對(duì)比特幣及區(qū)塊鏈有誤解,認(rèn)為比特幣解決了隱私的問(wèn)題,但其實(shí)不然,比特幣是公開(kāi)透明的賬本。V神清晰地梳理了目前區(qū)塊鏈隱私的幾種解決方案,未來(lái)還有很遠(yuǎn)的路要走。

很多人都認(rèn)同區(qū)塊鏈?zhǔn)且环N強(qiáng)大的技術(shù)。它們?cè)试S大量的交互被編碼和實(shí)施,提高了可靠性,消除了與中心實(shí)體管理的進(jìn)程有關(guān)的商業(yè)和政治風(fēng)險(xiǎn),并減少了對(duì)信任的需要。

它們創(chuàng)建了一個(gè)平臺(tái),來(lái)自不同公司甚至不同類(lèi)型的應(yīng)用程序都可以一起運(yùn)行,允許極其高效且無(wú)縫的交互,并留下審計(jì)跟蹤,任何人都可以檢查,以確保所有的處理都是正確的。

然而,當(dāng)我和其他公司談?wù)撊绾卧趨^(qū)塊鏈上構(gòu)建應(yīng)用程序時(shí),總是會(huì)出現(xiàn)兩個(gè)主要問(wèn)題:可擴(kuò)展性和隱私。

可擴(kuò)展性是一個(gè)嚴(yán)重的問(wèn)題。當(dāng)前的區(qū)塊鏈每秒處理3-20個(gè)交易,與運(yùn)行主流支付系統(tǒng)或金融市場(chǎng)所需的處理能力相差幾個(gè)數(shù)量級(jí),更不用說(shuō)去中心化論壇或物聯(lián)網(wǎng)的全球小額支付平臺(tái)了。幸運(yùn)的是,是有解決方法的,正在積極地致力于實(shí)施路線(xiàn)圖計(jì)劃。

區(qū)塊鏈的另一個(gè)主要問(wèn)題是隱私。盡管區(qū)塊鏈的其他優(yōu)勢(shì)是誘人的,但無(wú)論是公司還是個(gè)人,都不熱衷于將所有信息發(fā)布到公共數(shù)據(jù)庫(kù)中,這些數(shù)據(jù)庫(kù)可以不受限制地被自己的政府、外國(guó)政府、家人、同事和商業(yè)競(jìng)爭(zhēng)對(duì)手隨意閱讀。

與擴(kuò)展性不同的是,隱私的解決方案在某些情況下更容易實(shí)現(xiàn)(盡管在其他情況下要難得多),其中許多方案與當(dāng)前存在的區(qū)塊鏈兼容,但它們也不太令人滿(mǎn)意。

要?jiǎng)?chuàng)建一種“圣杯”技術(shù)要難得多,它允許用戶(hù)在區(qū)塊鏈上完成他們現(xiàn)在可以做的一切,但同時(shí)也擁有隱私;相反,開(kāi)發(fā)人員在許多情況下將不得不面對(duì)部分解決方案、啟發(fā)法和機(jī)制,這些解決方案和機(jī)制旨在將隱私帶到特定的應(yīng)用程序中。

圣杯

首先,讓我們從“圣杯”技術(shù)開(kāi)始,因?yàn)樗鼈儗?shí)際上提供了承諾,可以將任意應(yīng)用程序轉(zhuǎn)換為完全保護(hù)隱私的應(yīng)用程序,允許用戶(hù)從區(qū)塊鏈的安全性中受益,使用分布式的網(wǎng)絡(luò)處理事務(wù),對(duì)數(shù)據(jù)進(jìn)行“加密”,雖然所有的事情都是公開(kāi)可見(jiàn),但信息的底層“含義”完全被混淆。

當(dāng)然,把握方向的最強(qiáng)大的技術(shù)是密碼安全混淆。一般來(lái)說(shuō),混淆是將任何程序轉(zhuǎn)化為程序等效的“黑匣子”的一種方式,即程序仍然具有相同的“內(nèi)部邏輯”,并且仍然為相同的輸入提供相同的輸出,但不可能確定這個(gè)程序內(nèi)部運(yùn)作的細(xì)節(jié)。

(把它想成是“加密”盒子內(nèi)部的電線(xiàn),使加密可以自行抵消,對(duì)輸出最終沒(méi)有影響,但是它確實(shí)會(huì)使你完全不可能看到里面發(fā)生了什么。)

不幸的是,絕對(duì)完美的黑匣混淆在數(shù)學(xué)上已知是不可能; 事實(shí)證明,總是有一些蛛絲馬跡可以從程序中提取出來(lái),通過(guò)提供輸出和特定的輸入集即可實(shí)現(xiàn)。

然而,我們可以滿(mǎn)足的是一個(gè)較低的標(biāo)準(zhǔn):不可區(qū)別性的混淆。從本質(zhì)上說(shuō),給定使用該算法混淆的兩個(gè)等效程序(例如。X=(a+b)*c和X=(a*c)+(b*c)),無(wú)法確定哪個(gè)輸出來(lái)自于哪個(gè)原始源。

要了解這對(duì)于我們的應(yīng)用程序來(lái)說(shuō)是仍然足夠強(qiáng)大的,請(qǐng)考慮以下兩個(gè)程序:

  1. y=0
  2. y=sign (privkey,0) -sign(privkey,0)

一個(gè)只返回零,另一個(gè)使用內(nèi)部包含的私鑰對(duì)消息進(jìn)行加密簽名,下一次執(zhí)行相同的操作,從彼此減去(明顯相同的)結(jié)果,并返回結(jié)果,該結(jié)果保證為零。

即使一個(gè)程序只返回零,而另一個(gè)程序返回包含并使用加密私鑰,如果不可區(qū)分性可以滿(mǎn)足,那么,兩個(gè)混淆的程序不可能區(qū)分開(kāi)。

因此擁有混淆程序的人肯定無(wú)法提取私鑰,否則,這將是區(qū)分這兩個(gè)程序的一種方法。這是一個(gè)相當(dāng)強(qiáng)大的混淆–大約兩年來(lái),我們已經(jīng)知道如何做到這一點(diǎn)!

那么,我們?cè)撊绾卧趨^(qū)塊鏈上使用這一點(diǎn)呢?這里有一個(gè)簡(jiǎn)單的數(shù)字代幣方法。我們創(chuàng)建一個(gè)包含私鑰的混淆智能合約,并接受使用相應(yīng)公鑰加密的指令。

合約將帳戶(hù)余額加密存儲(chǔ),如果合約想讀取存儲(chǔ),則在內(nèi)部對(duì)其進(jìn)行解密,如果合約想寫(xiě)入存儲(chǔ),則在寫(xiě)入之前對(duì)所需結(jié)果進(jìn)行加密。

如果有人想讀取帳戶(hù)的余額,那么他們會(huì)將請(qǐng)求作為交易進(jìn)行編碼,并在自己的機(jī)器上模擬它;混淆處理的智能合約代碼將檢查交易的簽名,以查看該用戶(hù)是否有權(quán)讀取余額,如果他們有權(quán)讀取余額,則返回解密的余額;否則,代碼將返回錯(cuò)誤,用戶(hù)將無(wú)法提取信息。

然而,與其他幾種此類(lèi)技術(shù)一樣,也有一個(gè)問(wèn)題:這種混淆的機(jī)制效率極低。十億美元的開(kāi)銷(xiāo)是正常的,甚至還是不夠的;近期論文估計(jì)“在同一個(gè)cpu上執(zhí)行[2位乘法]電路需要1.3 * 108多年。

此外,如要防止讀寫(xiě)存儲(chǔ)成為數(shù)據(jù)泄漏向量,還必須設(shè)置合約,以便讀寫(xiě)操作總是修改合同整個(gè)狀態(tài)的很大一部分,這也是很大的一個(gè)開(kāi)銷(xiāo)。

最重要的是,當(dāng)您在區(qū)塊鏈上運(yùn)行代碼時(shí),要有數(shù)百個(gè)節(jié)點(diǎn)運(yùn)行代碼,這可以很快就看到技術(shù)是如何運(yùn)行的。不幸的是,這種技術(shù)不會(huì)很快改變?nèi)魏问虑椤?/p>

退一步說(shuō)

然而,雖然對(duì)安全模型有重要的妥協(xié),但是有兩個(gè)分支技術(shù)可以讓你幾乎可以實(shí)現(xiàn)混淆效果。第一個(gè)是安全多方計(jì)算。安全多方計(jì)算允許程序(及其狀態(tài))在N個(gè)當(dāng)事方之間被分割,這樣你就需要其中的M(例如,N=9,M=5)進(jìn)行協(xié)作,以便完成計(jì)算,或者顯示程序或狀態(tài)中的任何內(nèi)部數(shù)據(jù)。

因此,如果你可以相信大多數(shù)參與者是誠(chéng)實(shí)的,那么該方案就像混淆一樣好。如果你不能,那么它就毫無(wú)價(jià)值了。

安全多方計(jì)算背后的數(shù)學(xué)是復(fù)雜的,但比混淆要簡(jiǎn)單得多。??SMPC?也比混淆更有效率,這一點(diǎn)你可以用它進(jìn)行實(shí)際計(jì)算,但效率依然很低。加法運(yùn)算可以處理得相當(dāng)快,但是每當(dāng)SMPC實(shí)例執(zhí)行一些非常小的固定數(shù)目的乘法運(yùn)算時(shí),它需要執(zhí)行一個(gè)“降階”步驟,涉及從每個(gè)節(jié)點(diǎn)發(fā)送消息到網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)。

最近的工作將通信開(kāi)銷(xiāo)從二次降低到線(xiàn)性,但即使是每一次乘法操作也會(huì)帶來(lái)某種不可避免的網(wǎng)絡(luò)延遲。

要求信任對(duì)參與者也是一項(xiàng)艱巨的任務(wù);請(qǐng)注意,與許多其他應(yīng)用程序一樣,參與者有能力保存數(shù)據(jù),然后未來(lái)任何時(shí)間點(diǎn)都可以串通。此外,不可能知道他們已經(jīng)做了這一點(diǎn),因此不可能激勵(lì)參與者維護(hù)系統(tǒng)的隱私。

因此,與公共鏈相比,安全的多方計(jì)算可能更適合于私有區(qū)塊鏈,在這種情況下,激勵(lì)機(jī)制可能來(lái)自協(xié)議之外。

另一種具有很強(qiáng)特性的技術(shù)是零知識(shí)證明,特別是SNARKs的最新發(fā)展。零知識(shí)證明允許用戶(hù)構(gòu)建一個(gè)數(shù)學(xué)證明,當(dāng)給定程序在用戶(hù)已知的一些(可能是隱藏的)輸入上執(zhí)行時(shí),具有特定的(公開(kāi)的)輸出,同時(shí)還不透露任何其他信息。

有很多專(zhuān)門(mén)的零知識(shí)證明的類(lèi)型是相當(dāng)容易實(shí)現(xiàn)的;例如,您可以將數(shù)字簽名看作一種零知識(shí)證明。你知道私鑰的值,當(dāng)使用標(biāo)準(zhǔn)算法處理時(shí),私鑰可以轉(zhuǎn)換為特定的公鑰。ZK-SNARKs允許你為任何功能作出這樣的證明。

首先,讓我們通過(guò)一些案例來(lái)說(shuō)明。該技術(shù)的一個(gè)自然用例是身份系統(tǒng)。例如,假設(shè)你想向系統(tǒng)證明你是(i)某個(gè)國(guó)家的公民,并且(ii)超過(guò)19歲。

假設(shè)你的政府在技術(shù)上是進(jìn)步的,并發(fā)行加密簽名的數(shù)字護(hù)照,其中包括個(gè)人的姓名和出生日期以及私人和公共密鑰。你需要構(gòu)建一個(gè)功能,將護(hù)照中的私鑰簽名的數(shù)字護(hù)照和簽名作為輸入,如果(i)出生日期在1996年以前,(ii)護(hù)照與政府簽署公鑰,(iii)簽名是正確的,否則輸出0。

然后,您會(huì)做出一個(gè)零知識(shí)證明,表明您有一個(gè)輸入,當(dāng)通過(guò)此函數(shù)傳遞時(shí),返回1,并用另一個(gè)你希望用于未來(lái)與此服務(wù)交互的私鑰簽名證明。該服務(wù)將驗(yàn)證證明,如果證明是正確的,它將接受你的私鑰簽名的消息為有效。

你也可以用同樣的方案來(lái)驗(yàn)證更復(fù)雜的說(shuō)法,比如“我是這個(gè)國(guó)家的公民,我的身份證號(hào)碼不在這套已經(jīng)被使用過(guò)的身份證號(hào)碼中”,或者“我在從他們那里購(gòu)買(mǎi)了價(jià)值至少10000美元的產(chǎn)品后得到了一些商家的好評(píng)”,或者“我持有價(jià)值至少250000美元的資產(chǎn)”。

該技術(shù)的另一類(lèi)應(yīng)用是數(shù)字Token所有權(quán)。為了建立一個(gè)有效的數(shù)字Token系統(tǒng),你不需要嚴(yán)格地有可見(jiàn)的帳戶(hù)和余額;事實(shí)上,你所需要的只是解決“雙重支付”問(wèn)題的方法–如果你有100個(gè)單位的資產(chǎn),你應(yīng)該能夠花這100個(gè)單元,但不是兩次。

有了零知識(shí)證明,我們當(dāng)然可以做到這一點(diǎn);聲稱(chēng)你將為零知識(shí)證明的說(shuō)法就像是“我知道在這組賬戶(hù)中的一個(gè)賬戶(hù)背后的一個(gè)秘密號(hào)碼,而且它與任何已經(jīng)披露的秘密號(hào)碼都不匹配”。

此方案中的帳戶(hù)成為一次性使用:每次發(fā)送資產(chǎn)時(shí)都創(chuàng)建一個(gè)“帳戶(hù)”,并且發(fā)件人帳戶(hù)被完全消耗。

如果你不想完全消耗一個(gè)給定的帳戶(hù),那么你必須創(chuàng)建兩個(gè)帳戶(hù),一個(gè)由接收人控制,另一個(gè)由發(fā)送人自己控制其余的“更改”。這實(shí)際上是ZCash的方案。

對(duì)于涉及雙方的智能合約(例如,想一想像金融衍生合同在雙方之間談判),零知識(shí)證明的應(yīng)用相當(dāng)容易理解。當(dāng)?shù)谝淮螀f(xié)商合同時(shí),不是創(chuàng)建一個(gè)包含實(shí)際公式的智能合約,該公式將最終釋放資金 (例如,在二進(jìn)制選項(xiàng)中,公式是“如果某個(gè)數(shù)據(jù)源釋放的索引I大于X,將所有發(fā)送到A,否則將所有發(fā)送到B”),而是創(chuàng)建一個(gè)包含公式的哈希。

當(dāng)合約終止時(shí),任何一方都可以自己計(jì)算出A和B應(yīng)該得到的金額,并將結(jié)果和零知識(shí)證明一起提供,也就是有正確哈希的公式提供該結(jié)果。區(qū)塊鏈可以查出A和B各投入了多少,以及它們得到了多少,但不知道它們?yōu)槭裁赐度牖虻玫竭@個(gè)數(shù)額。

該該模型可以應(yīng)用到N方智能合約,Hawk項(xiàng)目正試圖做到這一點(diǎn)。

從另一端開(kāi)始:低技術(shù)方法

當(dāng)試圖在區(qū)塊鏈上增加隱私時(shí),另一條途徑是從非常低技術(shù)的方法開(kāi)始,除了簡(jiǎn)單的哈希、加密和公鑰加密之外,不使用密碼。這是比特幣從2009開(kāi)始的道路;盡管它在實(shí)踐中提供的隱私水平很難量化和限制,但它仍然明顯地提供了一些價(jià)值。

比特幣為增加隱私,最簡(jiǎn)單的一步是,它使用一次性賬戶(hù)(類(lèi)似zcash)來(lái)存儲(chǔ)資金。就像zcash一樣,每一筆交易都必須全部清空一個(gè)或多個(gè)帳戶(hù),并創(chuàng)建一個(gè)或多個(gè)新帳戶(hù),建議用戶(hù)為他們打算接收資金的每個(gè)新帳戶(hù)生成一個(gè)新的私鑰(盡管有可能擁有具有相同私鑰的多個(gè)帳戶(hù))。

這帶來(lái)的主要好處是,用戶(hù)的資金在默認(rèn)情況下并不是相互關(guān)聯(lián)的:如果你從源頭A收到50個(gè)coin,從來(lái)源頭B收到50個(gè)coin,其他用戶(hù)就無(wú)法知道這些資金屬于同一個(gè)人。

此外,如果你將13個(gè)coin發(fā)送到其他人的帳戶(hù)C上,從而創(chuàng)建了第四個(gè)帳戶(hù)D,你將其中一個(gè)帳戶(hù)中的剩余37個(gè)coin作為“余錢(qián)”發(fā)送,其他用戶(hù)甚至無(wú)法分辨交易的兩個(gè)輸出中的哪個(gè)是“支付”,哪個(gè)是“余錢(qián)”。

但是,有一個(gè)問(wèn)題。 如果在將來(lái)的任何時(shí)刻,你同時(shí)從兩個(gè)賬戶(hù)進(jìn)行交易,那么你將不可撤銷(xiāo)地“鏈接”這些賬戶(hù),從而讓大家很容易發(fā)現(xiàn)它們屬于同一個(gè)用戶(hù)。

而且,這些聯(lián)系是傳遞性的:如果在任何時(shí)候,你將A和B連接在一起,然后在任何其他時(shí)間把A和C連接在一起,那么你已經(jīng)創(chuàng)造了大量的證據(jù) ,統(tǒng)計(jì)分析可以將你的所有資產(chǎn)聯(lián)系起來(lái)。

比特幣開(kāi)發(fā)人員Mike Hearn提出了一種緩解策略,該策略降低了發(fā)生這種情況的可能性,稱(chēng)為“合并避免”:本質(zhì)上,最大限度地減少通過(guò)在同一時(shí)間花費(fèi)賬戶(hù)鏈接在一起的次數(shù)。

這絕對(duì)有幫助,但即使如此,比特幣系統(tǒng)內(nèi)部的隱私已被證明是高度多孔的和啟發(fā)式的,距離高質(zhì)量的隱私保證有點(diǎn)遠(yuǎn)。

一種更先進(jìn)的技術(shù)叫做CoinJoin。 基本上,CoinJoin協(xié)議的工作原理如下:

  1. N方聚集在一些匿名頻道上,例如,Tor。它們各自提供目的地址D [1] … D [N]。
  2. 其中一方創(chuàng)建一筆交易,向每個(gè)目的地地址發(fā)送1個(gè)coin。
  3. N方注銷(xiāo),然后分別登錄到該頻道,并且每人向該支出賬戶(hù)提供1coin。
  4. 如果N 個(gè)coin被存入賬戶(hù),它們被分配到目的地址,否則退還。

如果所有參與者都誠(chéng)實(shí)地提供1個(gè)coin,那么每個(gè)人都會(huì)投入1個(gè)coin,并獲得1個(gè)coin,但沒(méi)有人會(huì)知道哪個(gè)輸入映射到哪個(gè)輸出。如果至少有一名參與者沒(méi)有放入1個(gè)coin,則該過(guò)程將失敗,1個(gè)coin將退還,所有參與者可以再次嘗試。

Amir Taaki和Pablo Martin為比特幣以及Gavin Wood和Vlad Gluhovsky為Ethereum實(shí)施了類(lèi)似的算法。

到目前為止,我們只討論了代幣匿名化問(wèn)題。關(guān)于兩方智能合約呢?在這里,我們使用與Hawk相同的機(jī)制,但我們用更簡(jiǎn)單的密碼經(jīng)濟(jì)學(xué)代替密碼學(xué)–即“可審計(jì)計(jì)算”技巧。

參與者將資金發(fā)送到一個(gè)存儲(chǔ)代碼哈希的合約中。當(dāng)涉及發(fā)送資金時(shí),任何一方都可以提交結(jié)果。另一方可以發(fā)送交易來(lái)同意結(jié)果,允許資金被發(fā)送出去,或者可以將實(shí)際代碼發(fā)布到合同中,屆時(shí)代碼將正確運(yùn)行和分配。

安全保證金可以用來(lái)激勵(lì)各方誠(chéng)實(shí)參與。因此,系統(tǒng)是私人的,只有在有爭(zhēng)議時(shí),才能將任何信息泄露到外部世界。

這種技術(shù)抽象化后被稱(chēng)為狀態(tài)通道,并且在保護(hù)隱私方面也有可擴(kuò)展性。

環(huán)簽名

一種在技術(shù)上復(fù)雜度適中,但對(duì)于代幣匿名化和身份識(shí)別應(yīng)用而言非常有前途的是環(huán)簽名。環(huán)簽名本質(zhì)上是一個(gè)簽名,證明簽名者具有與特定公鑰之一相對(duì)應(yīng)的私鑰,但不透露哪一個(gè)。

關(guān)于這種數(shù)學(xué)運(yùn)算的簡(jiǎn)單解釋是,環(huán)簽名算法包括一個(gè)數(shù)學(xué)函數(shù),該函數(shù)可以通過(guò)公鑰正常計(jì)算,但在知道私鑰的情況下,你可以將種子添加到輸入以生成輸出,輸出各種隨心想要的值。

簽名本身包含一個(gè)值列表,其中每個(gè)值都被設(shè)置為應(yīng)用于前一個(gè)值的函數(shù)(加上一些種子);生成一個(gè)有效的簽名需要使用私鑰的知識(shí)來(lái)“閉環(huán)”,迫使你計(jì)算的最后一個(gè)值等于第一個(gè)值。

如果以這種方式生成有效的“環(huán)”,任何人都可以驗(yàn)證它確實(shí)是一個(gè)“環(huán)”,因此每個(gè)值都等于根據(jù)先前值加上給定種子計(jì)算的函數(shù),但無(wú)法判斷哪個(gè)環(huán)中的“鏈接”使用了一個(gè)私鑰。

還有一個(gè)是環(huán)簽名的升級(jí)版本,被稱(chēng)為可鏈接的環(huán)簽名。它增加了一個(gè)額外的屬性:如果您使用相同的私鑰簽名兩次,則可以檢測(cè)到這一事實(shí) – 但不會(huì)顯示其他信息。

在代幣匿名的情況下,應(yīng)用程序非常簡(jiǎn)單:當(dāng)用戶(hù)想要花錢(qián)時(shí),不是讓他們提供常規(guī)簽名來(lái)直接證明其公鑰的所有權(quán),我們將公鑰合并為一組,然后用戶(hù)只需簡(jiǎn)單地證明該組的成員身份。

由于可鏈接性屬性,在組中具有一個(gè)公鑰的用戶(hù)只能從該組中花費(fèi)一次; 相沖突的簽名會(huì)被拒絕。

環(huán)簽名也可以用于投票應(yīng)用程序:我們使用它們來(lái)驗(yàn)證投票,而不是使用環(huán)簽名來(lái)驗(yàn)證一組代幣的支出。

環(huán)簽名也可以用于身份識(shí)別程序:如果你想證明你屬于一組授權(quán)用戶(hù),而不透露哪一位,則環(huán)形簽名非常適合這種情況。與簡(jiǎn)單簽名相比,環(huán)簽名在數(shù)學(xué)上涉及更多,但它們實(shí)現(xiàn)起來(lái)相當(dāng)實(shí)用。

秘密共享和加密

有時(shí),區(qū)塊鏈應(yīng)用并不只是解決數(shù)字資產(chǎn)的傳輸,或者只是記錄身份信息或處理智能合約,而是將其用于更多以數(shù)據(jù)為中心的應(yīng)用:時(shí)間戳、高價(jià)值數(shù)據(jù)存儲(chǔ)、存在證明(或如證書(shū)撤銷(xiāo)的情況下,證明不存在證據(jù)等)。一種常見(jiàn)的副作用是使用區(qū)塊鏈構(gòu)建“用戶(hù)控制自己的數(shù)據(jù)”的系統(tǒng)的想法。

在這些情況下,有必要再次注意到區(qū)塊鏈不能解決隱私問(wèn)題,它只是真實(shí)性的解決方案。因此,將醫(yī)療記錄以明文形式放入?yún)^(qū)塊鏈中是一個(gè)非常糟糕的想法。

但是,它們可以與其他提供隱私的技術(shù)結(jié)合起來(lái)使用,以便為許多行業(yè)創(chuàng)建完整的解決方案,以實(shí)現(xiàn)預(yù)期的目標(biāo)。區(qū)塊鏈?zhǔn)枪?yīng)商中立的平臺(tái),可以存儲(chǔ)一些數(shù)據(jù)以提供真實(shí)性保證。

那么隱私保護(hù)技術(shù)是什么?對(duì)于簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)(例如醫(yī)療記錄),我們就可以使用最簡(jiǎn)單,最古老的一種:加密!在區(qū)塊鏈上哈希后的文檔可以先被加密,所以即使數(shù)據(jù)存儲(chǔ)在像IPFS上,只有擁有私鑰的用戶(hù)才能查看文檔。

如果用戶(hù)想授予其他人以解密形式查看某些特定記錄的權(quán)利,但不是全部,則可以使用類(lèi)似確定性錢(qián)包的東西來(lái)為每個(gè)文檔派生不同的密鑰。

另一個(gè)有用的技術(shù)是秘密共享,允許用戶(hù)以給定的N個(gè)用戶(hù)(例如,M =5,N = 9)的M個(gè)可以協(xié)作來(lái)解密數(shù)據(jù)。

隱私的未來(lái)

區(qū)塊鏈中的隱私保護(hù)協(xié)議有兩大挑戰(zhàn):

其中一個(gè)挑戰(zhàn)是統(tǒng)計(jì)學(xué)上的:為了使任何隱私保留方案在計(jì)算上實(shí)用,該方案只能在每次交易時(shí)改變區(qū)塊鏈狀態(tài)的一小部分。但是,即使變更的內(nèi)容是隱私,也不可避免地存在一些元數(shù)據(jù)。

因此,統(tǒng)計(jì)分析總是能夠分析出之間的聯(lián)系;至少,他們將能夠捕捉交易何時(shí)發(fā)生的模式,并且在很多情況下,他們將能夠縮小身份并找出誰(shuí)與誰(shuí)交互。

第二個(gè)挑戰(zhàn)是開(kāi)發(fā)者體驗(yàn)挑戰(zhàn)。圖靈完備的區(qū)塊鏈對(duì)開(kāi)發(fā)人員來(lái)說(shuō)效果很好,對(duì)去中心化的底層機(jī)制完全不了解的開(kāi)發(fā)人員來(lái)說(shuō),它們非常友好:它們創(chuàng)建了一個(gè)分布式的“世界計(jì)算機(jī)”,它們看起來(lái)就像一臺(tái)中心化的計(jì)算機(jī)。

實(shí)際上,“看,開(kāi)發(fā)者們,你可以編寫(xiě)任何想編寫(xiě)的代碼,只不過(guò)是在這個(gè)底層上有一個(gè)新層,在上面開(kāi)發(fā)出讓各種去中心化應(yīng)用。 ”

當(dāng)然,抽象并不完美:交易費(fèi)用高,高延遲,gas和區(qū)塊重組對(duì)于程序員來(lái)說(shuō)是新事物,但是障礙并不是那么大。

就隱私而言,正如我們所看到的,沒(méi)有什么魔力子彈。盡管有針對(duì)特定用例的部分解決方案,并且通常這些部分解決方案提供了高度的靈活性,但它們提供的抽象與開(kāi)發(fā)人員習(xí)慣的抽象很不相同。

從“10行python腳本中刪除發(fā)送人余額中的Xcoin并將Xcoin添加到接收人的余額”改為“使用可鏈接的環(huán)簽名進(jìn)行高度匿名化數(shù)字代幣”,這并不是那么簡(jiǎn)單。

像Hawk這樣的項(xiàng)目走出非常值得歡迎的一步:它們提供了將任意N方協(xié)議轉(zhuǎn)換為零知識(shí)協(xié)議的承諾,只相信區(qū)塊鏈的真實(shí)性,以及一個(gè)隱私特定方:本質(zhì)上,結(jié)合中心化和去中心化兩種方式的最佳選擇。

我們能否進(jìn)一步發(fā)展,創(chuàng)建出一個(gè)無(wú)需信任任何一方的隱私協(xié)議?這仍只是一個(gè)積極的研究方向,我們只能等待,看看我們會(huì)走多遠(yuǎn)。

風(fēng)險(xiǎn)警示:藍(lán)狐所有文章都不構(gòu)成投資推薦,投資有風(fēng)險(xiǎn),建議對(duì)項(xiàng)目進(jìn)行深入考察,慎重做好自己的投資決策。

 

原文作者:Vitalik Buterin

原文地址:blog.ethereum.org

譯者:由藍(lán)狐筆記社群“Carlo”等人翻譯

本文由 @藍(lán)狐筆記社群“Carlo”等人 翻譯發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來(lái)自 Unsplash,基于 CC0 協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 你以為你這樣解釋我就看的懂了嗎?太小看我了

    來(lái)自浙江 回復(fù)