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

最強易用性?趣鏈科技智能合約引擎是怎樣煉成的 | 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性能表現良好。

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

內置數據表結構HyperTable

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

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

豐富的工具方法集

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

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

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

分層調用模式

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

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

安全沙盒和計步器機制

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

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

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

HVM與EVM對比分析

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

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

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

[1]TEE:可信執行環境是主處理器的安全區域,它確保在內部加載的代碼和數據在機密性和完整性方面得到的保護。

[2]Gas:一種操作複雜度和資源使用量的度量方式,操作越複雜,需要消耗的Gas越大。


分享到:


相關文章: