《大咖說》:如何解決區塊鏈交易效率之痛?
對話 | 大咖
大咖
陳凱,資深開發,中國科學技術大學碩士。曾就職於中國航天和用友集團。具備豐富的服務高併發開發經驗,曾經開發的IO/">NIO系統在用友集團實現了百萬級TPS訪問的混合商務管理平臺。
作為核心人員,陳凱參與了開發完全自主可控的TPM可信計算服務平臺,並對Ethereum和Eos的相關專案具有深刻的見解。

我們知道,制約區塊鏈商業落地的一大難點就是區塊鏈專案的效率瓶頸,比特幣網路的日常擁堵和高額的手續費越來越背離中本聰最初的設想。
為了提高交易效率,無數人貢獻出各種各樣的解決辦法,有什麼辦法是可行的呢?
以下是陳凱先生帶來的分享。
一、分片背景
目前,大多數區塊鏈都面臨可擴充套件性問題,大家都在努力提升TPS(每秒交易量)。就拿主流的比特幣和以太坊來說,比特幣每秒只能進行大約7筆交易,以太坊每秒大概7-15筆。
首先,這樣緩慢的TPS很容易造成網路擁堵,使區塊鏈在高價值高併發的業務領域無法落地。比如以太坊的加密貓和Fcoin事件,一款產品的爆紅,就能導致以太坊網路堵塞,交易確認異常緩慢等。
其次,由於TPS併發太低,導致交易費用高、確認時間長、擴充套件性差,長此以往,社群可能會產生分裂,硬分叉成為常態,對行業產生巨大的不利影響,比如最近的BCH硬分叉事件,導致市場價值全線下挫。
二、分片技術,是救命稻草嘛?
為了解決上述問題,區塊鏈開發人員提出了很多方案,比如增加區塊大小 、鏈下交易、有向無環圖、分片等,理論上講,這些方法都是可行的,這裡主要介紹分片技術。

分片源於傳統的資料庫技術,將大型資料庫分割成多個碎片部署到不同的伺服器上。
在區塊鏈中,將整個網路節點分成很多小的網路,每個小網路執行更小範圍的共識協議。交易被分割到不同的網路處理,這樣就能並行處理大量驗證工作。
簡單的講,分片就是將大任務分成多個可並行處理的小任務,從而提升整個鏈的效能。
在我看來,分片是一個比較好的解決問題的方案。比如以太坊曾要用來解決問題,遺憾的是,受限於共識機制等,直到現在以太坊也沒把這件事落實。
三、我最近研究的分片方法
分片架構圖:

M ain chain主鏈 ,主要提供註冊和驗證功能。註冊功能主要針對節點註冊,將節點通過相應演算法新增到分片中。驗證功能主要驗證來自不同分片的交易頭資訊, 只有主鏈驗證通過以後 ,分片交易才能確認打包。
每個主鏈節點都會維護一個待確認佇列,分片將需要確認的交易頭廣播到主鏈每個節點的待確認佇列中。
主鏈目前採取的是 輪詢制 ,通過計算所有節點的可信狀態,從可信節點中選出一個驗證者,在一段時間內,該驗證者從待確認佇列中獲取需要驗證的分片頭資訊, 主要驗證簽名是否合法,交易信息的hash是否符合鏈的連續性,時間是否符合特定時間段 等。
當驗證時間段結束或者達到特定的交易數, 驗證者 返回驗證資訊,並將驗證通過的交易打包出塊,同時更新狀態,並廣播當前最新狀態。接著選出下一位驗證者,開始進行驗證。
只有少數高信任值的節點才能充當驗證者,當然,為鼓勵這些節點,他們也會得到更多的激勵。

Sharding分片 ,支援多種型別的分片系統,儲存管理部分使用者的狀態資料,維護獨立的狀態機,是合約的執行者。而合約執行的決定者,則由proposer、attester和main chain共同擔任。
此外off-chain主要支援鏈下快速交易,使用者可以鎖定部分賬戶金額,在鏈下通過簽名等加密手段進行交易。當用戶申請結束鏈下交易時,off-chain會自動同步鏈下交易資訊。
每條分片上都會有proposer, 僅用來 收集 該分片的交易資訊,分片資訊包括了header和transaction資訊,proposer將這些資訊構造成shard blockshard block結構。
Attester(可以稱作驗證者) ,一般由信任度非常高的節點擔任,主要用來校驗shard block中的transaction並進行投票簽名。為了避免惡意節點過多,每隔一定隨機產生的時間間隔(稱之為slot),attester便被分配到不同的分片。
以下為攻擊者在N個節點內,獲取p%的節點許可權時,能發起51%攻擊的可能性。

Attester接受到驗證某個分片任務以後,開始驗證分片中proposer收集的shard block,並達成BFT共識以後,才能產生main block(就是主鏈校驗的內容),然後將main block廣播到主鏈的待校驗佇列中。
如果期間發現有任何attester作惡,會立即取消其驗證者資格,並重新選擇新的驗證者。
四、分片技術的未來
分片技術難度較大,目前大部分的分片專案離商用還有很大距離。就拿以太坊來說,分片技術一直在迭代更新,上線時間卻一再推遲。
從專案可落地角度看,目前個人覺得可以將DAG作為突破口,結合我們現有的可信計算,根據可信值選出一定數量的節點,通過這些節點來加快DAG確認速度以及解決雙花等問題。
我認為,分片技術目前還處於起步狀態,由於市場的浮躁,導致現在很多創業者盲目的加入到分片技術的創業中,簡單的分片技術一味追求高TPS,而忽視了安全等問題,這樣反而阻礙了技術的發展,分片技術的發展依然任道而重遠。