怎樣使用區(qū)塊鏈技術(shù)對自己的身份加密
今天,我們將探討區(qū)塊鏈系統(tǒng)中存在的一個問題——如何實現(xiàn)安全與匿名,透明與清晰并存的理想狀態(tài)。
在沒有中央服務(wù)器可以登錄的情況下,我們該如何保護(hù)隱私?如何安全地“登錄”比特幣?如何才能確保信息的公開性和透明性呢?
解決方法其實就如同傳統(tǒng)的一套鎖和鑰匙,分別相對應(yīng)用戶名和密碼系統(tǒng)。其運作方式類似你的網(wǎng)上銀行資產(chǎn)賬戶,客戶與服務(wù)器之間由你的公開用戶名和私人密碼進(jìn)行聯(lián)接。
而比特幣則利用了密碼學(xué)原理來保障信息安全。通過創(chuàng)建無需服務(wù)器檢查密碼的系統(tǒng),人們不用再與人共享密碼。因為在這個系統(tǒng)中,私鑰代替了密碼,公鑰代替了用戶名。私鑰將會對你所有的信息進(jìn)行保密處理。
比特幣的特殊之處還在于:用戶可以對任何數(shù)據(jù)進(jìn)行“簽名”,然而只有知道與某個公鑰對應(yīng)的私鑰的人才有此項權(quán)利。
這樣一來,數(shù)字即時簽名就可最大限度地保障信息安全性,同時還能保證公共賬本在去中心化領(lǐng)域中依然具有公開透明的性質(zhì)。
其實除了比特幣之外,還有一項技術(shù)也能實現(xiàn)上面提到的安全性、透明性等效果。設(shè)想一下,如果你是一家私人加密貨幣基金會的所有者,你一定希望在可以保護(hù)個人隱私的前提下,讓投資者真正地了解自己。
那么,在這種情況下系統(tǒng)該如何驗證你的個人身份信息呢?
針對這一問題,推特(Twitter)提出的解決方案是讓客戶與相關(guān)服務(wù)人員聯(lián)系。服務(wù)人員將通過面部識別及ID來驗證這個人是不是他/她聲稱的“他/她”。比如某明星,如果在推特經(jīng)過了驗證,那么他/她的頭像旁邊就會有一個藍(lán)色的,表明這個明星的賬號確實是他/她本人,不是別人冒充的。這種方法類似于我們微博對明星的“加V認(rèn)證”。但是,這種方法無法確保用戶隱私。
另一種方法是在市面上自行發(fā)布自己的公鑰并自證安全性,然后用個人私鑰在消息上簽名,再把消息發(fā)布出去。
所謂的簽名實際上只是一串隨機(jī)字母和數(shù)字,但是你可以通過共同運行一個“神奇”的函數(shù)來發(fā)布消息及公鑰,從而證明簽名真實有效。
這樣一來,所有人都可以在完全匿名的情況下驗證你作為某個私鑰所有者的身份。
比特幣的運行原理與此相同,只不過上述方法中的簽名是用戶主動發(fā)出的交易消息。
當(dāng)用戶想發(fā)送或接收比特幣時,必須要提交詳細(xì)的地址信息用以明確支付對象。這是在提交交易時就商談好的。
另外,還需要注意的是,雖然地址相當(dāng)于一個比特幣用戶名,但它不是普通公鑰,而是通過名為“哈?!钡暮瘮?shù)運行的公鑰。該函數(shù)可為公鑰提供加固保護(hù)。
一般來說,比特幣的地址、公鑰和私鑰看起來是這樣的: 1JryTePcesiwVpoNBU8SbwiT7J4ghzijzW。
對于外行來說,這些字母和數(shù)字就像一串亂碼,但正是這串亂碼可以讓我們輸出一個base58(Bitcoin中使用的一種獨特的編碼方式)的復(fù)雜序列。也就是說,無論多長的信息都可以被壓縮成一定長度的字符串,因此可以給復(fù)雜的地址節(jié)省空間。
所以當(dāng)你登錄比特幣軟件時,你需要輸入一個私鑰密碼,或者在第一次使用的時候讓系統(tǒng)隨機(jī)幫你生成一個。這時候千萬別忘了把密碼記錄在安全的地方,因為一旦弄丟就再也找不回來了!
此外,私鑰可以掃描對應(yīng)地址中的區(qū)塊鏈以查找資金,并顯示余額。當(dāng)用戶有交易時,它會發(fā)布與你的公鑰聯(lián)合簽名的交易信息。
但是這個系統(tǒng)有一些問題。
第一,如果有人發(fā)現(xiàn)了你的私鑰,他就能立即轉(zhuǎn)移你所有的資金,而你完全沒有追索權(quán)。
第二,如果你丟失或忘記了你的私鑰,你就再也無法存取你的錢了。這種情況經(jīng)常發(fā)生。據(jù)保守估計,目前存在的所有比特幣中,大約有價值四分之一的比特幣是因為忘記私鑰而丟失的。美劇《生活大爆炸》里有一集就是專門講四位男主角,在很早之前寫了程序挖了一部分比特幣,如今幾個人突然想起來這件事兒以及意識到比特幣的價值,但是完全忘記了當(dāng)時設(shè)定的密碼是什么。
實際上,這些問題的產(chǎn)生根本不是因為加密私鑰,而是網(wǎng)絡(luò)去中心化的本質(zhì)問題。由于不存在存儲私鑰的服務(wù)器,所以私鑰一旦丟失,沒有人能給你一個“備份”私鑰。既然沒有人能審查、阻止或撤銷交易,也就沒人能阻止小偷從別人賬戶中支取資金。這意味著如果你的資金不安全,沒人會來救你。你必須自己承擔(dān)保護(hù)私鑰的責(zé)任。過去,銀行可以給你的錢提供安全保護(hù),而現(xiàn)在就完全需要靠你自己。
有人問:“如果有人猜出我的私鑰呢?”
這種事根本不會發(fā)生。只要你最初設(shè)置私鑰時不使用諸如6969696969或3之類的簡單數(shù)字組合,那么有效私鑰就是0到2256之間的數(shù)字,這意味著隨機(jī)猜中一個人私鑰的概率為:
1/1115792089237316195423570985008687907853269984665640564039457584007913129639936
如果分母是長成這樣的一個天文數(shù)字,你覺得還會有人猜中你的私鑰嗎?分母的這個天文數(shù)字有多大呢?基本和宇宙中人類已知的原子數(shù)量差不多。
有人又問:“如果他們用超級計算機(jī)來猜我的私鑰呢?”
假設(shè)這臺超級計算機(jī)能夠以每秒10億的速度猜測和測試私鑰,并且這臺超級計算機(jī)自宇宙大爆炸以來就一直存在并運行著。那么到目前為止,計算機(jī)可能已經(jīng)猜到了的私鑰大約有
409,968,000,000,000,000,000,000,000個。
讓我們再把電腦的功能提高到原來的四倍,然后假設(shè)它的存在時間是人類存在時間的兩倍,假設(shè)這臺電腦的運行速度可以每秒猜測40億個私鑰,那么猜出的私鑰數(shù)目又會翻倍。
然而,即使是在幾十億年的時光中以這么快的速度運轉(zhuǎn),黑客能猜到你手中私鑰的概率依然是:
1/282441774083138672831955140422393718176223472723823
那么這一切的結(jié)果是什么?
是一個建立在區(qū)塊鏈基礎(chǔ)上的更安全、更清晰的經(jīng)濟(jì)體系,是能為所有使用者提供清晰、透明、公平的服務(wù)的平臺。
來源: CertiK