Nano:小而美的區塊鏈設計

買賣虛擬貨幣
區塊鏈技術在發展的過程中,逐步演化出了其他結構形式的技術流派,比如DAG、Block-Latice、Block-Vine等等。所有的區塊鏈技術流派,都必須實現對交易事件的定序,只是實現的方式有所不同。DAG技術突破了“區塊”和“鏈”的概念,Block-Latice技術也一樣。Nano專案採用了Block-Latice技術,據其白皮書中宣稱,比典型的DAG專案(比如IOTA、ByteBall等等)出現得還早一些。目前有很多專案都採用了這種設計方案(比如Jura、Vite、Dexon等等),Nano是否為Block-Latice技術的首創者,我並不確定,不過Nano確實給我展示了一種簡單、優雅的設計印象。為了更容易地理解Nano及Block-Latice的設計思想,我們可以看一個簡化的經濟互動場景:某個經濟系統裡A、B、C三人互相之間有資金往來,需要記錄每筆交易事件的詳細資訊(花費了多少錢,支付給了誰,支付時間等等)。若採用Bitcoin系統,則由礦工負責記賬,通常多筆交易被放在一起,由礦工批次打包到區塊中,並透過PoW共識演算法同步到全網路。

Block-Latice從更貼合實際經濟活動的角度出發,針對每個賬戶,按交易順序分別記錄僅屬於該賬戶的交易事件,形成該賬戶對應的唯一的一條鏈。一個賬戶一條鏈的設計,使得每筆支付交易只會導致相關的兩條鏈(或兩個以上,若同一筆支付交易中可以包含多個接收賬戶)需要變更,而不影響其他鏈,不同鏈之間的更新是非同步的,不需要同時進行,提高了系統的吞吐量。每個鏈的最新區塊(頭部區塊)代表了該鏈的「當前有效狀態」,頭部區塊之前的區塊資料只代表歷史,僅用於回溯對賬,很多計算節點可拋棄歷史資料(可稱之為「賬本修剪」),只保留每條鏈的頭部區塊作為最新賬本,這就極大地降低了儲存需求,相當於Bitcoin系統中的某些節點拋棄了大部分交易資料,只保留所有的Block-Header和UTXO集。

當A支付X個幣給C時,A賬戶鏈中會生成只包含這筆交易資訊的區塊,A賬戶的餘額發生了變化,C賬戶鏈感知到A賬戶鏈中的資料變化後,也會生成只包含這筆交易資訊的區塊,C賬戶的餘額也發生了相應的變化。雖然A鏈與C鏈在形式上是互相獨立的,但是A賬戶鏈與C賬戶鏈的資料更新必須相互融洽,不可以出現資金髮送(Send)與接收(Rreceive)數額不一致的現象。Nano透過「交易資料的數字簽名」和「類似PoS共識演算法的代理人投票機制」確保整個賬本的一致性,並實現對沖突區塊(惡意分叉、雙花交易可製造多個衝突區塊)的選擇與淘汰。Nano的每個賬戶鏈的第一個區塊(可稱之為「開戶區塊」)中填寫了使用者自願選擇的投票代表(Representative),並允許使用者隨時傳送更新交易將其更換。投票代表R的權重由選擇R作為代表的所有賬戶的餘額總和所決定,與PoS共識機制類似。

Block-Latice技術中同樣存在雙花支付現象:基於A賬戶的最新區塊(Block i+1),A支付X個幣給B後,又基於區塊(Block i+1),支付了Y個幣給C,這樣就形成了兩個互相沖突的新區塊(Block i+2)。當B和C獲得A的支付交易區塊之後,可將A的交易廣播到全網路,然後詢問投票代表(或監聽投票廣播資訊)是否觀察到A有雙重支付行為,若B和C的選擇的投票代表不線上,可以更換新的投票代表。假定同時線上的多個投票代表中,大部分權重對應的代表是誠實的,針對A賬戶鏈的多個衝突區塊進行幾輪投票之後,選票最高的唯一區塊獲勝,其他區塊將被淘汰。然後B和C才開始更新B賬戶鏈和C賬戶鏈,這就解決了雙重支付問題。我認為還可以引入押金機制,對雙重支付行為進行處罰,避免A賬戶持續生成雙重支付區塊,導致代理人節點之間頻繁進行投票廣播。

Nano技術白皮書裡並沒有提到如何獎勵投票代表節點(也必然是全節點),可能是經濟激勵的設計並不難,有很多可選方案,比如系統每年增發一定量的幣,按照權重比例,分配給投票代表節點。Nano採用了零手續費的設計方案,因為其具備極好的賬本修剪特性,不用擔心賬本資料量激增。為了防止惡意使用者在自己的多個賬戶鏈之間持續傳送垃圾交易,Nano要求每筆交易中的部分資料的雜湊值必須處於一定範圍,這部分資料是可以提前知道的,因此使用者可以為未來的交易提前計算好符合雜湊值要求的Nonce值,不會耽誤未來的交易。也可以採取「限制每個賬戶鏈的區塊生成速率」的方式防範垃圾交易行為。但這些方案似乎不能防止攻擊者利用多個賬戶鏈持續建立開戶區塊,再加上新建的賬戶鏈,則可建立更多的開戶區塊,造成資料量激增。所以我覺得零手續費機制不一定最優,燃燒掉較低的手續費,可強化系統安全,並進一步簡化設計方案。


更多區塊鏈資訊:www.qukuaiwang.com.cn/news

免責聲明:

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

推荐阅读

;