最強易用性?趣鏈科技智慧合約引擎是怎樣煉成的 | ChainMind

買賣虛擬貨幣
ChainMind是趣鏈科技產品團隊打造的新欄目,由區塊鏈行業最前線的產品經理,持續為你帶來前沿的行業洞察、產品思考。本文是ChainMind的第三篇文章。”今天和大家分享下趣鏈科技的智慧合約引擎,它已在中國信通院可信區塊鏈評測中表現出了優異的易用性。智慧合約是區塊鏈應用業務邏輯的載體。要實現企業級應用的落地,則需要智慧合約引擎,而其必備的特質有:完備的業務功能、可確定性、可終止性、完備的升級方案等。最早是以太坊將支援Solidity語言的EVM執行引擎引入區塊鏈中,拉開了區塊鏈2.0的序幕,但因其合約語言本身在語言成熟度、生態工具、複雜合約編寫效能等方面具有一定侷限性,導致無法滿足很多大規模商業應用場景。因此趣鏈區塊鏈平臺首創了支援Java語言的智慧合約執行引擎HVM(HyperVM),在保證智慧合約執行的安全性、確定性、可終止性的前提下,提供了一系列靈活應用模式、工具方法集,以滿足複雜多樣的業務場景需求,面向廣泛的區塊鏈開發人員提供更便捷、靈活、安全的區塊鏈應用開發模式。下面展開講講我們的智慧合約執行引擎HVM的設計模式。
符合Java編寫正規化的賬本資料結構基於賬戶模型的區塊鏈平臺,智慧合約通常作為操作賬本資料的載體,底層賬本資料其實是一系列的KV(Key-Value)鍵值對集合。為了符合Java軟體開發者習慣,使其無需感知區塊鏈底層KV結構即可編寫相應業務邏輯程式碼,HVM設計了符合Java編寫正規化的資料結構:HyperMap和HyperList。

HyperMap和HyperList的使用類似於開發者所熟知的HashMap和ArrayList,但做了原創性地最佳化,在減少記憶體使用的同時也提高了更新賬本的插入效率。實測表明在持續增長的大資料量場景中HVM效能表現良好。

內建資料表結構HyperTable

為了滿足複雜業務場景下資料型別多樣化、業務資料視覺化與可分析的需求,智慧合約需要支援複雜的表結構資料組織形式。HVM提供了內建資料結構HyperTable,支援在合約內部按照表的形式組織業務資料,便於業務資料視覺化以及後續的資料分析與價值挖掘。HyperTable是一種類似Hbase的多層級列簇表結構,這種結構可以讓原Solidity語言中複雜巢狀的資料操作簡單化,同時在效能方面,能有效解決序列化、反序列化造成的效能瓶頸,整體維護成本更低、使用更高效。

豐富的工具方法集

工欲善其事,必先利其器。一個好的工具方法集可以讓應用開發更高效。HVM內建了完備的工具方法集,支援編碼格式轉換、基於TEE的資料加解密、日誌等功能,為開發者提供了更友好的開發體驗。

日誌工具類:日誌在應用開發過程中的作用至關重要,能幫助開發者快速定位和發現問題。由於EVM未對出現的異常進行詳細定位,給編譯除錯造成極大的難度。而HVM透過內建日誌工具類,可以為每種常見的錯誤進行合理的提示,並支援不同日誌級別的輸出,方便開發和運維快速定位問題。

加解密工具:有些業務場景可能需要在智慧合約中進行簽名驗籤邏輯處理,從而進行身份認證,便於進行許可權判斷或者後續業務的開展。因此HVM設計了基於TEE[1]的加解密工具,支援在合約中呼叫儲存於TEE的公私鑰完成簽名、驗籤操作,並支援ECDSA、SM國密等多種演算法,具有方便、友好、安全的特性。

分層呼叫模式

鑑於智慧合約升級代價極高,HVM提供了更為靈活的分層合約呼叫方式:業務呼叫層可以靈活的定義豐富的業務邏輯,可以在不更新合約的情況下更新業務邏輯,合約層只實現最核心、最基本的原子操作。以轉賬場景為例,合約層只有增加餘額和減少餘額的方法,在呼叫層定義轉賬的邏輯:如餘額是否充足、減少轉讓方餘額和增加接收方餘額。同時,HVM保證了呼叫層邏輯的原子性,從而保證了業務應用的可用性和可靠性。

安全沙盒和計步器機制

HVM透過安全沙盒模式和計步器機制保證智慧合約的確定性和可終止性。確定性是指一段程式在不同的計算機、或者在同一臺計算機上的不同時刻多次執行,最終執行結果都是一致的。可終止性是指一段程式能在有限時間內結束執行。區塊鏈系統需要保證分散式賬本的強一致性,因此執行引擎需要有完善的機制保證最終執行結果的可確定性。HVM採用安全沙盒模式以及計步器機制保證智慧合約的確定性和可終止性。

很多區塊鏈平臺採用計時器也即超時機制保證合約的可終止性,但是在分散式系統中,節點的執行時長受限於每個節點自身效能和負載,因此不同的節點往往超時時間並不一樣,導致最終執行結果的不一致性,大大降低系統可用性。

HVM透過資源隔離的方式,即:禁用如IO訪問、系統呼叫等不確定的系統操作來保障合約執行環境的安全性。同時透過計步器機制,HVM的每一步執行指令和資源申請都需要消耗相應的Gas[2],使得相同的操作集合最終消耗的Gas值一致,從而保證了所有的執行不會受到伺服器效能的影響,最終執行結果是確定一致的。

HVM與EVM對比分析

下圖為HVM和EVM在功能、效能方面的對比分析,可看出HVM在合約安全性、開發環境、支援功能、大資料量支援、效能等方面均明顯優於EVM。

編者按:

支援Java語言的智慧合約執行引擎HVM透過安全沙盒和計步器機制在虛擬機器層面保證合約的安全高效執行,透過支援內建易用的資料結構和豐富的方法集在應用層面提供完備、高效、靈活的應用開發模式。未來,我們將會推出更安全高效、簡便靈活的合約執行引擎,更好的為廣大的區塊鏈開發者服務,歡迎大家持續關注!

[1]TEE:可信執行環境是主處理器的安全區域,它確保在內部載入的程式碼和資料在機密性和完整性方面得到的保護。
[2]Gas:一種操作複雜度和資源使用量的度量方式,操作越複雜,需要消耗的Gas越大。

免責聲明:

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

推荐阅读

;