1.多鏈架構
INSEE鏈是一個特定於視覺內容應用程式的側鏈,平行於主鏈執行,在這種情況下,主鏈就是以太坊。它的規則集是基於用例自定義的,其安全性由主鏈的共識演算法維護。INSEE包含一條主鏈和多條附加在主鏈上的側鏈,如圖1所示。INSEE和傳統的單鏈系統最大的不同是它是一個分支生態系統,主鏈作為整個系統的主幹透過橋接和多條側鏈關聯(甚至可能包含多級側鏈)。
INSEE多鏈特性:
1.執行在INSEE鏈上的DApp是民主的
想要支援某個DApp並擁有投票權的使用者可以在該側鏈上執行自己的節點。這意味著如果內容開發者釋出了一個使用者不同意的更新,他們可以配置他們的節點來拒絕升級並分叉離開。
2.執行在INSEE鏈上的DApp是可擴充套件的
由於在一個側鏈上發生的所有交易都是特定於它的DApp的,所以它可以執行一個共識演算法來最佳化那些特定內容型別的交易。
3.在INSEE鏈上執行的DApp資料是公共的且可共享的
在Insee鏈中,執行一個節點會為它的使用者提供來自特定內容側鏈的從創始塊開始以來所有資料的完整副本。這種可共享的公共資料也允許了進一步的創新和開創全新概念,例如兩個不同的直播可以共享相同狀態。
4.在INSEE鏈上執行的DApp資料是安全的
攻擊者在攻擊某個區塊鏈時,其中考量的一定是攻擊成本和收益的平衡。例如與審查一筆金融交易相比,透過審查一則推文獲得的收益要少得多,這一般會阻止惡意行為;還有如果在儘管獎勵很少的情況下,一個攻擊者成功攻擊了社羣,社羣可以在一個較早的時間點自由地分叉,走自己的路,類似於在DAO入侵之後以太坊分裂成以太坊和以太坊Classic。
2.系統架構
INSEE作為一個高效能的面向視覺內容領域的DApp開發平臺,系統架構如圖2所示。INSEE從共識到智慧合約,提供了適合不同場景的各種演算法供使用者選擇,也使得開發者可以很方便的根據自己的業務需求定製自己的智慧合約。
INSEE的多鏈架構提供了發行資產的支援。不同主鏈的資產透過INSEE提供的錢包可以自由在整個INSEE網路裡流通。
基於INSEE的跨鏈協議,其他公鏈的資產也可以接入到INSEE主鏈並流通。跨鏈協議打破了目前各個區塊鏈專案之間的隔離,成為了連線各個區塊鏈橋樑。
3.共識機制
INSEE是一個多鏈多共識的結構,每一條鏈都是一個主鏈,在主鏈上可以選擇自己的共識機制,每條鏈之間並沒有主次關係,但所有主鏈都會依靠一個主幹鏈。對於不同的側鏈,使用者可以根據需求選擇不同的共識演算法,並透過外掛的方式進行配置即可;如果某個使用者覺得某個共識演算法比較好,適合他的DApp應用,實現遵循介面規則,就可以把使用者自定義的共識演算法加入INSEE裡面去,目前我們支援的共識演算法有POW、POA以及Tendermint。
INSEE鏈在早期我們將採用POW+Tendermint,POW透過以太坊網路保障交易資訊的安全性。使用Tendermint共識演算法來建立一個結合速度,安全性和成本效益的智慧合約公 共網路。核心是能夠讓個體使用Tendermint協議去建立相比於POW協議速度更快,成本更低的智慧合約平臺。另一個關鍵是基於以太坊協議的規則建立區塊鏈之間的網橋,使得不同協議種類(比如POW和Tendermint)的區塊鏈之間擁有互動性和連線性。
同時我們將不斷積極探索共識機制演變的可能性。但就目前而言我們更加傾向於側鏈系統和跨鏈機制來增加Insee的可拓展性。在系統框架上我們使用POW+混合共識(早期多為POA和DPOS或Tendermint)的方式能夠讓各大場景的應用靈活地透過sdk接入我們的生態網路當中。如POA配置如下圖3所示。
Tendermint是一種拜占庭容錯(BFT)共識引擎,具有抵禦雙花攻擊的魯棒性,並且可以抵禦網路中至多三分之一的破壞者的攻擊。同時Tendermint對傳統的三輪共識過程做了最佳化,只需要兩輪(prevote,precommit)即可達成共識,因此速度可以和DPOS共識演算法媲美。Tendermint部分程式碼實現如圖4所示:
4.服務分片
微服務的主要目的是有效的拆分應用,實現敏捷開發、部署和水平擴充套件。基於微服務架構,應用非常容易水平擴充套件,在系統負載上升時,可以透過增加伺服器的方式增加節點的處理能力。對於系統中的熱點賬戶,甚至可以使用專門的伺服器提供服務。
INSEE的服務分片主要是指把一個全節點服務拆分成多個內部服務節點,如圖5所示。這些服務節點主要包括狀態儲存及塊儲存服務節點(Chain);資料介面訪問服務節點(Jsonrpc);共識協議服務節點(Consensus);使用者許可權和認證服務節點(Auth);對等網路服務節點(ANetwork);合約執行服務節點(Execute)。
對於一個全節點來說,大部分的負載是在合約執行服務節點上,鑑於此,可以把合約執行服務節點再進行拆分狀態儲存節點和evm合約執行節點,Evm合約執行節點可橫向擴充套件。
5.智慧合約
為了方便開發者基於INSEE開發符合自己需求的智慧合約,我們不僅支援以太虛擬機器(EVM)同時也支援WebAssembly引擎(WASM)。
以太坊虛擬機器已經被用於大多數現有的智慧合約,並且可以在 Insee系統區塊鏈上使用;WASM是構建高效能Web應用程式的新興Web標準,透過少量適配就可以被明確定義和沙箱化。WASM的好處在於業界廣泛支援,因此可以用熟悉的語言開發開發智慧合約,例如Rust或C++。
6.賬戶模型
為了方便開發者基於INSEE開發符合自己需求的智慧合約,我們不僅支援以太虛擬機器(EVM)同時也支援WebAssembly引擎(WASM)。
7.身份驗證與授權服務
Insee中的參與方根據身份可分為記賬節點、開發節點以及普通節點;其中記賬節點是區塊鏈服務的提供者,開發節點和普通節點是區塊鏈的消費者;這裡的開發節點主要是指使用Insee鏈開發DAPP的開發者;而普通節點主要是指使用執行在Insee鏈上DAPP的使用者。
Insee的記賬節點准入原則是社羣共識加代幣抵押;在Insee鏈開發DAPP應用,需要向Insee社羣申請授權;普通使用者只有使用DAPP的許可權。Insee是透過智慧合約的方式來對許可權和使用者進行管理。
8.跨鏈橋接
INSEE前期支援的橋接合約主要作用是在兩個基於乙太網協議的區塊鏈之間傳遞資訊,我們可以將一個以太坊主鏈上的以太幣轉換成在側鏈網路上相同數量的ERC20代幣。在未來,可以實現異構區塊鏈網路協議之間的訊息和價值交換。
兩條獨立的公鏈如果想要進行跨鏈的資產交易,首先需要對使用者達成共識,即在一個公鏈上的地址轉移到另外一條公鏈時需要雙方都對對方的公鏈先進行註冊。
Deposit:使用者在側鏈上鎖定一定量的應用幣,觸發器就會自動在主鏈和應用側鏈之前觸發交易,以實現代幣在主側鏈之間的轉移,最終會在主鏈上增加相同的ERC20代幣。Token資產從側鏈轉移到主鏈的流程如下圖所示:
Withdraw:同理的,如果使用者想把主鏈上的ERC20代幣轉移到應用鏈上,只需要在主鏈上鎖定一定量ERC20代幣,而觸發器會自動觸發交易,認證簽名等資訊,一切確認無誤後,就會在側鏈上增加相同的應用幣。
Token資產從側鏈轉移到主鏈的流程如下圖所示:
其它資料在主側鏈間轉儲也類似,透過Dapp封裝並對使用者隱藏,使用者感覺不到其中實現細節,只需把關注應用本身即可。
9.儲存及CDN
在內容儲存層Insee的技術團隊為INSEE設計了獨特的分散式儲存協議,包括區塊儲存和狀態儲存。在儲存層的設計中,INSEE引入了圖資料庫的思想,來更便捷的滿足現實世界多樣性資料儲存的需求。同時我們將共識機制、資料結構、計算機構及智慧合約進行分離。
從而實現每個DAPP內生的價值共識和執行經濟系統的合約能夠更高順暢的執行以及更有機地與主鏈網路進行互動。
由於狀態鏈中每一個快照塊都需要儲存所有賬戶的狀態,耗費的儲存空間非常大,因此需要對快照鏈進行壓縮。壓縮狀態鏈儲存空間的基本思路是利用增量儲存:一個快照塊只儲存相比於前一個快照塊發生變化的資料。如果一個賬戶在兩個快照之間沒有發生任何交易,則後一個快照塊不儲存該賬戶的資料。要恢復快照資訊,可以從前向後依次遍歷快照塊,將每一個快照塊中的資料覆蓋到當前的資料上即可。如圖5所示
CDN是一個由代理伺服器及其資料中心組成的區域性分散式網路。在INSEE,儲存礦工為儲存資料付費給分佈礦工,使其成為付費的代理伺服器。去中心化網路的區域性分散式本質使全球礦工都能參與。然而並不是所有的礦工都有足夠的頻寬能實現高畫質影片流。INSEE將建立一個演算法市場,將使用者和礦工直接對接,使他們能直接協商合約,以實現透過離終端使用者最近的代理伺服器為他們輸送高質量影片。
INSEE將在儲存礦工提供的商用硬體基礎之上,使用名為Case的分散式檔案系統。這是一個具有可拓展性,容錯性的分散式儲存系統,並與許多共時資料應用緊密協作。影片一貫都是以單一檔案形式儲存,容易出錯並難以傳輸。為了改善這個問題。Case將檔案分割成可播放的片段並分散式儲存在儲存礦工們提供的儲存網路上。Case的想法很大程度上受到現代分散式儲存巨大進步的啟發,例如極具可擴充套件性的HDFS。
INSEE前期的視覺內容資料主要是透過IPFS來儲存。
10.AI
區塊鏈服務允許個人之間直接互聯、共享和交易,這對人工智慧獲取需要的資料至關重要。區塊鏈可以透過經濟激勵讓更多人以貢獻資料的形式參與到AI的訓練和開發中。這樣人工智慧開發人員將省去大量尋找資料的時間,從而提高資料共享的效率.透過區塊鏈的安全特性,來保證人工智慧所獲取的資料安全;同時透過區塊鏈的經濟激勵機制鼓勵AI開發人員開發基於影象處理、音影片識別等智慧合約。INSEE將透過側鏈向INSEE整個生態提供人工智慧合約服務,以提升INSEE區塊鏈網路的智慧水平以及價值流通效率。
11.零知識證明
零知識證明(Zero—Knowledge Proof),是由S.Goldwasser、S.Micali及C.Rackoff在20世紀80年代初提出的。它指的是證明者能夠在不向驗證者提供任何有用的資訊的情況下,使驗證者相信某個論斷是正確的。零知識證明實質上是一種涉及兩方或更多方的協議,即兩方或更多方完成一項任務所需採取的一系列步驟。證明者向驗證者證明並使其相信自己知道或擁有某一訊息,但證明過程不能向驗證者洩漏任何關於被證明訊息的資訊。大量事實證明,零知識證明在密碼學中非常有用。如果能夠將零知識證明用於驗證,將可以有效解決許多問題。INSEE引入零知識證明主要用於使用者隱私資訊的保護。
關於更多INSEE資訊:
更多區塊鏈專案:http://www.qukuaiwang.com.cn/news/xiangmu
風險提示:區塊鏈投資具有極大的風險,專案披露可能不完整或有欺騙。請在嘗試投資前確定自己承受以上風險的能力。區塊網只做專案介紹,專案真假和價值並未做任何稽覈!