Ultrain:區塊鏈技術本質架構與發展方向

買賣虛擬貨幣
作者簡介:Ultrain資深技術專家 Raymond,前摩托羅拉高階軟體開發工程師,曾於近期發現EOS底層可導致EOS全網宕機隱患的致命安全漏洞,並將問題及修復方法提交至EOS,獲其官方致謝。自比特幣誕生起,區塊鏈技術發展至今十年有餘,不斷吸引資本與技術的關注並保持熱情不退,大量資金與技術研發的持續投入推動著該技術的快速發展與演進,尤其是隨著近幾年區塊鏈技術的落地生根,區塊鏈成為繼網際網路之後重大技術變革的商業期望正開始逐步實現。正如網際網路在各行業的應用與融合,人們相信區塊鏈技術的去中心化、賬本的不可篡改等特性亦可對傳統行業產生顛覆性革命,區塊鏈從業者開始探尋傳統行業與區塊鏈技術的結合,從而產生了跨境結算、供應鏈金融、數字資產確權、版權存證、商品溯源等落地應用。本文將嘗試從區塊鏈技術本質、技術架構、發展方向三個角度對區塊鏈技術進行剖析,揭開區塊鏈技術的神秘面紗,探索真正能夠給傳統行業帶來價值的商業落地場景。區塊鏈技術本質

區塊鏈不是萬能的,只有理解了區塊鏈技術的本質,才能去偽存真,發掘適合區塊鏈技術優勢的應用場景,真正為傳統行業創造新的商業價值。區塊鏈的技術本質,其最核心的有如下三點:

· 去中心化平臺帶來的天然信任

區塊鏈技術與生俱來的天然信任,既不是各種共識演算法賦予的,也不是隻能增加不能修改的公共賬本技術帶來的,而是來自於平臺不受任何單一主體控制,人人可隨時參與隨時退出的特質。分散式儲存、點對點網路以及各種共識協議等軟體技術,都是為了使去中心化的平臺能正常執行。平臺執行結果由平臺參與者達成共識形成。同樣,對這個平臺的修改更新,也要求平臺參與者達成共識。套用“流浪地球”的一句臺詞,在區塊鏈時代,共識是比鑽石還珍貴的東西。

區塊鏈的天然信任還依賴於其所執行軟體的開源特性,任何人都可以檢查原始碼,編譯執行成為平臺的一個節點,參與平臺的執行。去中心化軟體技術帶不來天然信任,信任來自於這個開源的執行平臺不受任何一方控制,任何一方不能隨意修改系統執行結果,不能隨意修改軟體功能。

Ultrain超腦信任計算聯合創始人&CEO郭睿曾經在講解Ultrain經濟模型的直播中舉過阿里巴巴平臺打假的例子:阿里巴巴每年投入鉅額資金進行打假,但公眾仍舊可以想象打假只是走過場,象徵性做個別案例,然後利用假貨獲取更大的利益。阿里巴巴沒有辦法自證清白,本質原因就是阿里巴巴的執行平臺是他們自己控制的,系統資料是他們自己提供的;單一實體運營的中心化的平臺沒有辦法具有去中心化平臺與生俱來的天然信任機制。

· 原生的通證機制

比特幣為什麼會成功?從技術上說,比特幣所用到的技術包括點對點網路,各種加密演算法等都不是新技術,在它之前也有很多電子貨幣/加密貨幣的失敗嘗試,很顯然技術不是其成功的本質原因。比特幣的成功可以歸因於其良好的經濟激勵機制設計——區塊鏈的原生通證機制。其作用可分為兩方面,一方面通證機制可以為區塊鏈系統引入經濟博弈,保證系統的良性運轉;另一方面,也將區塊鏈打造成了價值分配轉移的最佳載體,使其被認為是與資訊網際網路相對應的價值網際網路。高曉松一次在清華大學的分享中曾經以區塊鏈通證機制對音樂行業的改造為例,描述了通證將音樂的權益無限細分,從而引入更多參與方,形成各種新的商業機會的場景。

業界也有專業的通證經濟研究學派,從實現數字資產的通證化,到現實世界資產通證化,再到公司的激勵組織形式變革,給通證經濟構建理論支撐,描繪了區塊鏈與各行各業結合后豐富的應用前景。

這裡有必要對聯盟鏈做一下特別說明:聯盟鏈沒有通證機制,它是許可機制,節點入網需稽覈批准,使用鏈外的激勵機制而不需要設計複雜的經濟激勵模型。聯盟鏈節點數量有限,相當於多中心化系統。

· 智慧合約使能信任計算

比特幣初始定位於點對點的電子貨幣系統,只支援比較弱的指令碼處理能力,侷限於金融業務邏輯。以太坊開始支援智慧合約,使區塊鏈平臺能執行圖靈完備的程式語言,從而可以實現價值平滑轉移,支援複雜業務邏輯,提供信任計算能力,開啟了區塊鏈的新時代。智慧合約使能了眾多商業場景,從遊戲、溯源、存證、能源交易到供應鏈金融等領域,都有比較廣泛的應用。這些應用場景或利用區塊鏈賦予的天然信任機制,或利用區塊鏈的通證機制,創造了新的商業模式,帶來了新的商業價值。

目前區塊鏈的處理效能與中心化系統還有差距,智慧合約的編寫也很容易引入安全漏洞,一定程度限制了智慧合約的應用。但這些都是新技術發展的必經階段,業界也在努力解決這些問題,更多的落地場景也逐步湧現,推動區塊鏈產業一步步走向繁榮。

區塊鏈的技術架構

區塊鏈領域涉及的技術比較廣泛,業界已經有很多的文章講述相關的加密技術,共識演算法等具體知識,結合眾多的開源專案,對技術人員來說可以很方便地切入該領域。本節嘗試從整體架構層面,描述各個模組相對關係,幫助大家建立一個整體認識。

儲存層:

區塊鏈平臺執行所產生的區塊資料,狀態資料等需要儲存到檔案系統和資料庫系統中。區塊資料儲存了具體的交易資訊,其中需要利用默克爾樹,非對稱加密等技術實現資訊摘要與簽名,保證資料的完整性和一致性。狀態資料一般儲存到資料庫中,也稱之為世界狀態,其中會包括系統執行引數,已註冊帳號以及使用者的智慧合約位元組碼以及合約中儲存的業務資料等資訊。

區塊鏈執行平臺可以理解為一個分散式的狀態機:所有節點從同一個創世狀態開始,依次執行達成共識的區塊內的交易,驅動各個節點的世界狀態按照相同操作序列(增加,刪除,修改)不斷變化,實現所有節點在執行完相同編號區塊後,世界狀態完全一致。一個新節點加入網路,如果是作為一個全量節點,就需要從網路中其他節點同步所有歷史區塊資訊,驗證區塊的正確性,並依次執行區塊內儲存的交易重構出世界狀態,直到與網路上其他節點區塊高度一致時,才完成了同步,可以與其他節點一起繼續進行新區塊的共識挖礦。

網路層:

點對點網路主要功能包括實現網路拓撲,互動共識協議資訊以及廣播/接收交易和區塊資訊等。一個新的節點依賴與種子節點的互動,實現網路鄰居節點自動發現與組網,形成去中心化網路拓撲。不同的共識協議,會有不同的協議相關網路資料包,完成共識過程。網路中的大部分資料包文,是交易和區塊資料包。一個節點接收到使用者交易時,會廣播到網路中並儘量傳播到各個節點。一個節點生產出來的區塊,也要求儘快傳播到各個節點。比特幣初始設計區塊大小1MB,出塊時間間隔10分鐘,就是為使各個節點儘可能接收到其他節點廣播的區塊,減少分叉區塊的產生。

在區塊生成時間間隔一定的前提下,一個區塊中包含的交易越多,系統的處理效能就越高。但一個區塊能夠包含多少交易,一方面取決於節點CPU的處理效能,另一方面取決節點的網路頻寬。一個區塊內包含的交易執行總時長有限,CPU處理效能越高,能包含的交易就越多;網路頻寬的吞吐能力也是限制區塊大小的一個因素,網路層需要儘量在下一個區塊生產前將當前區塊廣播至全網,因此節點的網路頻寬越高,區塊的大小就可以越大,能包含的交易就越多。這裡所說的節點的CPU處理能力和網路頻寬,要考慮全網所有節點,實際上受限於效能最差的節點。

共識層:

區塊鏈的共識,就是利用一定協議機制使所有節點對接下來要生產出的區塊達成一致(即區塊內應該包括哪些交易)。我們可以想象成一個投票場景,每人都可以提出自己的建議,並且爭取拉到足夠多的投票。投票權的分配要能夠抵抗女巫攻擊,就是說不能使單一主體控制大量選票。在現實世界,我們可以按照選民身份賦予每個人投票權;在數字化世界的中心化系統中,我們利用序號產生器制(包括手機號,驗證碼,手持身份證照片,活體檢測等技術手段)提高單一主體獲得大量選票的門檻;在去中心化的區塊鏈領域,沒有了身份識別機制,採取包括工作量證明PoW,權益證明PoS,委託權益證明DPoS,各種PoX(PoET,PoA等)以及VRF類演算法等方法分配投票權。

PoW要求節點找到一個數值使區塊雜湊值符合要求,在尋找該數值過程,節點需要投入大量算力。節點找到了滿足要求的數值,就獲得了投票權,並同時提出了自己建議的區塊(PoW不需要投票環節,先獲得投票權的節點提議的區塊為共識區塊);PoS/DPoS利用節點抵押的代幣權益結合其他因素分配投票權,並結合BFT投票確認環節,選擇共識區塊;VRF類演算法則依賴密碼學,數學隨機數等技術分配投票權,經過BFT投票確認選擇共識區塊。

智慧合約層:

各個公鏈採用不同的程式語言進行智慧合約編寫,比如以太坊的Solidity,EOS的C++,Ultrain的typescript等。智慧合約編譯為位元組碼,並打包進交易資訊上鍊進行儲存。各個節點接收到區塊後,提取其中包含的交易資訊,將位元組碼載入到虛擬機器執行,執行結果反應到世界狀態中。上鍊的位元組碼與開源的智慧合約,可以進行一致性校驗,從而保證節點實際執行的位元組碼與開原始碼所顯示業務邏輯一致,提供公開透明的信任能力,使能需要信任計算的商業場景。需要指出的是,目前出於安全形度考慮,將智慧合約完全開源後會極大降低駭客攻擊門檻,真正開源智慧合約的專案並不多。

共識層一般稱為Layer 1,智慧合約層稱為Layer 2(因此儲存層和網路層可以認為是Layer0)。有很多專案在Layer 2智慧合約層進行創新,比如閃電網路,去中心化交易所,跨鏈機制等。

應用層:

各個公鏈的商業生態建設可以類比為谷歌的Android生態建設:公鏈專案方類似谷歌角色,提供軟體平臺;礦機生產商類似手機硬體生產廠商,提供軟體執行硬體平臺;公鏈上層的豐富應用,也稱之為DAPP,類似Android的平臺豐富的APP。公鏈專案方將軟體平臺研發出來,還需要提供開發工具,舉辦活動等來吸引開發者為公鏈開發DAPP,打造一個繁榮的生態。現在執行在公鏈上的DAPP以遊戲,溯源,交易所等為主。遊戲利用區塊鏈的公開透明機制,可以將核心業務邏輯執行在區塊鏈平臺以示公平;溯源等應用則主要是將相關流轉資訊記錄在區塊鏈平臺,利用其不可篡改特性,供使用者進行全生命週期歷史資訊查詢,比如有貨高階運動球鞋交易資訊在Ultrain公鏈上的溯源應用。公鏈上執行的DAPP質量好壞,數量多寡,也是該公鏈是否健康發展的一個重要指標。

需要指出的是,區塊鏈技術架構的分層只是方便理解而進行的邏輯層面劃分,大部分專案還是緊耦合的單體軟體形式。隨著區塊鏈技術的發展,已經有專案開始支援模組化開發,比如支援更換網路模組、共識模組等。

區塊鏈的技術發展方向

區塊鏈在資本和技術的推動下迅速發展,落地場景越來越多,已經開始切實為傳統商業帶來價值。但區塊鏈技術本身還有效能低下,隱私保護不足,安全問題頻出,缺乏有效治理手段等問題。本節嘗試描述區塊鏈技術的幾個重點發展方向。

· 可擴充套件性提升

比特幣的效能約為3~7TPS,以太坊約為7~15TPS,而中心化系統比如信用卡平臺2KTPS,業界標杆淘寶的雙十一處理能力約為30W TPS。許多公鏈專案努力提升區塊鏈可擴充套件性,主要包括如下思路:

共識機制:

比特幣的工作量證明機制,為保證區塊的網路傳播時間,區塊大小限定為1M,並調整雜湊計算難度,控制出塊時間間隔保持在10分鐘左右,造成其效能比較低。以太坊的GHOST協議利用叔塊的工作量證明,提高了出塊率,一定程度提高了處理效能。EOS的DPOS則犧牲去中心化程度,21個得票最高的超級節點按照順序出塊,每0.5秒生成一個區塊,每個節點連續出12塊,提高了出塊效率。Ultrain採用的共識機制兼顧去中心化與出塊效率,每輪利用數學隨機數演算法選擇出塊節點,投票節點,出塊節點提議的區塊得到大多數投票節點的認可,即可生成區塊。

DAG結構:

比特幣每次只選擇一個區塊延長主鏈,為減少分叉區塊限定了出塊頻率,一些專案採用DAG結構,實現可擴充套件性提升。比如Conflux專案改變每次只選擇一個有效區塊的方案,利用DAG結構將非主鏈有效區塊按照EPOCH概念維護起來,首先確定所有有效區塊的順序,再確定區塊內交易的順序,提高了處理效能。

分片分組:

目前區塊鏈系統中每個節點儲存全網狀態,處理全網的交易,處理效能受限於網路中效能最差的節點。分片分組就是按照一定規則將節點進行分組,整個系統分成若干個相對獨立的分片,單個分片只處理部分交易甚至只儲存部分狀態,多個分片並行處理,提高系統的處理效能。但分組分片後會帶來安全性下降,跨片交易處理複雜等問題:比如網路有1000個節點,發動51%攻擊需要控制510個節點;但是分為10個分片之後,單個分片只需要控制51個節點即可發動攻擊。Zilliqa基於PoW結果隨機分配節點到不同分片,防止單個分片做作惡者控制;Ultrain按照一定策略將全網節點隨機排程到不同分片,利用世界狀態實現節點快速啟動,既保證了系統的安全性,又提高了系統處理效能;Monoxide則提出連弩挖礦概念提高單個分片的有效算力抵抗攻擊。跨片交易發生時,片與片之間按照同步或者非同步方式協助執行分片交易,會增加通訊成本,極限情況甚至會使系統效能低於分片之前。Zilliqa交易型別將交易分片分配,Monoxide則將交易中的原子操作分成多個,透過非同步訊息傳遞完成交易接力執行。

側鏈跨鏈:

側鏈透過將部分操作轉移到側鏈以解決主鏈的效能瓶頸,比如Plasma區塊鏈,其為樹狀結構,每個分支為一條子鏈,子鏈區塊頭的雜湊值提交到根鏈,根鏈只需要處理子鏈的少量提交,使根鏈交易負荷有效降低。跨鏈概念則更廣泛一些,鏈與鏈之間實現資產、狀態等跨鏈轉移交換,比如跨鏈專案Cosmos,其網路由 Hub/樞紐與Zone/分割槽兩部分組成,分割槽之間透過樞紐進行交易,並可以將交易轉移至鏈下進行從而減輕鏈上交易處理壓力。

層二方案:

前面介紹的效能提升手段一般稱之為Layer 1解決方案,還有一大類為Layer 2方案,即在智慧合約層利用一定機制實現鏈下執行交易,僅在必要時候才將交易廣播到網路中,實現吞吐量的提升。比如比特幣上最近比較火熱的閃電網路,其主要思想是建立雙向支付通道,利用雜湊時間鎖定和雜湊金鑰鎖定,讓雙方在通道內反覆任意多次交易,最後通道關閉時再將初始和最終餘額資訊廣播到比特幣區塊鏈。

· 系統安全

區塊鏈因為其價值網路的特殊性(攻擊成功可以很快變現),頗受駭客青睞,安全事件頻發。按照慢霧科技統計,僅ETH和EOS累計歷史攻擊數字貨幣損失額就高達40億美元。一個公鏈專案工程複雜度極高,需要考慮各個層面的安全問題,比如礦機層面涉及的主機系統安全,暴露埠安全,金鑰儲存安全,網路拓撲規劃,最優系統配置等;共識演算法層面需防範相關的51%攻擊、無利害攻擊,長程攻擊等;智慧合約層面的安全則更是重中之重。一方面智慧合約語言最佳實踐不完善,另一方面DAPP開發專案方經驗不足,程式碼實現互相借鑑,駭客發現的一個漏洞可以攻擊很多DAPP。智慧合約中隨機數生成也是一個重災區,專案方使用的隨機數演算法有漏洞,駭客可以提前預測其數值,穩定獲取收益。

公鏈專案方需提升公鏈軟體本身安全性,並需提供礦機部署安全配置建議,智慧合約開發最佳實踐等指導資訊;公鏈專案方也可以提供安全相關合約中介軟體給開發者使用,比如Ultrain提供了隨機數生成中介軟體,可以幫助DAPP專案方有效抵禦隨機數相關攻擊。此外,目前也有一些專注於區塊鏈安全的公司,提供程式碼安全審計,形式化證明等服務為區塊鏈的安全保駕護航。

· 隱私保護

比特幣構建了一個去中心化平臺,去除了對第三方的信任依賴,但需要將所有的交易廣播到網路上,透過所有節點達成共識來保證系統的安全性。攻擊者透過分析特定地址的交易特徵並結合一些實際資訊,就有可能得出交易地址與實際人的對應關係,從而給使用者的隱私帶來極大隱患。另外也有一些業務場景要求將區塊鏈的鏈上資料進行加密,不允許公開訪問,比如企業間的具體交易資料,病人的隱私資料等。利用密碼學技術,實現不洩漏資料本身即可進行某些資料運算,使對方完成資料的完整性與真實性的校驗,相關技術有多方信任計算,同態證明,零知識證明等。隨著區塊鏈技術發展普及,商業落地場景中隱私保護需求會越來越多。隱私保護方面,Ultrain公鏈已經提供零知識證明中介軟體供開發者使用。

· 現實世界資料通道

區塊鏈世界利用去中心化執行平臺帶來天然信任,但是該信任只侷限於鏈內資料。許多商業場景的落地,都需要智慧合約與鏈外資料進行互動。如何實現資料上鍊環節的信任機制,成功連線現實世界與區塊鏈世界,這就需要用到預言機技術。預言機是現實世界與區塊鏈世界的橋樑,是為區塊鏈世界提供資料的中介。但預言機只是作為資料來源與區塊鏈之間的安全可信的資料通道,只保證資料不被篡改,無法保證資料來源的正確性。使用者可以獲取多個資料來源的資料,在應用層對這些資料進行聚合,得到最終的結果。預言機的實現包括中心化方式,如以太坊上執行的Oraclize,資料是由Oraclize公司架設的伺服器提供;去中心化方式,如近期與Ultrain達成戰略合作的DOS Network。預言機透過安全的資料通路和多資訊源對比技術,一定會促進越來越多的應用場景落地,在區塊鏈生態中的發展扮演越來越重要的角色。

區塊鏈技術仍在迅速發展,相關生態建設也在各方努力下不斷向前推進,區塊鏈技術商業落地應用不斷湧現,對區塊鏈技術能否成為新一代商業基礎設施,我們充滿期待。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;