摘要:在區塊鏈上,虛擬機就是智能合約的運行環境,是一個可以完全對外隔離的完整計算機體系。區塊鏈通過虛擬機來調用和執行智能合約,并要求所有節點都達成一致。當區塊鏈遇見在很多科技領域都得到了運用,目前,也開始在區塊鏈領域逐漸的得以發展。
區塊鏈的出現使得智能合約得到了更好的實現和發展,而區塊鏈和智能合約之間,還存在著一個重要的角色:虛擬機(Virtual Machine)。
虛擬機的概念在上個世紀六十年代就被提出來,而到九十年代才開始流行。當時的網絡跨越了眾多不同的操作系統、瀏覽器,如果開發者想要制作一個應用,就需要去適配所有不同的操作系統。大家知道現在 App 開發就分為安卓和蘋果系統,而當時局面更加復雜。恰好 Java 程序語言開始流行,Java 構建的虛擬機能夠讓程序只需要寫一次,依托 Java 虛擬機就能夠在多個平臺上運行,所以當時提出的口號就是:一處編譯、到處運行。
我們知道比特幣是沒有虛擬機的,因為比特幣就是把一段數字(也就是「比特幣」)從地址 A 轉移到地址 B,而以太坊則提出,區塊鏈上執行的為什么不能是一套代碼,能夠實現更多復雜多樣的東西?這就是我們所說的智能合約平臺,所有節點運行一樣的合約代碼得到完全一樣的結果。
在區塊鏈上,虛擬機就是智能合約的運行環境,是一個可以完全對外隔離的完整計算機體系。區塊鏈通過虛擬機來調用和執行智能合約,并要求所有節點都達成一致。而節點用的是不同的系統,有些機器是 64 位的,有些是 32 位的,傳統的 Java 虛擬機容忍計算結果有少量的差異,但是在區塊鏈上所有結果必須一樣,因此,一個新的、適用于區塊鏈的虛擬機是必不可少的。
理想中的區塊鏈虛擬機每個區塊鏈項目的虛擬機設計,都會有自身的藝術追求,在追求眾多的特性同時做不同層次上的取舍。在做了大量的研究之后,我們認為理想中的區塊鏈虛擬機應該是這樣的:
運行時有足夠的確定性,在調用同樣的智能合約輸入時,應該返回相同的輸出結果,輸出結果不依賴于時間、運行環境等外部的條件;
運行時有足夠的安全性,虛擬機的執行不會對平臺本身帶來負面影響;
對更新足夠的靈活,讓區塊鏈不用通過硬分叉,就可以實現加密算法的升級或新增(回想一下以太坊硬分叉升級的痛苦);
信息足夠的透明,可以讓虛擬機上運行的智能合約充分發揮虛擬機的潛力;
費用機制足夠的合理,能夠確保虛擬機運行時資源消耗的計算方式更加合理準確;
可以支持不同的語言編譯,讓開發者能夠自由地開發,將最新的科技運用其中。
在設計 Nervos CKB 虛擬機之前,我們發現很多區塊鏈項目都不是用真實的 CPU 指令集來構造自己的虛擬機的,他們更多的是選擇了 WASM 來構造自己的虛擬機。
而我們更傾向于采用真實的 CPU 指令集來構造自己的虛擬機,因為在任何精巧復雜的虛擬機的最底層,都需要將操作轉變為原始的匯編指令來執行對 CPU 的操作。另外,采用真實 CPU 指令集就不會在設計層面引入一些語義約束,束縛虛擬機的靈活性。
做一個不恰當的比喻,操作 CPU 需要有一套語言體系,使用真實的 CPU 指令集就如同能直接用這套語言體系和 CPU「說話」,那就非常方便。否則,就好像先說中文,再轉換為英文,不論多完美的翻譯水平,都會有一定的偏差和束縛。
通過真實的 CPU 指令集,虛擬機可以根據需要增加任意類型的數據結構或算法,可以最大限度的讓開發者寫出任何滿足要求的合約。于是我們決定大膽的嘗試使用真實的 CPU 指令集來構造自己的虛擬機 CKB-VM。
在 CPU 指令集的選擇中,我們選擇了精簡的開源指令集 RISC-V。RISC-V 可以滿足從低功耗小型微處理器,到高性能數據中心(DC)處理器的實現要求,并且有著透明性、精簡性、模塊化、支持的廣泛性和成熟性的特點。這些特性都和 CKB-VM 的設計需求完美契合。那么 RISC-V 又是什么呢?
RISC-VRISC-V 是一個清晰、簡約、開源的 CPU 指令集架構,誕生于美國加州大學伯克利分校。
2010 年,由于其他商業閉源指令集的局限性,該校的一個研究團隊在啟動一個新項目時,從零開始設計了一套全新的開源指令集。這套全新的指令集有著大量的寄存器和透明的指令執行速度,能夠幫助編譯器和匯編語言程序員將實際的重要問題轉換為適當、高效的代碼,并且只包含了不到 50 條指令。這套指令集就是 RISC-V。
架構師們在設計 RISC-V 時,就是希望 RISC-V 在所有的計算設備上都能夠有效工作。自 2010 年被發明以來,RISC-V 簡潔的設計贏得了業界和學界的廣泛支持,并且獲得了社區的喜愛。
RISC-V 基金會RISC-V 指令集的發展主要由 RISC-V 基金會以及社區推動。RISC-V 基金會創立于 2015 年,是一家非營利組織,也是首個開放、協作的軟硬件創新者社區。
RISC-V 基金會目前已經有超過 235 家成員,包括谷歌、高通、蘋果、IBM、特斯拉、華為等企業。成員可以參與制定并使用 RISC-V 指令集規范,并且參與相關軟、硬件生態系統的發展。
由于精簡、開源的設計,RISC-V 在一些學術機構中大受歡迎,如加州大學伯克利分校、麻省理工學院、普林斯頓大學、中科院計算所等。除此之外,一些政府機構,如印度政府、上海市經濟信息委等,也大力支持基于 RISC-V 的項目開發。
現有的指令集RISC-V 是一個非常年輕的指令集,那么在此之前,主要的指令集都有哪些呢?
在 PC 時代,x86 是不可動搖的霸主,x86 是 CISC(Complex Instruction Set Computer,復雜指令集),和 RISC(Reduced Instruction Set Computer,精簡指令集)不同,CISC 指令集會隨著發展不斷增多。這樣會使得成本不斷上升,性能和功耗也會受到影響。而且,CISC 指令集長度、執行時間都不固定,很難找出一條高效率的通用設計道路來完成指令的執行。
智能手機普及之后,ARM 成了移動端的寵兒。ARM 是精簡指令集(RISC)有著低功耗和低成本的特性,但是,因為要保持向后兼容性,ARM 需要保留許多過時的定義,導致指令集冗余嚴重,這使得 ARM 架構文檔的復雜度越來越高。
在 x86 和 ARM 壟斷的當下,RISC-V 為市場帶來了新的生機:
精簡
經過幾十年的發展,x86 與 ARM 的架構文檔已經長達數千頁,幾乎需要花掉一個工程師近一個月的閱讀時間,而閱讀 RISC-V 文檔只需要花費 1-2 天的時間。
這是因為 RISC-V 只將那些最常使用的指令集挑選出來,然后為其進行專門優化,至于不常用的指令,則可以用幾個基礎指令組合的方式完成,這樣就可以大大提高效率。
舉個例子,如果我們用的是 x86,那么就必須買下一整個超市,才能享受自身需的物品;而 RISC-V 是一家可以單買的超市,顧客們只需要挑選自己所需的物品,并為此付費即可。
開源
ARM 和 x86 都是閉源項目,且授權條款極其苛刻:英特爾不允許除 AMD 和 VIA 之外的任何一家公司使用 x86 指令集;想要獲得 ARM 指令集的授權可能需要花費上千萬美元的授權費,并且會受到而且授權到期后,需要重新談判授權事宜。
RISC-V 是一個真正意義上的開源項目,被稱為硬件領域的 Linux。事實上,發明 RISC-V 的 David Patterson 教授、Krste Asanovic 教授、Andrew Waterman 和 Yunsup Lee 的初衷就是希望 「Instruction Sets Want to be Free」,全世界任何公司、大學、研究機構與個人都可以開發兼容 RISC-V 指令集的處理器,都可以融入到基于 RISC-V 構建的軟硬件生態系統。
RISC-V 使用的是 BSD License 開源協議,BSD 開源協議允許使用者修改和重新發布開源代碼,也允許基于開源代碼開發商業軟件發布和銷售。
當區塊鏈遇見 RISC-VRISC-V 在很多科技領域都得到了運用,目前,也開始在區塊鏈領域逐漸的得以發展。作為僅在 CPU 上驗證過的指令集架構,將 RISC-V 應用在區塊鏈領域的確是一個大膽的嘗試,因為它在區塊鏈項目上打造的是虛擬機,而非處理器硬件。
我們不確定這樣的嘗試能否成功,但是我們有理由相信,基于開源的 RISC-V 打造的虛擬機,可以很好的縮短硬件和軟件行業的距離,并且帶來更豐富的開發生態。
RISC-V 來到中國下個月,RISC-V 將來到中國,開啟 11 天、5 個城市的路演!
這一次,RISC-V 基金會將與 Linux 基金會合作,在北京、成都、上海、深圳和杭州開展一系列免費 RISC-V 入門工作坊,在活動中,RISC-V 基金會成員將和大家分享和討論 RISC-V 的最新應用及進展。
Nervos 也將與阿里巴巴集團、晶心科技(Andes Technology)、恩智浦半導體(NXP)、澎峰科技(PerfXLab)、SiFive 等 RISC-V 基金會成員共同參與到活動當中。
CKB-VM 設計者肖雪潔將在 5 月 14 日杭州的 RISC-V 活動中,分享《CKB-VM:基于 RISC-V 打造的區塊鏈通用型軟件沙盒系統》的主題。
關于 Nervos
Nervos Network 由 Nervos 基金會推動,通過分層設計,兼顧性能、安全以及去中心化的特性,滿足多樣化的商業場景需求,為未來加密經濟提供基礎設施。
關于 CKB
Nervos Common Knowledge Base(CKB)是一個無需許可鏈,它是 Nervos Network 的基礎層,并在設計上提出了一些理念:
CKB 共識協議 NC-MAX 使用兩階段提交節約帶寬,并根據網絡情況調整自身參數,提升了 Nakamoto Consensus 的可擴展性
CKB 虛擬機采用底層 CPU 指令集架構 RISC-V 開發,提供更高的開發彈性與運行的穩定性
CKB Cell Model 是比特幣 UTXO 模型的通用化,能夠驗證和存儲任何類型的數據
CKB 經濟模型用貨幣政策限制狀態存儲的增長,并實現智能合約平臺的價值存儲功能
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24659.html
摘要:在區塊鏈上,虛擬機就是智能合約的運行環境,是一個可以完全對外隔離的完整計算機體系。區塊鏈通過虛擬機來調用和執行智能合約,并要求所有節點都達成一致。 秘猿科技使命是用技術創造信任,為價值網絡提供基礎設施和服務。為了實現這個使命,我們三年來堅持初心,步步為營打造加密經濟網絡。我們想要讓互聯網回歸到本源,用區塊鏈技術,去構造更美好的社會,因此我們設計了 CKB 底層公鏈。我們自己造輪子,開創...
摘要:目前,比特幣使用的是來進行交易簽名,并且在共識協議中使用了哈希算法。盡管的實現提供的是最流行的加密算法,但我們鼓勵社區提供更優化的加密算法實現以減少運行時開銷。 Nervos 底層公鏈 CKB 的虛擬機(CKB-VM)是基于 RISC-V 指令集打造的區塊鏈虛擬機。在上一堂分享中,我們簡單介紹了區塊鏈虛擬機,以及我們理想中的區塊鏈虛擬機的樣子。在本篇文章中,CKB-VM 設計者將詳細的...
摘要:的開發團隊分別來自等公司,標準由組織制定,目前在以太坊下一代虛擬機以及項目中被使用。推特原文內容摘要首先提出疑問對虛擬機用比更好表示嚴重懷疑。與此同時,選擇區塊鏈虛擬機時并不是只需要考慮高性能實現的難度。 showImg(https://segmentfault.com/img/bVblNDb?w=1882&h=802); Nervos 將在舊金山做一場主題為「Say Hello to...
摘要:于是我們想為什么不使用符合虛擬機當前系統架構的真實指令集來構建自己的虛擬機這樣一來,我們不會丟失任何添加靜態驗證高級數據結構或是加密算法的可能性,并且無論我們在中提供怎樣的數據結構或算法,都可以最大化的靈活性。 Nervos 底層公鏈 CKB 的虛擬機(CKB-VM)是基于 RISC-V 打造的區塊鏈虛擬機。在前兩期中,我們介紹了 CKB 虛擬機的設計理念,以及基于 RISC-V 指令...
摘要:區塊鏈是軟件開源運動所結出的果子。原因是區塊鏈創造的信任是基于代碼產生的。 上一講中,我們深入探討了區塊鏈對一些基本問題的答案,包括對時間的答案、對空間的答案以及對能量的答案。在這一篇文章中,我們將從區塊鏈作為基本工具的工具論方面切入。這個方面包括了它是怎樣看待這個世界的:它使用了哪些工具,以及它使用了哪些方法?構造了哪些全新的博弈環境并形成了哪些新的博弈均衡態?這些方法也許和人們過去...
閱讀 1481·2019-08-30 15:44
閱讀 1945·2019-08-30 14:07
閱讀 2871·2019-08-30 13:56
閱讀 2336·2019-08-29 17:06
閱讀 1323·2019-08-29 14:13
閱讀 2078·2019-08-29 11:28
閱讀 3223·2019-08-26 13:56
閱讀 1940·2019-08-26 12:11