「譯」區塊鏈技術實現的現實挑戰

? ? ? 毫無疑問,區塊鏈技術具有很大的潛力和影響力。2017年,比特幣市場出現了巨大的反彈,市場前景一片樂觀。

但是,blockchains目前還存在一些重要的技術壁壘,使得他們在今天并沒有得到大范圍的普及使用。

當然,我深信 blockchains 會迅速成長起來,所以,我們需要眾多的開發者和投資商一起,推動區塊鏈技術向前發展。


下面列舉一下目前存在的技術壁壘:

1、擴展性問題

2、隱私問題

3、缺乏正式的合同確認

4、存儲約束

5、節點間的一致性問題

6、缺乏管理和標準

7、工具不夠完善

8、量子計算的威脅

9、等等

下面,我將通過舉例的方式來論述上面提到的技術壁壘。

node:對于上述的問題,我可能沒辦法一一論述他們,并給出合理的解決方案,如果我的論述存在問題,歡迎大家批評指正,我將萬分感激,

1、擴展性問題(Limited scalability):

目前,所有區塊鏈共識協議有一個具有挑戰性的問題:就是每一個區塊鏈網絡中的節點必須處理事務。為什么呢?OK,回想一下,區塊鏈從根本上來說是一個“去中心化”的系統,這就意味著他不像傳統的一致性協議一樣,有一個主節點來監控從節點的狀態。相反,網絡中的每一個節點都通過處理每個事物和維護整個狀態的副本來確保系統的安全。

雖然,去中心化的這種共識機制為我們提供了我們所關心的區塊鏈的優勢——安全保證、政治中立、審查抵制等,但這是以可擴展性為代價的,根據區塊鏈的定義,我們能夠清晰的得出,為了保證每一個全節點在全網中的處理能力,所以它通過限制區塊鏈的交易數量來達到目的。

主要有如下兩點:

1、低吞吐量:blockchains只能處理有限的交易數量。

2、交易時間較慢:處理一塊交易所需要的時間是緩慢的。比如:比特幣每10分鐘生成一個塊,以太坊大約每14秒生成一個塊,在高峰時刻,這個時間可能更長.

所以,區塊鏈技術被迫在二者之間做出權衡。另外,隨著時間的增長,bitcoinchains被挖出來的數量增多,其對存儲、網絡帶寬、算力的要求也會不斷增長。在某些情況下,只有少數滿足要求的節點才能繼續挖礦,這一樣會導致集中化的風險。因為我們需要的是一個每秒處理數千筆交易,并且分散化相同的加密貨幣,所以真正到了那個時候,我們就需要選擇去相信幾個較大公司的中央系統,來繼續挖礦。

解決方案:

理想情況下,我們希望區塊鏈設計具有比特幣和以太幣類似或更好的安全屬性,同時,我們沒必要讓每一個節點去驗證所有的交易,我們按照一定的百分比來驗證。換句話說,我們需要一種機制來限制需要驗證每個事務的節點的數量,而不會丟失網絡對每個事務有效和真實的信任。這可能聽起來很簡單,但在技術上是非常困難的。

可擴展性是blockchains能否推廣的一個技術挑戰,目前,區塊鏈生態系統中的研發人員正在努力提出可行性的解決方案,有關當前的一些解決方案的簡要總結,請參閱下面的內容:

離塊鏈交易(Off-chain payment channels):

顧名思義,離塊鏈交易,就是不在區塊鏈上直接完成交易,其區別與塊鏈交易,這樣做的好處是區塊鏈就是純粹用作結算層來處理最終的交易以及一系列的交互,真正的交易,我在鏈外進行,這樣有助于減輕底層區塊鏈的負擔。

這種方式可以解決我們上面討論的吞吐量的問題,因為,現在的區塊鏈可以處理規模更大的交易量。此外,由于支付通道一經處理就發生事物處理,而不是當一個塊被得到確認之后,所以離塊鏈交易也可以解決事物的速度問題,消除典型的延遲。

目前。區塊鏈生態中,關于離塊鏈交易的一些例子:比如Raiden Network和 Lightning Network(閃電網絡)。

分區 (Sharding):

分區的概念就是將區塊鏈的整體狀態切分成不同的碎片,并且狀態的每個部分都被網絡中的不同節點存儲和處理,每一個分片只并行處理其中的一小部分狀態,區塊鏈分區與傳統數據庫領域的分區類似,當然在分散的節點之間保持安全性和真實性依舊是一個難題。

離鏈計算(Off-chain computations)

這個類似與有狀態的通道(channel),但范圍較大,這個想法是在塊鏈外執行計算(不僅僅是令牌的傳輸),因為直接在區塊鏈上進行計算代價太大。某種程度上,這是種安全的、可驗證的方式。通俗來說,就是將計算和驗證的過程從區塊鏈轉移到單獨的協議中,來提高事務的吞吐量。以太坊的一個例子是 TrueBit 。

有向無環圖(DAGs)

“DAG”是具有頂點和邊的圖數據結構。頂點是圖上的一個點,邊是從一個頂點到另一個頂點的路徑)DAG保證沒有辦法從任何頂點開始,并沿著一系列的邊,最終循環返回到頂點即沒有循環)。這使得我們可以按照拓撲順序獲得一系列節點(或頂點)。

以DAG為基礎的協議(例如IOTA的Tangle)的前提是將全局的線性區塊鏈排在一起,而使用DAG數據結構來維持系統的狀態,為了保護網絡,這些協議依賴于他們自己的新方法,并不要求每個節點都按照線性的方式來處理每一個事務。

另一種基于DAG的方法,例如SPECTER協議,使用塊的直接非循環圖(DAG)和并行的DAG塊,以實現更高的吞吐量和更高的事務處理時間。

我希望能在以后的文章中多寫一些關于基于DAG的方法。現實情況是,這些協議還處于很早的階段,尚未得到大規模的實施和使用。坦率地說,他們有一些根本性的局限/弱點,尚未解決被認為是可行的可擴展解決方案。

隱私問題(Limited?privacy)

因為區塊鏈交易并不直接與您的身份掛鉤,它們可能顯得更私密。世界上任何人都可以匿名創建一個新的錢包,并使用它進行交易。

事實上,并沒有這么簡單。

一方面,區塊鏈技術的巨大潛力是假名:這種交易是記錄和存儲在公共賬本中的,但它們與一個僅由數字和字母組成的賬戶地址相關聯。由于這個地址沒有真實世界的身份,交易的創始人是無法跟蹤到的。

但是,這種總體安全的表象是誤導性的。只要化名不與個人聯系在一起,一個人就可以保護自己的隱私,但只要有人聯系起來,秘密就顯露出來。當執法機構承認他們能夠在調查過程中識別特定的比特幣用戶時,就會發現這種情況的一個例子,從而“去密鑰化”他們,并破壞了區塊鏈總交易隱形的總體前提。

這是如何實現的呢?

商家網站上的網絡跟蹤器和cookies使得將交易信息泄漏到網絡上非常容易,任何人(包括政府,執法機構和惡意用戶)都可以隨時使用這些信息。

此外,像以太坊這樣的區塊鏈平臺,用戶正在與智能合約進行交互,而不僅僅是簡單的價值轉移。關于這些智能合約的所有細節在以太坊區塊鏈上都是公開的,包括發件人和收件人,交易數據本身,執行的代碼以及合約中存儲的狀態。

將關鍵業務數據上傳到黑客,競爭對手或其他未授權方可以查看信息的區塊鏈中,這對大多數公司來說不是一種選擇。考慮:

電子病案:這是非常私人和敏感的信息。在公共區塊鏈上公開顯示這些信息是不可接受的,從而危及病人的機密性。

身份驗證數據:如社會安全號碼不能公開存儲在公共智能合同中。

憑證管理:如密碼和密鑰在開放的,最終不安全的智能合約中沒有地位。

財務文件:如電子表格或員工工資不得公開地與易于追溯的地址相關聯。

還有很多例子。。。數不勝數。

對于隱私和個人主權的個人,組織和行業來說,隱私仍然是一個根本的障礙。我們中許多癡迷于區塊鏈和密碼貨幣的公司都有興趣建立一個不受信任和審查制度,為個人提供財務支持。矛盾的是,我們正在使用一個公開的,易于追蹤的分類賬來做到這一點(珍愛生命,遠離杠頭)。

隱私問題解決方案(Privacy solutions)

以下是不同開發團隊一直在努力解決的幾個例子。

橢圓曲線Diffie-Hellman-Merkle(ECDHM)地址:

要了解ECDHM地址,您需要了解Diffie-Hellman密鑰交換。 Diffie-Hellman密鑰交換背后的想法是它建立了雙方之間的共享秘密。這可以用來在公共網絡上私下交換信息。

然后呢?

發件人和收件人可以公開共享?ECDHM 地址,然后使用他們的共享公鑰來獲取匿名比特幣地址。這些比特幣地址只能由擁有這個私鑰的人揭露。唯一公開可見的是可重用的ECDHM地址。因此,用戶不必擔心被跟蹤的交易。


? ? ? ? ? ? ??通過使用顏色而不是非常大的數字來說明密鑰交換的總體思路的概念圖

ECDHM地址方案的一些示例包括Peter Todd的Stealth Addresses,Justus Ranvier的BIP47可重復使用支付代碼,Justin Newton的BIP75帶外地址交換等等。但是,這些方案的工作實施和實際使用是很少的。

Mixers

Mixers 背后的想法是,一群人可以將他們的付款合并成一個池,跟蹤私人賬本上的債務。然后,當從池中獲得資金時,每筆付款的來源都會被掩蓋。任何觀察區塊鏈的人都可以看到所支付的金額以及收款人,但理論上來說,專門授權付款的人不能被追蹤。Mixers 服務的一個例子是CoinJoin。

不幸的是,Mixers 已被證明是不可靠的解決方案。例如,研究人員能夠輕松識別CoinJoin交易,并證明只需支付32,000美元,攻擊者就能夠以90%的概率成功匿名交易。此外,研究人員還證明,Mixers 對 Sybil 攻擊和拒絕服務攻擊提供的保護很少。

更令人不安的是,一臺 Mixers 的私人賬本需要由一些中央機構進行管理,這意味著它需要一個值得信賴的第三方來“混合”交易。

由于CoinJoin是用戶選擇使用的解決方案,而不是默認的方法,因此歷史上很少有人參與這些類型的 Mixers 池,使得匿名設置太小。因此,很容易確定一個特定的輸出是否來自少數幾個人之一。

Monero

解決隱私問題的另一種方法是創建默認情況下私密的加密貨幣,如Monero。與許多altcoin不同,Monero不是比特幣的分支。相反,Monero基于另一種協議CryptoNote。

Monero提供的主要功能是另一種“環形簽名”方案。

環簽名是一種組簽名,組中的每個簽名者都有一個秘密和公鑰。與傳統的加密簽名不??同,它證明了一個交易是由一個簽名者使用一個所述私鑰“批準”的,一個簽名組證明了一個固定組的簽名者批準了一個交易,而不會泄露誰。

零知識證明(Zero-knowledge proofs)

零知識證明是證明者證明驗證者擁有一些秘密知識,而不直接揭示知識。換句話說,一個程序可以有秘密的輸入,證明者沒有向驗證者揭示什么。零知識證明提供了可用于構建隱私保護機制的基本原語。例子包括:

1、challenge-response游戲:

在計算機安全中,challenge-response 認證是一個協議族,其中一方提出問題(“質疑”),另一方必須提供有效的答案(“答復”)以進行認證。這個“游戲”可以在區塊鏈上用來驗證交易。如果一個特定的事務是無效的,另一個節點可以選擇“喚醒注意力”來證明無效。這就要求提供可證實的證據,證明交易是無效的。如果不這樣做,就會產生一個“挑戰”,要求交易的發起者產生一個證明交易有效的“回應”。

讓我們來看一個例子:說“鮑伯”有唯一訪問的一些資源(例如他的車)。愛麗絲現在也想訪問它。鮑勃發出了一個挑戰,也許是“52w72y”。愛麗絲必須用符合鮑勃發出的挑戰的一串字符來回應。通過使用只有Bob和Alice知道的算法來找到答案的唯一方法。而且,鮑勃每次都會發出不同的挑戰。因此,了解以前的正確答案并不會給Alice帶來任何好處。


challenge-response游戲已經在像以太坊這樣的區塊鏈中使用。但是,我們需要庫和工具來使這些類型的認證方案更加容易使用。

2、zkSNARKs

什么是zkSNARKs?我們來分解這個定義:

1)zk =零知識。不需要知道信息來證明信息存在。

2)SNARK:簡潔的知識、非交互式自適應參數。“簡潔”是指可以快速驗證的簡潔證明;“非交互”意味著不要求驗證者與證明者進行交互。相反,證明者可以提前發布證明,驗證者可以確認它是正確的。“適應性的知識論”意味著一些計算知識的證明。

3)zkSNARKs是資源密集型的。

4)SNARKs允許用戶證明他們可以訪問一個秘密,但是用戶有責任維護秘密并在需要時使用它。

5)SNARKs有一個設置階段,在這個階段,你想要證明的電路或計算是固定的。這個階段需要事先在私人信任的人群中進行。這不僅要求您相信準備設置的人員,還意味著SNARK不適合運行任意計算,因為總是需要準備階段。

?zkSNARKs + Zcash

Zcash是基于zk-SNARKs的隱私保護加密貨幣, Zcash擁有所謂的“屏蔽交易”,即所有使用的硬幣都有一個匿名集合。屏蔽交易使用“屏蔽地址”,要求發送者或接收者生成一個零知識證據,允許其他人驗證交易的加密數據,而不會被泄露。


Zcash絕對是一個值得關注的有趣的項目。

zkSNARKs + Ethereum:

在以太坊的下一個協議升級中,Metropolis,開發者將有能力有效驗證鏈上的zk-SNARKs。

我們能用SNARKs啟用的以太坊做什么?某些合同變量可以被有效地私有化。而不是存儲在鏈上的秘密信息,它可以存儲與用戶,誰證明他們遵守合同規則使用SNARKs。這些用戶中的每一個都需要自己的可信任設置,這會增加一些準備工作。但是,一旦存在電路,就可以根據需要使用盡可能多的事務。

然而,以太坊上的SNARKs無法實現的是獨立于用戶的自治性隱私。由于以太坊上的SNARKs依靠用戶維護秘密的外鏈,如果沒有用戶,無法追蹤秘密。

zkSTARKs:

ZK-SNARKs擁有一個更新、更閃亮的表親:ZK-STARK,“T”代表“透明”。ZK-STARK解決了Zk-SNARKs的主要弱點之一:依賴于可信賴的設置。它們也更簡單,因為它們純粹依賴散列和信息理論,并且更安全,因為它們不使用橢圓曲線或指數假設。

總的來說,盡管我們在隱私方面取得了令人驚嘆的進展,但是仍然有很多工作要做。零知識證明庫需要進行大量的研究,戰斗測試和成熟。 zkSNARKs和zkSTARKs需要在各種公共鏈上進行實驗。 Zcash需要在現實世界的場景中大規模地證明用例。我們仍然是一個遠離這一切的方法。

缺乏正式的合同確認(Lack of formal contract verification):

智能合同的正式驗證仍然是一個巨大的問題。首先,讓我們理解什么是“正式驗證”一個合同的意義,即理解什么是“正式證明”。數學中的“形式證明”意味著一個數學證明,這個證明已經被計算機用數學的基本公理和原始推理規則來檢驗。

更廣泛地說,與軟件程序相關的形式驗證是確定程序是否按照規范行事的方法。一般來說,這是用一個具體的規范語言來完成的,這個語言用來描述函數的輸入和輸出應該如何相關。換句話說,我們首先聲明一個關于該程序的不變性,然后我們有義務證明這個說法。

規范語言的一個例子是Isabelle,它是一個通用的證明工具,允許數學公式以正式語言表達,并提供在邏輯演算中證明這些公式的工具。另一種規范語言是Coq,它是編寫數學定義,可執行算法和定理的正式語言。

那么,為什么對智能合約中編碼的程序進行正式驗證非常重要?

首先,智能合約是不可改變的,這意味著一旦將它們部署到以太網主要網絡后,就不能更新或修復它們。所以這意味著在我們能夠在真實世界的應用程序中部署和使用這些合同之前,我們需要把事情做好。而且,智能合約是可以公開訪問的,任何存儲在智能合約中的東西都是開放的,任何人都可以調用智能合約的公共方法。雖然這提供了開放性和透明度,但它也使得智能合約成為黑客極具吸引力的目標。

事實上,無論您采取多少預防措施,編寫無缺陷的智能合約都很困難。而且,以太坊為例,由于EVM指令的設計方式,驗證EVM代碼非常困難。這使得為??以太坊建立正式的驗證解決方案變得更加困難。無論如何,正式驗證是減少漏洞和攻擊風險的有效方法。它們比傳統方法(例如測試,同行評審等)提供了更高的正確性保證,我們迫切需要更好的解決方案。

解決方案

我希望我有更多公開的解決方案在本節炫耀,但不幸的是并不多。我發現的一個非常早期的例子是由以太坊基金會的正式驗證工程師Yoichi Hirai完成的。他能夠早日獲得驗證幾個智能合同的結果,包括一個小的“契約”合同。雖然很小,但這是我在定理證明環境中分析的第一個“真實”合約。

正如Yoichi Hirai所說:

驗證結果還不夠完善。在驗證設置方面,我仍然發現比驗證合同更多的問題。 EVM(以太坊虛擬機)實施不針對其他人進行測試!我已經公開這個項目了,因為這個項目是使用機器輔助邏輯推理驗證智能合約所需的工作量(和細節水平)的一個很好的例子。在這個時候,如果我要實現一個價值超過10萬美元的智能合約,并且我負責這個計劃,我會考慮這種發展(另一個選擇是先嘗試較小值的合同)

還有其他一些團隊,如Tezos完全放棄使用Solidity作為語言,EVM作為VM,而是建立自己的智能合約編程語言和虛擬機,以促進形式驗證。

無論是正確的方法,無論是徹底改革EVM使其更容易正式驗證或建立一個本身更容易驗證的全新語言,我們需要做更多的工作。我們需要更多的正式驗證的研究人員和開發人員。我們需要在每種可能的編程語言中使用正式的驗證庫和標準。

存儲問題(Storage constraints)

構建在公共區塊鏈上的大多數應用程序都需要某種存儲解決方案。 (用戶身份,財務信息等)。

但是,將信息存儲在公共區塊鏈數據庫中意味著數據是:

1)網絡中的每個完整節點的存儲。

2)由于區塊鏈數據庫僅附加和不可變,所以無限期地存儲。

因此,數據存儲在分布式網絡中要花費巨大的成本,每個完整的節點必須將越來越多的數據存儲到無限遠處。因此,對于構建在區塊鏈上的任何現實應用,存儲都是一個巨大的障礙。

解決方案:

有幾個早期的項目正在使用各種策略將數據拆分成碎片,并以分布的方式將其存儲在參與節點(即分布式存儲)中。這里的基本前提是,不是每個節點都存儲一切,而是有一組節點將數據相互分離或“分配”。幾個項目的例子包括:

1)Swarm:Swarm是以太坊的點對點文件共享協議,可讓您將應用程序代碼和數據存儲在連接到以太坊區塊鏈的群集節點的主區塊鏈中。您稍后可以在區塊鏈上交換這些數據。

2)Storj:一種解決方案,首先對文件和數據進行分片,加密,然后分發到多個節點,從而使每個節點只存儲一小部分數據:“分布式存儲”。然后,Storj錢幣(SCJX)用于支付存儲并充當存儲用戶文件或數據的一部分的節點的激勵。

3)IPFS:一種替代的p2p超媒體協議,提供高吞吐量,內容尋址的塊存儲模型,具有內容尋址超鏈接。從本質上講,它允許文件以永久和分散的方式存儲,同時提供歷史版本的文件和刪除重復。

4)Decent:Decent是一個分散的內容共享平臺,允許用戶上傳和貨幣化/分享他們的工作(視頻,音樂,電子書等),而不依賴于集中的第三方。用戶可以通過跳過這些媒介,以更經濟的方式訪問內容,而承載內容的節點將獲得獎勵。

節點間的一致性問題(Unsustainable consensus mechanisms)

區塊鏈是“不可靠的”。用戶不必信任任何其他人的交易。不需要信任任何其他人為用戶提供有吸引力的屬性,例如自主性,審查阻力,真實性和無許可的創新。

隨著時間的推移,一個不容易被攻擊者破壞的無信任區塊鏈被稱為“共識協議”。共識協議對于比特幣和其他區塊鏈來說并不陌生。例如,1992年,Dwork和Naor創建了第一個“工作證明”系統之一,在這個系統中,人們可以生成計算支出的密碼證明來獲取資源,而不必依靠信任。這個系統被用來對付垃圾郵件。后來Adam Back在1997年創建了一個名為Hashcash的類似系統。然后在2003年,Vishnumurthy等人第一次使用工作證明來保證貨幣的安全,除非在這種情況下,令牌不是作為一種通用貨幣,而是用來維護點對點的文件交易系統。

五年后,Nakamoto拿出了工作證明作為一種保證價值代幣比特幣的機制。這個潛在的共識機制讓比特幣成為第一個被廣泛采用的全球分散式交易分類賬。

工作量證明(Proof-of-work consensus)

工作量證明是一個由解決難以解決但易于驗證的問題組成的方案。礦工們利用他們的計算能力進行計算量大的計算,而比特幣系統獎勵那些提供新的比特幣和交易費用的解決方案的礦工。礦工的計算能力越強,他們在決定共識時就越有“重量”。

工作量證明的共識允許比特幣成為第一個真正廣泛采用的分散數字貨幣形式。它解決了“雙花”問題,不需要任何信任的第三方。然而,工作量證明并不完善,建立一個更可行的共識機制仍然需要大量的研究和發展。

什么是工作證明的問題?

1)專門的硬件有一個優勢:

工作證明的一個缺點是使用專用硬件。 2013年,被稱為“專用集成電路”(ASIC)的設備專門用于挖掘比特幣,效率提高了10-50倍。從此以后,采用普通計算機的CPU和GPU進行挖掘已經變得完全無利可圖,而唯一可以挖掘的方法就是您自己制造的ASIC或從ASIC制造商處購買的ASIC。這與區塊鏈的“分散化”本質相去甚遠,每個人都有機會為網絡的安全做出貢獻。

為了緩解這個問題,以太坊已經選擇了使其PoW算法(Ethhash)順序記憶難。這意味著算法的設計使得計算nonce需要大量的內存和帶寬。大內存要求和高帶寬要求使得即使是超高速計算機也難以同時發現多個隨機數。這降低了集中化的風險,并為正在進行驗證的節點創造了更加公平的競爭環境。

當然,這并不是說以后不會有以太坊的專用集成電路。專門的硬件仍然是PoW算法的巨大風險。

2)采礦池集中:

采礦池背不是每個用戶自己挖掘,并有一個很小的機會獲得塊獎勵,池然后發送給他們一個比例,一致的支出。采礦池的問題在于,由于網絡具有更多的“權重”,大型采礦池的回報差異比單個用戶的差異小。隨著時間的推移,一些池開始控制網絡的大部分,隨著時間的推移,集中的池集繼續獲得更多的權力。例如,現在,前五個采礦池擁有近70%的hashrate。這是很可怕的。

3)能源浪費

礦工們花費大量的計算能力來運行解決工作證明算法的計算,但不幸的是,所有這些計算工作對社會都沒有任何價值。根據Digiconomist的比特幣能源消耗指數,比特幣當前估計的年用電量為29.05TWh,占全球總電量的0.13%。為了給你一個真實的背景,比特幣挖掘現在使用(浪費)比159個國家更多的電力。

隨著像比特幣這樣的使用工作證明共識的公共區塊鏈不斷擴大,越來越多的能源將被浪費。如果公眾區塊鏈的目標是擴大到數百萬用戶和交易,那么不可持續的浪費精力和計算工作成本就不利于這一結果。

解決方案(Consensus Solutions)

1)使用proof-of-work

解決能源浪費問題的一種方法是使工作證明功能同時解決有用的問題。例如,想象一下,礦工們正在花費其計算能力來解決困難的AI算法,而不是解決工作證明所需的隨機SHA256問題。

2)Proof-of-stake

解決采礦中心化問題的一種方法是完全取消采礦,并轉向其他機制來統計每個節點的重量。這就是利益證明的目的所在。

而不是礦工投入計算能力,他們投入“股份”(即金錢)。正如Vitalik所指出的那樣,“一個CPU單位,一個單位”代替“一個貨幣單位,一票”。

Proof-of-stake?不需要硬件,因此不受上面討論的硬件集中化問題的影響。而且,由于礦工不需要花費大量的能源來計算工作證明算法的解決方案,因此證明利害關系本質上是更節能的。

但是,和其他技術一樣,沒有免費的午餐。證明算法有其自身的基本挑戰。更具體地說,這些包括:

1)Nothing-at-Stake 問題:

通過證明Nothing-at-Stake,當鏈中存在分叉時,分叉是偶然的還是惡意的,任何驗證交易的節點的最佳策略是在每個鏈上“挖掘”。他們可以做到這一點,因為他們沒有花費物理計算的努力,只有他們的美元投票。這意味著無論贏得哪個連鎖企業,礦工獲得獎勵都將獲得獎勵(即“沒有任何危險”,以防止他們在每個連鎖店進行采礦)。

2)遠程攻擊

當工作鏈上出現分叉時,一名礦工將在主鏈當前頭后面開一個分叉。礦工進一步進入鏈條,越趕上主鏈越困難,因為它需要超過一半網絡的計算能力才能做到這一點。但是,借助證明,礦工可以開始分成數千或數百萬塊,因為唯一需要的就是股份或金錢。這意味著礦工可以很容易地阻止數百萬個區塊進入一個新的鏈條,使用戶很難知道哪個區塊鏈是“正確的”區塊鏈。

3)Cartel formation:

在一個受經濟激勵制約的分權制度下,一個非常現實的風險是形成協調一致的努力和寡頭壟斷。正如以太坊研究員Vlad Zamfir所說,“Cryptocurrency非常集中。礦業權力也是如此。巨頭壟斷競爭是許多“現實生活”市場的常態。少數相對富裕的驗證人之間的協調比大量相對較差的驗證人之間的協調容易得多。在我們的情況下,Cartel formation是完全可以預料的。

為了用一種新的共識機制如股權證明來有效地替代工作量證明,我們需要一種算法來解決“無所事事”的問題和遠程攻擊問題,而不會引入新的共謀風險。

像Tendermint和Ethereum這樣的團隊已經在解決這個問題方面取得了很大的進展。 Tendermint是第一個通過為區塊鏈構建可行的股權證明共識引擎,將傳統的BFT研究調整為區塊鏈的人之一。但是,Tendermint有其自身的缺陷(另一篇文章的話題)。同樣的,以太坊在實施證券化方面也取得了很大的進展,但實際情況是,今天在現網上沒有任何東西在運行。

與工作證明不同的是,證據的證明是未經證實的,而且不太了解。了解各種設計的不同權衡需要進一步的研究和實驗。因此,強烈需要在這些早期工作的基礎上合作創建一個更高效,快速和安全的共識系統。

缺乏管理和標準(Lack of governance and standards)

毋庸置疑,公共的,分散的區塊鏈沒有中央權威或組織的決策。一方面,這給我們提供了我們所有人都夢寐以求的夢想 - 一個完全不信任,開放,無許可的系統 - 另一方面,協議沒有安全的升級路徑,沒有人負責設置和維護標準。

雖然我們肯定希望盡量保持區塊鏈技術的發展,但我們仍然需要開發者和生態系統中的其他組織共同商定新的標準,功能和升級。目前還不清楚如何在不導致至少一些集中化的情況下實現這一目標(例如“以太坊基金會”)。

例如,以太坊目前的現狀是,通常有一兩個開發者正在領導著特定的標準或功能。雖然現在這個工作,這個模型有缺陷。首先,效率不高 - 如果開發人員忙于工作,或忘記響應幾天或幾周,標準的進展就會停滯不前,無論標準對每個人都有多重要公共區塊鏈。在沒有明確領導的情況下制定標準是一個混亂的現象,并且不可能及時就問題達成共識,特別是在社區變得更大的時候。

另一種方法是讓它完全開放和分散。但是,這已經被證明是無效的,導致了多年的崩潰。

需要有一個更好的方法。

Tezos是公共區塊鏈的一個例子,其目的在于通過使用鏈上管理來創建協議內部升級的能力,盡管它仍然是一個非常有創意的概念,而且還沒有實現或被證實。

總體而言,區塊鏈治理是一個難以置信的棘手問題,在集中控制和分布式控制之間尋求平衡將是保持發展正確的關鍵。

工具不夠完善(Inadequate tooling)

充足的工具對于開發人員的工作是必不可少的,特別是如果開發人員希望有效地開展工作。

毫無疑問,當前可用于區塊鏈生態系統的開發人員工具是不可接受的。即使對于當今最經驗豐富的開發人員來說,在區塊鏈上開發功能協議或分散式應用也是一項艱巨的任務。

以下是我個人從工具生態系統中找不到的東西:

1)一個IDE,有良好的linters和所有必要的插件,用于有效的智能合約開發和區塊鏈分析。

2)一個構建工具和編譯器,有很好的文檔記錄和易于使用。

3)部署工具。

4)各種API和框架以及一些技術文檔。

5)測試框架。以太坊像松露這樣的一些工具是可以借鑒的,但是圍繞測試框架的選擇和實驗是非常需要的。我已經看到太多的智能合約在移動數百萬美元的時候完全沒有經過測試。在任何情況下缺乏測試是不可接受的,但特別是在涉及如此巨大的資金時。例如,BAT代幣銷售智能合約沒有測試套件,但這些合同被用來在24秒內收回3600萬美元。任何有理性的人都知道,如果一個合同能把這么多錢轉移,就會受到攻擊。

6)調試工具。好家伙。調試固態代碼就像在黑暗的隧道中用蒙上眼睛尋找金子。在我之前的工作中,我是在web開發中,并且能夠使用調試器逐行執行代碼,這確實是一個救命稻草。沒有這樣一個工具,甚至是遠距離的工具,在使用Solidity進行開發的時候,都是令人難以置信的,并且是無用的。我們迫切需要使工具更容易分離和診斷問題。

7)日志工具。同上。

量子計算的威脅(Quantum computing threat)

量子計算機的問題是加密貨幣和密碼學面臨的迫在眉睫的威脅之一。

盡管今天的量子計算機在解決什么類型的問題方面仍然有限,但并不總是如此。可怕的事實是,大多數流行的公鑰算法可以被一個足夠大的量子計算機有效地分解。

當我們設計和構建區塊鏈和密碼系統時,我們需要思考如何使這些屬性具有量子保護能力,這一點很重要。

Quantum-proof solutions

雖然我絕不是這方面的專家,但是我非常有限的理解是后量子密碼學研究目前主要集中在六種不同的方法:基于格的密碼術,多變量密碼學,基于散列的密碼學,基于代碼的密碼學,超馳橢圓曲線同源密碼學,以及AES和SNOW 3G等對稱密鑰量子電阻系統。

無論最終的解決方案是什么,構建量子證明的密碼解決方案都應該是最重要的。

總結

不幸的是,圍繞區塊鏈的大量思想和資金正被推向ICO。與此同時,一些研究人員和開發人員急于解決這些問題,但缺乏足夠的資源。

不幸的是,許多人在財務上被激勵來忽視這些問題 - 包括一些最有影響力的開發者和領導者。

未來一年的目標是繼續:

1)提高對這些問題的認識。

2)傾注盡可能多的時間來為這些解決方案作出貢獻。

3)幫助其他研究人員和開發人員也這樣做。

無論現在的投資環境是否成為泡沫,我都堅信區塊鏈會留在這里。作為開發者,我們只需要投入一些精力來消除阻礙主流使用的障礙。我們需要投資者尋求和資助這些努力。


本文由? ? ?Copernicus團隊 冉小龍 翻譯,轉載無需授權

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 區塊鏈技術的典型應用 1 偉大的開拓者-比特幣 1) 比特幣產生 2008年,中本聰(Satoshi Na...
    yrm23閱讀 6,358評論 0 23
  • 一、快速術語檢索 比特幣地址:(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串...
    不如假如閱讀 16,066評論 4 87
  • 給大家分享一下我的故事,我從小是一個好奇心很重的孩子,在當時互聯網還沒發展起來的背景下,我只能通過看書來滿足自...
    慵懶的面包閱讀 152評論 0 0
  • 其實今天不是我生日,卻收到了很多的生日祝福,那就當生日來過吧,開心就好,哈哈。我是個撿了便宜就偷著樂的孩子。 上午...
    麥穗成長記閱讀 477評論 0 51
  • 初級?? ??? ??? ???? ??? ??? ??? ??? ???? ??? ??? ??? ???? ?...
    三爪菇閱讀 267評論 0 0