通過創新的共識算法(BU Firework)、主鏈-子鏈多鏈結構(BU Orbits)、主鏈-主鏈跨鏈結構(BU Canal)、開發者友好的智能合約(BU CodeMach)等核心技術,構建泛在價值流通的互聯網基礎設施。BUMO也為開發者提供完善技術文檔及開發工具,用以提高開發者的開發效率,更易于生態的應用接入。

多資產原子操作的可擴展賬本結構
賬本結構是區塊鏈的數據存儲的重要表現形式,隨著區塊鏈應用場景變得越來越復雜,用戶對賬本結構設計的要求也越來越高。BUMO賬本結構的設計,重點考慮如下幾個因素:
●提高賬本結構數據的可擴展性
在賬戶、區塊、交易、合約的數據結構設計中,重點提高它們的可擴展性,支持更多承載信息,增強數據處理的靈活性,為應用提供更多的數據支持能力。
●降低賬本數據操作的復雜度
賬本數據操作的復雜程度,直接影響到各行業使用區塊鏈的]檻,在賬本層面內置許多關鍵操作功能,并融合諸多業務模型的抽象,提供給上層應用接口。
●內置多資產及原了性操作能力
數字資產及其操作是區塊鏈賬本的最典型應用方式,將在賬本層面支持多資產服務模式,同時,保障對資產操作的原子性,從而增強賬本的操作控制功能。
BU Bambook是BUMO的賬本結構,主要包括:多資產的賬戶結構,全局的區塊結構,原子性的交易結構,高效的賬本數據存儲,以及多簽名的聯名賬戶。
1. 多資產的賬戶結構
在Bambook的設計中,賬戶結構主要包含如下字段信息:

●賬戶地址
區塊鏈賬戶的唯一標識, 當查詢某個賬戶的信息或向某個賬戶轉賬時,需要使用賬戶地址定位到該賬戶。
●賬戶余額
該賬戶內的原生BU-Token的數量。
●智能合約代碼 :
如果該字段不為空,則賬戶為智能合約賬戶,用于存儲相應的智能合約代碼體。
●交易序號
為了避免賬戶下的交易亂序,每次處理一個交易時,賬戶的交易序號遞增,以此記錄當前最大序號。每個賬戶都有自己的交易序號,賬戶之間互不影響。
● 資產列表
資產列表用于記錄該賬戶下的各種數字資產的資產代碼、資產發行方和資產余額等信息。Bambook還提供了-整套鏈_上交易的接口,在符合系統安全性和可靠性要求的前提下,最大程度實現了資產發行、流通的可擴展性和便利性。
●元數據
元數據字段為每個賬戶提供了一個Key-Value字典結構的私有數據存儲,用于擴展對上層業務的自定義數據處理。Bambook 為元數據提供了一整套 操作接口,方便對元數據進行處理。同時,元數據的設計提供智能合約代碼執行狀態數據存取。
●權重及門限
在賬戶操作中,權限控制是一項很重要的需求,因為現實業務中往往不同主體具有不同的角色和權限。Bambook提出了一種多權重的操作權限控制方法,它能夠為不同成員賬戶設置不同的操作權重,并為操作執行設置一定的i 限值,從而達到多成員賬戶按累計權重控制操作的目標。
2. 狀態索引的區塊結構

區塊包括區塊頭和區塊體兩部分,區塊頭主要包含以下字段:
●區塊號:區塊在整個賬本中的序號,號按區塊生成的先后順序遞增。
●區塊的哈希: 對區塊序列化后的文本做哈希運算得到的哈希值。
●前一區塊的哈希: 區塊的前一區塊的哈希值。
●區塊生成時間: 區塊生成的時間。
●賬戶樹的哈希: 用MPT構建的賬戶樹的根哈希,MPT, 上每個節點任何比特級的數據更改,都能反饋到樹的根哈希上,如果在區塊比對時,發現賬戶樹哈希不一致,可以從根節點開始對子節點層層對比,快速找到不一致的賬戶。
●共識信息的哈希: 在區塊生成之前,驗證節點集合需要對交易進行打包生成提案,然 后對提案進行共識并達成一致, 共識信息哈希即對共識的提案做哈希運算得到的值。
●驗證節點集的哈希: 對所有參與共識的驗證節點的地址做哈希運算后得到的值。
●費用的哈希: 對當前區塊的費用配置,包括燃料價格和最小預留費用等,做哈希運算后得到的值。
●區塊版本:區塊結構的版本號,用于實現向下兼容性。
●交易數量: 區塊所包含的交易總數。
區塊體主要包含交易的信息和簽名。
由上可知,各類關鍵信息都通過哈希索引至區塊的字段中,使得在整個賬本中,各部分的數據變動,都能反映到區塊字段值,使得這些信息的驗證、比較非常便利。同時,一旦出現不一致的情況,能夠根據區字段的索引哈希值,有針對性地快速定位問題。
3. 原子性的交易操作
相互關聯的多個操作形成一個交易整體, 交易整體要么被完整執行、要么完全不執行,是一種常見的現實資產交易需求。BUMO在交易結構設計中,增加了子操作數組屬性,可以將一筆或多筆資產子操作放入同一筆交易執行。任何-筆子操作的失敗均會導致整體交易的失敗,并觸發該交易已執行操作的回滾,避免對相關賬戶產生影響。
比如Alice創建一筆向Bob購買產品的交易,該交易至少包括兩個關聯操作:一是 Alice向Bob支付貨幣操作,二是Bob向Alice交付產品操作。任一操作的失敗都應該造成交易的失敗,否則會產生交易糾紛。通過BUMO的原子性交易操作功能,可以較好地避免交易糾紛產生。
BUMO的原子性交易操作執行流程如下圖所示:

如圖所示,存在執行失敗子操作的交易將被移出交易隊列,不會提交到最終區塊鏈驗證存儲。
4. 高效的賬本數據存儲

BUMO采用MPT (Merkle Patricia Tree)樹進行賬本數據的存儲,MPT樹是Trie樹和Merkle樹優點融合的產物,可以有效減少賬本樹的深度、增加樹的平衡性、提樹的安全性和可驗證性。基于MPT樹的賬本數據結構,使得BUMO在數據對比查找、數據插入修改操作等方面,均可以做到高效而低耗,比如僅通過根哈希的對比就可以發現整個區塊鏈賬本比特級的差異、通過短路徑分支遍歷即可實現數據精確檢素等。
5. 多簽名的聯名賬戶控制
在賬戶設計中,考慮了多權重的操作門限控制屬性,能夠為不同成員賬戶設置不同的操作權重,并為操作執行設置門限值。賬戶權重指擁有者和簽名者針對該賬戶所擁有的操作權重,操作門限指針對賬戶進行操作所需的權重閾值,只有賬戶達到權重閾值才具備操作權限。通過上述方式,可以實現多方用戶聯合控制賬戶,并按照操作門限進行精確操作的目標,滿足用戶協作多樣化、操作模式精細化、業務模式豐富化的需要。
當前,BUMO提供了以下幾種典型門限操作類型:
●創建賬戶: 可創建普通賬戶、聯名賬戶和智能合約賬戶。
●發行ATP資產: 提供資產代碼和發行數量作為參數進行新資產發行,發行者和資產代 碼組成區塊鏈內全局唯一資產標識符。
●轉移ATP資產: 向其他賬戶轉移資產,用資產代碼和發行者地址標識該資產。設置元數據: 通過設置元數據可實現對各類自定義數據的增刪改操作。
●設置權重: 設置賬戶擁有者和簽名者在源賬號的權重。
●設置門限: 設置賬戶的操作門限,如交易中涉及的操作沒有達到其操作門限值,該操作將被拒絕。
●轉移 BU:向其他用戶支付原生內置BU幣。
●記錄上鏈:通過此操作將重要的日志數據等記錄在區塊鏈,實現不可篡改性,該操作不會修改賬戶樹。
聯名賬戶結構和操作流程如下圖所示:

如上圖示例,用戶A、用戶B、用戶C想要對聯名賬戶進行操作,首先需計算用戶的權重之和,進而將權重之和與操作門限進行對比,如果不小于操作門限,則具備操作權限,可以對聯名賬戶進行操作,否則操作被拒絕。
BUMO通過體系化設計、模塊協作和豐富的操作類型,構建了多資產原子操作的可擴展賬本結構,為多種類型的業務操作提供強大數據支持,滿足用戶復雜應用場景下的個性需求,同時也盡可能兼顧用戶對高性能和低消耗的需求。
電子發燒友App















評論