小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

區(qū)塊鏈的“隱私”問題

 昵稱11935121 2018-05-09

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

區(qū)塊鏈的“隱私”問題

很多人都認(rèn)同區(qū)塊鏈?zhǔn)且环N強(qiáng)大的技術(shù)。它們允許大量的交互被編碼和實施,提高了可靠性,消除了與中心實體管理的進(jìn)程有關(guān)的商業(yè)和政治風(fēng)險,并減少了對信任的需要。它們創(chuàng)建了一個平臺,來自不同公司甚至不同類型的應(yīng)用程序都可以一起運行,允許極其高效且無縫的交互,并留下審計跟蹤,任何人都可以檢查,以確保所有的處理都是正確的。

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

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

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

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

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

圣杯

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

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

區(qū)塊鏈的“隱私”問題

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

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

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

要了解這對于我們的應(yīng)用程序來說是仍然足夠強(qiáng)大的,請考慮以下兩個程序:

1.y=0

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

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

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

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

那么,我們該如何在區(qū)塊鏈上使用這一點呢?這里有一個簡單的數(shù)字代幣方法。我們創(chuàng)建一個包含私鑰的混淆智能合約,并接受使用相應(yīng)公鑰加密的指令。

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

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

區(qū)塊鏈的“隱私”問題

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

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

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

退一步說

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

區(qū)塊鏈的“隱私”問題

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

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

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

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

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

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

區(qū)塊鏈的“隱私”問題

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

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

區(qū)塊鏈的“隱私”問題

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

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

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

1.N方聚集在一些匿名頻道上,例如,Tor。它們各自提供目的地址D [1] ... D [N]。

2.其中一方創(chuàng)建一筆交易,向每個目的地地址發(fā)送1個coin。

3.N方注銷,然后分別登錄到該頻道,并且每人向該支出賬戶提供1coin。

4.如果N 個coin被存入賬戶,它們被分配到目的地址,否則退還。

區(qū)塊鏈的“隱私”問題

如果所有參與者都誠實地提供1個coin,那么每個人都會投入1個coin,并獲得1個coin,但沒有人會知道哪個輸入映射到哪個輸出。如果至少有一名參與者沒有放入1個coin,則該過程將失敗,1個coin將退還,所有參與者可以再次嘗試。

Amir Taaki和Pablo Martin為比特幣以及Gavin Wood和Vlad Gluhovsky為Ethereum實施了類似的算法。

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

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

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

區(qū)塊鏈的“隱私”問題

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

環(huán)簽名

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

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

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

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

區(qū)塊鏈的“隱私”問題

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

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

由于可鏈接性屬性,在組中具有一個公鑰的用戶只能從該組中花費一次; 相沖突的簽名會被拒絕。

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

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

秘密共享和加密

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

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

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

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

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

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

隱私的未來

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

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

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

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

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

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

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

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

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

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多