兩分鐘讓你了解是什么限制了區(qū)塊鏈技術(shù)的應(yīng)用
2017年已經(jīng)匆匆離去,回顧過去一整年,似乎區(qū)塊鏈應(yīng)用一直處于隱忍未發(fā)的狀態(tài),很多項(xiàng)目的落地已處于驗(yàn)證階段,萬(wàn)眾期待的爆點(diǎn)卻一直沒能出來(lái)。
有人說ICO不是很熱嗎?比特幣不是漲了幾十倍嗎?擼貓游戲不是很火嗎?的確,這些純線上的虛擬資產(chǎn)場(chǎng)景是熱了一把,但說到真正解決了實(shí)際生活中什么問題?什么痛點(diǎn)?好像還沒有觸及吧。
我們不禁要問,究竟是什么限制了區(qū)塊鏈技術(shù)的應(yīng)用呢?原因可能有很多,不妨先從技術(shù)角度分析一下。
區(qū)塊鏈技術(shù)是一個(gè)對(duì)多種技術(shù)的組合創(chuàng)新,多種技術(shù)包括:
1. 共識(shí)算法:POW/POS/DPOS/PBFT/BFT-Raft/Paxos/Kafka
2. P2P通訊:自舉(bootstrapped)/連接/廣播
3. 簽名驗(yàn)簽:ECDSA/secp256k1/ED25519/MulTISig
4. Hash鎖定:Merkle樹/MPT樹
5. UTXO記賬:流水賬
6. 智能合約:P2PKH/P2SH/Oracle/狀態(tài)機(jī)
7. 隱私保護(hù):零知識(shí)證明、同態(tài)加密、CoinJoin加密技術(shù)
8. 私鑰存儲(chǔ):HD協(xié)議(Hierarchical DeterminisTIc Key CreaTIon)、錢包Wallets、丟失找回
9. 算力分發(fā):礦池分發(fā)
這些技術(shù)要素如果站在應(yīng)用需求角度來(lái)劃分是這樣的:
注:對(duì)外安全性是指對(duì)抗非區(qū)塊鏈節(jié)點(diǎn)的外部攻擊和信息竊取,對(duì)內(nèi)安全性是指區(qū)塊鏈節(jié)點(diǎn)之間的信息安全防護(hù)。
其中的短板比較明顯,在易用性和對(duì)內(nèi)安全性上亟需提高,對(duì)應(yīng)的技術(shù)要素包括隱私保護(hù)和私鑰存儲(chǔ)。
其中隱私保護(hù)主要指參與共識(shí)記賬的多方并不一定應(yīng)該擁有數(shù)據(jù),或者說擁有數(shù)據(jù)的使用權(quán)。遵照業(yè)務(wù)的相關(guān)性,只要交易的雙方或幾方持有即可,而不應(yīng)該是全聯(lián)盟的所有節(jié)點(diǎn)。但是作為歷史的見證方,最好是所有節(jié)點(diǎn)上的數(shù)據(jù)都可以拿出來(lái)見證,并且所有節(jié)點(diǎn)可以依據(jù)自己的見證進(jìn)行投票。做到這一點(diǎn)可能的實(shí)現(xiàn)技術(shù)有零知識(shí)證明、同態(tài)加密或者CoinJoin混淆技術(shù)等。目前這個(gè)方向上業(yè)界的突破還較少,大部分還沒有進(jìn)入實(shí)用階段,但是站在商業(yè)應(yīng)用的角度看,隱私保護(hù)恰恰又是商業(yè)應(yīng)用中最關(guān)心的。
我們先聊一下零知識(shí)證明的可行性。大家知道,零知識(shí)證明是在不泄露信息內(nèi)容的情況下向其他人證明我知道這個(gè)信息,一般過程如下:
1. 證明方向驗(yàn)證方發(fā)送滿足一定條件的隨機(jī)值,這個(gè)隨機(jī)值稱為“承諾”;
2. 驗(yàn)證方向證明方發(fā)送滿足一定條件的隨機(jī)值,這個(gè)隨機(jī)值稱為“挑戰(zhàn)”;
3. 證明方執(zhí)行一個(gè)秘密的計(jì)算,并將結(jié)果發(fā)送給驗(yàn)證方,這個(gè)結(jié)果稱為“響應(yīng)”;
4.驗(yàn)證方對(duì)響應(yīng)進(jìn)行驗(yàn)證,如果驗(yàn)證失敗,則表明證明方不具有他所謂的“知識(shí)”,退出此過程。否則,繼續(xù)從1開始,重復(fù)執(zhí)行此過程t次。
如果每一次驗(yàn)證方均驗(yàn)證成功,則驗(yàn)證方便相信證明方擁有某種知識(shí),而且此過程中,驗(yàn)證方?jīng)]有得到關(guān)于這個(gè)知識(shí)的一點(diǎn)信息。
用通俗的話說就是只要證明方通過了“大學(xué)畢業(yè)答辯”,驗(yàn)證方就頒發(fā)“本科學(xué)歷證書”,至于證明方是不是真的掌握了本科生應(yīng)該掌握的所有知識(shí),只能大概率保證。這個(gè)大概率保證用在需要嚴(yán)格驗(yàn)證交易金額的情況下,不免有點(diǎn)讓人擔(dān)心。
再說說同態(tài)加密,Craig Gentry給出的直觀定義是“A way to delegate processing of your data,without giving away access to it.(一種委托處理數(shù)據(jù)的方法,而不允許訪問它。)”結(jié)合區(qū)塊鏈共識(shí)的場(chǎng)景來(lái)說就是,節(jié)點(diǎn)A發(fā)起一筆與節(jié)點(diǎn)B無(wú)關(guān)的交易,希望節(jié)點(diǎn)B做一下見證,并登記起來(lái)。于是節(jié)點(diǎn)A先把交易信息加密,再把密文發(fā)給節(jié)點(diǎn)B,節(jié)點(diǎn)B收到請(qǐng)求后使用“驗(yàn)證函數(shù)”對(duì)密文進(jìn)行驗(yàn)證,如果驗(yàn)證通過就登記。按照區(qū)塊鏈記賬的要求,這個(gè)“驗(yàn)證函數(shù)”需要能完成對(duì)加密交易的簽名驗(yàn)證、與已經(jīng)登記的交易信息比對(duì)。
其中簽名驗(yàn)證本身是一套非對(duì)稱的加解密算法,如果能對(duì)簽名的密文進(jìn)行驗(yàn)證,而又不解密簽名,本身似乎就是對(duì)簽名算法的挑戰(zhàn)。而與已經(jīng)登記的交易信息比對(duì)這一步,如果之前就是加密的,應(yīng)該還好比對(duì)。但如果原來(lái)的交易是明文的,那首先需要對(duì)原來(lái)的明文加密,這又需要知道加密算法,就難辦了。因此同態(tài)加密即使性能取得了突破,用在多節(jié)點(diǎn)共識(shí)上挑戰(zhàn)也很大。
CoinJoin混淆技術(shù)是指把多個(gè)用戶的交易合并到一起,交易有多項(xiàng)相同大小的輸出,讓人無(wú)法分辨輸出和用戶的對(duì)應(yīng)關(guān)系,也打破了所有輸入都來(lái)自同一個(gè)人的規(guī)律。如果找不到多個(gè)用戶,其實(shí)用一些fake交易做混淆也行。這個(gè)方法在同質(zhì)資產(chǎn)交易中是有效的,但是如果是不同質(zhì)的交易,或者信息類的應(yīng)用就不奏效了。
另外私鑰存儲(chǔ)、私鑰簽名對(duì)傳統(tǒng)業(yè)務(wù)用戶來(lái)說很難理解,很難配合,教育成本很高,而這些恰恰又是區(qū)塊鏈安全運(yùn)行的前提條件。在大部分用戶還沒有意識(shí)到自己的私鑰和家里的鑰匙一樣重要之前,通過錢包+私鑰托管的方式是一條可行途徑。如果一定要把私鑰交給用戶,就需要配套私鑰丟失找回的功能或者解鎖用戶數(shù)據(jù)的功能。這一點(diǎn)上業(yè)界的創(chuàng)新也不多,很多還是采用用戶名+登錄密碼的方式,把私鑰托管起來(lái),可以保證用戶體驗(yàn),但無(wú)法自證清白。這方面,技術(shù)上挑戰(zhàn)不是特別大,挑戰(zhàn)的是左右手的權(quán)衡,方法的創(chuàng)新。
另外在法律條款上也亟須能支撐到私鑰簽名和電子簽名的同等地位,數(shù)字資產(chǎn)與實(shí)物資產(chǎn)證明的同等地位。但是沒有具體的場(chǎng)景,法律肯定不會(huì)先行去為一門技術(shù)站臺(tái),這似乎成了悖論。
站在2018年的開頭,我們希望區(qū)塊鏈能在一個(gè)具體場(chǎng)景中先行落地下來(lái),不能再等著采用通用技術(shù)來(lái)解決問題,應(yīng)該先聚焦到一個(gè)具體應(yīng)用中,搞定特定某個(gè)場(chǎng)景的問題再說。畢竟解決一個(gè)具體問題比解決一類通用問題要容易的多。希望2018年是區(qū)塊鏈落地的突破之年!