【译】Privacy on the Blockchain
區(qū)塊鏈?zhǔn)且环N強(qiáng)大的技術(shù),因?yàn)椴┛偷某R?guī)讀者已經(jīng)同意了。 它們?cè)试S以大大提高可靠性的方式編寫和執(zhí)行大量交互,從而消除與中央實(shí)體管理的流程相關(guān)的業(yè)務(wù)和政治風(fēng)險(xiǎn),并減少對(duì)信任的需求。 他們創(chuàng)建了一個(gè)平臺(tái),來(lái)自不同公司甚至不同類型的應(yīng)用程序可以在這個(gè)平臺(tái)上運(yùn)行,實(shí)現(xiàn)極其高效和無(wú)縫的交互,并留下任何人都可以檢查的審計(jì)跟蹤,以確保正確處理所有內(nèi)容。
但是,當(dāng)我和其他人與公司談?wù)撛趨^(qū)塊鏈上構(gòu)建應(yīng)用程序時(shí),總會(huì)出現(xiàn)兩個(gè)主要問題:可擴(kuò)展性和隱私。 可伸縮性是一個(gè)嚴(yán)重的問題; 目前的區(qū)塊鏈,每秒處理3-20個(gè)交易,與運(yùn)行主流支付系統(tǒng)或金融市場(chǎng)所需的處理能力數(shù)量相差無(wú)幾,遠(yuǎn)遠(yuǎn)低于分散式論壇或物聯(lián)網(wǎng)的全球微支付平臺(tái)。 幸運(yùn)的是, 有 解決方案 ,我們正在積極制定實(shí)現(xiàn)路線圖的路線圖。 區(qū)塊鏈的另一個(gè)主要問題是隱私。 像區(qū)塊鏈的其他優(yōu)點(diǎn)一樣誘人,公司或個(gè)人都不會(huì)特別熱衷于將所有信息發(fā)布到公共數(shù)據(jù)庫(kù)中,可以在不受任何政府,外國(guó)政府,家庭成員,同事和商業(yè)競(jìng)爭(zhēng)對(duì)手的任何限制的情況下任意閱讀。
與可擴(kuò)展性不同,隱私解決方案在某些情況下更容易實(shí)現(xiàn)(盡管在其他情況下要困難得多),其中許多與現(xiàn)有的區(qū)塊鏈兼容,但它們也不太令人滿意。 創(chuàng)建一種“圣杯”技術(shù)要困難得多,這種技術(shù)允許用戶在區(qū)塊鏈上完成他們現(xiàn)在可以做的所有事情,但保護(hù)隱私; 相反,在許多情況下,開發(fā)人員將被迫與部分解決方案,啟發(fā)式和機(jī)制相抗衡,旨在為特定類別的應(yīng)用程序帶來(lái)隱私。
圣杯
首先,讓我們從圣潔技術(shù)開始,因?yàn)樗鼈儗?shí)際上提供了將任意應(yīng)用程序轉(zhuǎn)換為完全保護(hù)隱私的應(yīng)用程序的承諾,允許用戶從區(qū)塊鏈的安全性中受益,使用分散的網(wǎng)絡(luò)來(lái)處理事務(wù),但以這樣的方式“加密”數(shù)據(jù),即使所有事情都在明顯的計(jì)算中,信息的潛在“含義” 也是完全混淆的 。
當(dāng)然,最有力的技術(shù)是加密安全混淆。 一般來(lái)說,混淆是一種將任何程序轉(zhuǎn)換為程序的“黑盒子”的方式,這樣程序仍然具有相同的“內(nèi)部邏輯”,并且仍為相同的輸入提供相同的輸出,但是無(wú)法確定有關(guān)該計(jì)劃如何運(yùn)作的任何其他細(xì)節(jié)。
可以把它想象成“加密”盒子內(nèi)部的電線,使加密自身取消并最終對(duì)輸出沒有影響,但確實(shí)會(huì)讓人無(wú)法看到里面發(fā)生的事情。
不幸的是,絕對(duì)完美的黑盒混淆在數(shù)學(xué)上已知是不可能的 ; 事實(shí)證明,除了它在特定輸入集上給出的輸出之外,至少總有一些東西可以從程序中提取出來(lái)。 然而,我們可以滿足一個(gè)稱為不可區(qū)分混淆的較弱標(biāo)準(zhǔn):基本上,給定兩個(gè)使用該算法進(jìn)行混淆的等效程序(例如, x = (a + b) * c和x = (a * c) + (b * c) ),無(wú)法確定兩個(gè)輸出中的哪一個(gè)來(lái)自哪個(gè)原始來(lái)源。 要了解它對(duì)于我們的應(yīng)用程序如何仍然足夠強(qiáng)大,請(qǐng)考慮以下兩個(gè)程序:
一個(gè)只返回零,另一個(gè)使用內(nèi)部包含的私鑰對(duì)消息進(jìn)行加密簽名,再次執(zhí)行相同的操作,相互減去(顯然相同的)結(jié)果并返回結(jié)果,保證為零。 即使一個(gè)程序只返回零,另一個(gè)程序包含并使用加密私鑰 ,如果滿足不可分辨性,那么我們就知道兩個(gè)混淆程序無(wú)法相互區(qū)分,因此擁有混淆程序的人肯定沒有提取私鑰的方法 - 否則,這將是區(qū)分兩個(gè)程序的一種方式。 那是一個(gè)相當(dāng)強(qiáng)大的混淆 - 大約兩年我們已經(jīng)知道如何做到這一點(diǎn)!
那么,我們?nèi)绾卧趨^(qū)塊鏈中使用它呢? 這是數(shù)字令牌的一種簡(jiǎn)單方法。 我們創(chuàng)建一個(gè)混淆的智能合約,其中包含一個(gè)私鑰,并接受使用相應(yīng)公鑰加密的指令。 合同將存儲(chǔ)中的帳戶余額加密存儲(chǔ),如果合同想要讀取存儲(chǔ),則在內(nèi)部對(duì)其進(jìn)行解密,如果合同要寫入存儲(chǔ),則會(huì)在寫入之前加密所需的結(jié)果。 如果有人想要讀取他們帳戶的余額,那么他們會(huì)將該請(qǐng)求編碼為交易,并在他們自己的機(jī)器上進(jìn)行模擬; 混淆的智能合約代碼將檢查交易上的簽名,以查看該用戶是否有權(quán)閱讀余額,如果他們有權(quán)閱讀余額,則將返回解密余額; 否則代碼將返回錯(cuò)誤,并且用戶無(wú)法提取信息。
然而,與這種類型的其他幾種技術(shù)一樣,存在一個(gè)問題:進(jìn)行這種混淆的機(jī)制極其低效。 十億因素開銷是常態(tài),通常甚至非常樂觀; 最近的一篇論文估計(jì)“在同一個(gè)CPU上執(zhí)行[2位乘法]電路需要1.3 * 10 8年”。 此外,如果要防止對(duì)存儲(chǔ)的讀取和寫入成為數(shù)據(jù)泄漏向量,則還必須設(shè)置合同,以便讀取和寫入操作始終修改合同的整個(gè)狀態(tài)的大部分 - 另一個(gè)開銷來(lái)源。 最重要的是,你有數(shù)百個(gè)節(jié)點(diǎn)在區(qū)塊鏈上運(yùn)行代碼的開銷,不幸的是,很快就能看到這種技術(shù)如何不會(huì)隨時(shí)改變。
退一步
但是,有兩個(gè)技術(shù)分支可以使您幾乎達(dá)到混淆,盡管對(duì)安全模型有重要的妥協(xié)。 首先是安全的多方計(jì)算。 安全的多方計(jì)算允許程序(及其狀態(tài))在N方之間分配,使得您需要M個(gè)(例如,N = 9,M = 5)進(jìn)行協(xié)作以完成計(jì)算或透露程序或州內(nèi)的任何內(nèi)部數(shù)據(jù)。 因此,如果您可以信任大多數(shù)參與者是誠(chéng)實(shí)的,那么該方案就像混淆一樣好。 如果你做不到,那就沒用了。
安全的多方計(jì)算背后的數(shù)學(xué)是復(fù)雜的,但比混淆簡(jiǎn)單得多; 如果您對(duì)技術(shù)細(xì)節(jié)感興趣,那么您可以在這里內(nèi)容(以及Enigma的文章,這是一個(gè)尋求實(shí)際實(shí)現(xiàn)秘密共享DAO概念的項(xiàng)目, 在這里 )。 SMPC也比混淆更有效,你可以用它進(jìn)行實(shí)際計(jì)算,但即使效率低下也非常大。 可以相當(dāng)快速地處理加法運(yùn)算,但每次SMPC實(shí)例執(zhí)行一些非常小的固定數(shù)量的乘法運(yùn)算時(shí),它需要執(zhí)行“降低程度”步驟,該步驟涉及從每個(gè)節(jié)點(diǎn)向網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)發(fā)送消息。 最近的工作將通信開銷從二次減少到線性,但即使每次乘法運(yùn)算都會(huì)帶來(lái)一定的不可避免的網(wǎng)絡(luò)延遲。
對(duì)參與者的信任要求也是一個(gè)繁重的要求; 請(qǐng)注意,與許多其他應(yīng)用程序的情況一樣,參與者可以保存數(shù)據(jù),然后串通以發(fā)現(xiàn)歷史中的任何未來(lái)點(diǎn)。 此外,不可能說他們已經(jīng)這樣做了,因此不可能激勵(lì)參與者維護(hù)系統(tǒng)的隱私; 出于這個(gè)原因,安全的多方計(jì)算可以說更適合私有區(qū)塊鏈,其中激勵(lì)可以來(lái)自協(xié)議之外,而不是公共鏈。
另一種具有非常強(qiáng)大屬性的技術(shù)是零知識(shí)證明,特別是“ 簡(jiǎn)潔的知識(shí)論證 ”(SNARKs)的最新發(fā)展。 零知識(shí)證明允許用戶構(gòu)造數(shù)學(xué)證明,當(dāng)給定程序在用戶已知的某些(可能是隱藏的)輸入上執(zhí)行時(shí),具有特定(公知)輸出, 而不泄露任何其他信息 。 有許多特殊類型的零知識(shí)證明很容易實(shí)現(xiàn); 例如,您可以將數(shù)字簽名視為一種零知識(shí)證明,表明您知道私鑰的值,當(dāng)使用標(biāo)準(zhǔn)算法處理時(shí),私鑰可以轉(zhuǎn)換為特定的公鑰。 另一方面,ZK-SNARKs允許您為任何功能做出這樣的證明。
首先,我們來(lái)看一些具體的例子。 該技術(shù)的一個(gè)自然用例是身份系統(tǒng)。 例如,假設(shè)您想向系統(tǒng)證明您是(i)某個(gè)國(guó)家的公民,并且(ii)超過19歲。 假設(shè)您的政府在技術(shù)上是進(jìn)步的,并簽發(fā)加密簽名的數(shù)字護(hù)照,其中包括一個(gè)人的姓名和出生日期以及私人和公鑰。 您將構(gòu)建一個(gè)功能,該功能將護(hù)照上的私人密碼簽名的數(shù)字護(hù)照和簽名作為輸入,如果(i)出生日期是1996年之前,則輸出1,(ii)護(hù)照是與政府簽訂的公鑰,以及(iii)簽名是正確的,否則輸出0。 然后,您將創(chuàng)建一個(gè)零知識(shí)證明,表明您有一個(gè)輸入,當(dāng)通過此函數(shù)時(shí),返回1,并使用您希望用于將來(lái)與此服務(wù)交互的另一個(gè)私鑰對(duì)證明進(jìn)行簽名。 該服務(wù)將驗(yàn)證證明,如果證明是正確的,它將接受使用您的私鑰簽名的消息作為有效。
您也可以使用相同的方案來(lái)驗(yàn)證更復(fù)雜的聲明,例如“我是這個(gè)國(guó)家的公民,我的身份證號(hào)碼不在這套已經(jīng)使用過的身份證號(hào)碼”中,或者“我收到了來(lái)自一些商人在從他們那里購(gòu)買至少價(jià)值10,000美元的產(chǎn)品后,“或者”我擁有價(jià)值至少25萬(wàn)美元的資產(chǎn)“。
該技術(shù)的另一類用例是數(shù)字令牌所有權(quán)。 為了擁有一個(gè)功能正常的數(shù)字代幣系統(tǒng),您不一定需要擁有可見的帳戶和余額; 事實(shí)上,你所需要的只是一種解決“雙重支出”問題的方法 - 如果你擁有100個(gè)單位的資產(chǎn),你應(yīng)該能夠花費(fèi)這100個(gè)單位一次,而不是兩次。 憑借零知識(shí)證明,我們當(dāng)然可以這樣做; 您將無(wú)知識(shí)證明的聲明類似于“我知道已創(chuàng)建的這組帳戶中的一個(gè)帳戶背后的密碼,并且它與已經(jīng)顯示的任何密碼都不匹配” 。 此方案中的帳戶變?yōu)橐淮涡允褂?#xff1a;每次發(fā)送資產(chǎn)時(shí)都會(huì)創(chuàng)建“帳戶”,并且完全使用發(fā)件人帳戶。 如果您不想完全使用給定帳戶,則必須創(chuàng)建兩個(gè)帳戶,一個(gè)由收件人控制,另一個(gè)帳戶由發(fā)件人自己控制剩余的“更改”。 這基本上是Zcash使用的方案(更多關(guān)于它如何在這里工作 )。
對(duì)于雙方智能合約(例如,想到兩方之間協(xié)商的金融衍生合約),零知識(shí)證明的應(yīng)用相當(dāng)容易理解。 當(dāng)合同首次協(xié)商時(shí),而不是創(chuàng)建包含最終將釋放資金的實(shí)際公式的智能合約(例如,在二元期權(quán)中,公式將是“如果某些數(shù)據(jù)源發(fā)布的索引I大于X,將所有內(nèi)容發(fā)送到A,否則將所有內(nèi)容發(fā)送到B“),創(chuàng)建包含公式哈希值的合同。 當(dāng)合同要結(jié)束時(shí),任何一方都可以自己計(jì)算A和B應(yīng)該收到的金額,并提供結(jié)果和零知識(shí)證據(jù),證明具有正確散列的公式提供了該結(jié)果。 區(qū)塊鏈找出A和B各自放入多少,以及它們?nèi)〕龆嗌?#xff0c;但不知道為什么他們放入或取出該數(shù)量。
這個(gè)模型可以推廣到N方智能合約, Hawk項(xiàng)目正在努力做到這一點(diǎn)。
從另一端開始:低技術(shù)方法
在嘗試增加區(qū)塊鏈隱私時(shí)要采取的另一條途徑是從非常低技術(shù)的方法開始,除了簡(jiǎn)單的哈希,加密和公鑰加密之外不使用加密。 這是比特幣從2009年開始的路徑; 雖然它在實(shí)踐中提供的隱私水平很難量化和限制,但它仍然顯然提供了一些價(jià)值。
比特幣在某種程度上增加隱私的最簡(jiǎn)單步驟是使用類似于Zcash的一次性賬戶來(lái)存儲(chǔ)資金。 就像使用Zcash一樣,每個(gè)交易必須完全清空一個(gè)或多個(gè)帳戶,并創(chuàng)建一個(gè)或多個(gè)新帳戶,建議用戶為他們打算接收資金的每個(gè)新帳戶生成一個(gè)新的私鑰(盡管它是可能有多個(gè)具有相同私鑰的帳戶)。 這帶來(lái)的主要好處是用戶的資金默認(rèn)情況下沒有相互關(guān)聯(lián):如果您從源A收到50個(gè)硬幣,從源B收到50個(gè)硬幣,則其他用戶無(wú)法告知這些資金屬于同一個(gè)人。 此外,如果您將13個(gè)硬幣投入其他人的帳戶C,從而創(chuàng)建第四個(gè)帳戶D,其中您將其中一個(gè)帳戶中剩余的37個(gè)硬幣作為“更改”發(fā)送,其他用戶甚至無(wú)法分辨其中的兩個(gè)輸出中的哪一個(gè)交易是“付款”,也就是“變更”。
但是,有一個(gè)問題。 如果在將來(lái)的任何時(shí)候,您同時(shí)使用兩個(gè)帳戶進(jìn)行交易,那么您會(huì)不可逆轉(zhuǎn)地“鏈接”這些帳戶,這使得他們來(lái)自一個(gè)用戶顯而易見。 而且,更重要的是,這些聯(lián)系是可傳遞的:如果,在任何時(shí)候,你將A和B連接在一起,然后在任何其他點(diǎn)將A和C鏈接在一起,依此類推,那么你已經(jīng)通過以下方式創(chuàng)建了大量證據(jù):哪種統(tǒng)計(jì)分析可以鏈接您的整套資產(chǎn)。
比特幣開發(fā)商邁克赫恩提出了一種緩解策略,可以降低發(fā)生這種情況的可能性,即避免合并 :實(shí)質(zhì)上,這是一個(gè)非常難以理解的術(shù)語(yǔ),可以最大限度地減少您通過同時(shí)支出將帳戶鏈接在一起的次數(shù)。 這絕對(duì)有幫助,但即便如此,比特幣系統(tǒng)內(nèi)部的隱私已被證明是高度多孔的和啟發(fā)式的,甚至沒有接近高保證。
一種更先進(jìn)的技術(shù)稱為CoinJoin 。 基本上,CoinJoin協(xié)議的工作原理如下:
如果所有參與者都誠(chéng)實(shí)并提供一枚硬幣,那么每個(gè)人都會(huì)放入一枚硬幣并輸出一枚硬幣,但沒有人會(huì)知道哪個(gè)輸入映射到哪個(gè)輸出 。 如果至少有一個(gè)參與者沒有放入一枚硬幣,則該過程將失敗,硬幣將被退還,并且所有參與者都可以再次嘗試。 類似于此的算法由Amir Taaki和Pablo Martin為比特幣實(shí)施 , Gavin Wood和Vlad Gluhovsky為以太坊實(shí)施 。
到目前為止,我們只討論了令牌匿名化。 兩黨智能合約怎么樣? 在這里,我們使用與Hawk相同的機(jī)制,除了我們用更簡(jiǎn)單的加密經(jīng)濟(jì)學(xué)代替密碼學(xué) - 即“可審計(jì)計(jì)算”技巧。 參與者將他們的資金發(fā)送到存儲(chǔ)代碼散列的合同中。 在發(fā)送資金時(shí),任何一方都可以提交結(jié)果。 另一方可以發(fā)送交易以同意結(jié)果,允許發(fā)送資金,或者可以將實(shí)際代碼發(fā)布到合同,此時(shí)代碼將運(yùn)行并正確分配資金。 保證金可用于激勵(lì)各方誠(chéng)實(shí)參與。 因此,默認(rèn)情況下系統(tǒng)是私有的,并且只有在存在爭(zhēng)議時(shí)才會(huì)將任何信息泄露給外界。
這種技術(shù)的概括稱為狀態(tài) 通道 ,并且還具有可擴(kuò)展性優(yōu)勢(shì)以及其隱私性的改進(jìn)。
環(huán)簽名
對(duì)于令牌匿名化和身份應(yīng)用而言技術(shù)上適度復(fù)雜但非常有希望的技術(shù)是環(huán)簽名。 環(huán)簽名本質(zhì)上是簽名,證明簽名者具有對(duì)應(yīng)于特定公鑰集之一的私鑰, 而不揭示哪一個(gè) 。 關(guān)于這在數(shù)學(xué)上是如何工作的兩句話解釋是環(huán)簽名算法包括一個(gè)數(shù)學(xué)函數(shù),該函數(shù)只需公鑰即可正常計(jì)算,但知道私鑰允許你在輸入中添加種子以產(chǎn)生輸出無(wú)論你想要什么具體價(jià)值。 簽名本身由一個(gè)值列表組成,其中每個(gè)值都設(shè)置為應(yīng)用于前一個(gè)值的函數(shù)(加上一些種子); 生成有效簽名需要使用私鑰的知識(shí)來(lái)“關(guān)閉循環(huán)”,強(qiáng)制計(jì)算的最后一個(gè)值等于第一個(gè)。 給定以這種方式產(chǎn)生的有效“環(huán)”,任何人都可以驗(yàn)證它確實(shí)是“環(huán)”,因此每個(gè)值等于在先前值加上給定種子計(jì)算的函數(shù),但是沒有辦法告訴哪個(gè)環(huán)中的“鏈接”使用了私鑰。
還有一個(gè)稱為可鏈接環(huán)簽名的環(huán)簽名的升級(jí)版本,它增加了額外的屬性:如果您使用相同的私鑰簽名兩次,則可以檢測(cè)到該事實(shí) - 但不會(huì)顯示其他信息。 在令牌匿名化的情況下,應(yīng)用程序非常簡(jiǎn)單:當(dāng)用戶想要花錢時(shí),而不是讓他們提供常規(guī)簽名來(lái)直接證明他們的公鑰的所有權(quán),我們將公鑰組合成組,并詢問用戶只需證明該組的成員資格。 由于可鏈接性屬性,在組中具有一個(gè)公鑰的用戶只能從該組中花費(fèi)一次; 沖突的簽名被拒絕。
戒指簽名也可用于投票申請(qǐng):我們使用它們來(lái)驗(yàn)證投票,而不是使用戒指簽名來(lái)驗(yàn)證一組硬幣的支出。 它們也可用于身份識(shí)別應(yīng)用程序:如果您想證明自己屬于一組授權(quán)用戶,而沒有透露哪一個(gè),那么環(huán)簽名就非常適合。 環(huán)簽名在數(shù)學(xué)上比簡(jiǎn)單簽名更復(fù)雜,但它們實(shí)現(xiàn)起來(lái)非常實(shí)用; 可在此處找到以太坊頂部的環(huán)簽名示例代碼。
秘密共享和加密
有時(shí),區(qū)塊鏈應(yīng)用程序并不試圖調(diào)解數(shù)字資產(chǎn)的轉(zhuǎn)移,記錄身份信息或處理智能合約,而是用于更多以數(shù)據(jù)為中心的應(yīng)用程序:時(shí)間戳,高價(jià)值數(shù)據(jù)存儲(chǔ),存在證據(jù)(或不存在的證明 ,如證書撤銷的情況)等。一個(gè)常見的副詞是使用區(qū)塊鏈來(lái)構(gòu)建“用戶控制自己的數(shù)據(jù)”的系統(tǒng)。
在這些情況下,再次注意區(qū)塊鏈不能解決隱私問題,并且只是真實(shí)性解決方案。 因此,將明文醫(yī)療記錄放入?yún)^(qū)塊鏈?zhǔn)且粋€(gè)非常糟糕的想法。 但是,它們可以與其他提供隱私的技術(shù)相結(jié)合,以便為許多行業(yè)創(chuàng)建一個(gè)完整的解決方案,實(shí)現(xiàn)預(yù)期目標(biāo),區(qū)塊鏈?zhǔn)枪?yīng)商中立的平臺(tái),可以存儲(chǔ)一些數(shù)據(jù)以提供真實(shí)性保證。
那么這些隱私保護(hù)技術(shù)是什么? 那么,在簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)(例如醫(yī)療記錄)的情況下,我們可以使用最簡(jiǎn)單和最老的一個(gè):加密! 區(qū)塊鏈上散列的文檔可以先加密,因此即使數(shù)據(jù)存儲(chǔ)在IPFS之類的東西上,只有擁有自己私鑰的用戶才能看到文檔。 如果用戶想要授予其他人以解密形式查看某些特定記錄的權(quán)利,而不是所有這些記錄,則可以使用諸如確定性錢包之類的東西來(lái)為每個(gè)文檔導(dǎo)出不同的密鑰。
另一種有用的技術(shù)是秘密共享( 這里更詳細(xì)地描述),允許用戶以這樣的方式加密一條數(shù)據(jù):給定N個(gè)用戶的M(例如,M = 5,N = 9)可以合作解密數(shù)據(jù),但不會(huì)少。
隱私的未來(lái)
區(qū)塊鏈中的隱私保護(hù)協(xié)議存在兩個(gè)主要挑戰(zhàn)。 其中一個(gè)挑戰(zhàn)是統(tǒng)計(jì):為了使任何隱私保護(hù)方案在計(jì)算上實(shí)用,該方案必須僅在每次交易時(shí)改變區(qū)塊鏈狀態(tài)的一小部分。 然而,即使改變的內(nèi)容是隱私,也不可避免地存在一些量的元數(shù)據(jù) 。 因此,統(tǒng)計(jì)分析總能找出一些東西 ; 至少,他們將能夠捕捉交易發(fā)生時(shí)的模式,并且在許多情況下,他們將能夠縮小身份并找出與誰(shuí)交互的人。
第二個(gè)挑戰(zhàn)是開發(fā)者體驗(yàn)挑戰(zhàn)。 Turing-complete區(qū)塊鏈對(duì)開發(fā)人員非常有用,因?yàn)樗鼈儗?duì)開發(fā)人員非常友好,對(duì)于分散的底層機(jī)制完全無(wú)能為力:他們創(chuàng)建了一個(gè)分散的“世界計(jì)算機(jī)”,看起來(lái)就像一臺(tái)集中式計(jì)算機(jī),實(shí)際上是在說“看,開發(fā)人員” ,你可以編寫你計(jì)劃編碼的代碼,除了底部的這個(gè)新圖層現(xiàn)在可以為你做一切神奇的分散“。 當(dāng)然,抽象并不完美:高交易費(fèi),高延遲,天然氣和大塊重組對(duì)程序員來(lái)說是一個(gè)新的挑戰(zhàn),但障礙并不是那么大。
有了隱私,正如我們所見,沒有這樣的神奇子彈。 雖然對(duì)于特定用例存在部分解決方案 ,并且這些部分解決方案通常提供高度靈活性,但它們呈現(xiàn)的抽象與開發(fā)人員習(xí)慣的抽象有很大不同。 從“10行python腳本中獲取一些代碼,用于從發(fā)送者的余額中減去X幣并將X幣添加到接收者的余額”到“使用可鏈接環(huán)簽名的高度匿名化的數(shù)字令牌”,這并非易事。
像Hawk這樣的項(xiàng)目在正確的方向上是非常受歡迎的步驟:它們提供了將任意N方協(xié)議轉(zhuǎn)換為零知識(shí)協(xié)議的承諾,該協(xié)議僅信任區(qū)塊鏈的真實(shí)性,以及一個(gè)特定的隱私方:基本上,組合兩個(gè)世界中最好的集中和分散的方法。 我們可以更進(jìn)一步,并創(chuàng)建一個(gè)信任零方以保護(hù)隱私的協(xié)議嗎? 這仍然是一個(gè)積極的研究方向,我們只需要等待,看看我們能走多遠(yuǎn)。
https://blog.ethereum.org/2016/01/15/privacy-on-the-blockchain/
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的【译】Privacy on the Blockchain的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【译】Notes on Blockcha
- 下一篇: 【译】Consortium Chain