您的位置:首頁>正文

Cardano的IELE虛擬機器能否幹掉乙太坊的EVM?

什麼是乙太坊虛擬機器?

乙太坊虛擬機器(EVM)是智慧合約的運行環境。 它是一個完全獨立的沙箱, 合約代碼在EVM內部運行, 對外是完全隔離的,

甚至不同合約之間也只有有限的存取權限。

EVM ( Ethereum Virtual Machine ) 即 乙太坊虛擬機器 是乙太坊中智慧合約的運行環境。 而EVM運行在乙太坊節點上, 當我們把合約部署到乙太坊網路上之後, 合約就可以在乙太坊網路中運行了。

EVM使用了256比特長度的機器碼, 是一種基於堆疊的虛擬機器, 用於執行智慧合約, 並使用了乙太坊帳戶模型(Account Model)來進行價值傳輸。

EVM是圖靈完備的, 由於乙太坊系統中引入了Gas的概念, 所以原則上在EVM中可執行的計算總量受Gas總量限制。

EVM是一個隔離的環境, 在EVM內部運行的代碼不能跟外部有任何聯繫。

EVM採用了基於棧(Stack)的架構, 也就是後進先出(LIFO)的方式。

在乙太坊設計原理中描述了EVM的設計目標:

簡單:操作碼盡可能的少並且低級,

資料類型盡可能少, 虛擬機器的結構盡可能少;

結果明確:在VM規範語句中, 沒有任何可能產生歧義的空間, 結果應該是完全確定的。 此外, 計算步驟應該是精確的, 以便可以測量Gas的消耗量;

節約空間:EVM組件應盡可能緊湊;

預期應用應具備專業化能力:在VM上構建的應用應能處理20位元組的位址, 以及32位的自訂加密值, 擁有用於自訂加密的模數運算、讀取區塊和交易資料與狀態交互等能力;

簡單安全:為了讓VM不被利用, 應該能夠容易地建立一套Gas消耗成本模型的操作;

優化友好:應該易於優化, 以便即時編譯(JIT)和VM的加速版本能夠構建出來。

同時EVM也有如下特殊設計:

區分臨時存儲(Memory, 存在於VM的每個實例中, 並在VM執行結束後消失)和永久存儲(Storage,

存在于區塊鏈狀態層);

採用基於棧(Stack)的架構;

機器碼長度為256比特, 即32位元組;

使用了可變、可擴展的記憶體大小;

棧的大小沒有限制;

1024調用深度限制;

無類型。

像之前定義的那樣, EVM是圖靈完備虛擬機器器, 而EVM本質上是被Gas束縛, 因此可以完成的計算總量本質上是被提供的Gas總量限制的。

此外, EVM具有基於堆疊的架構。 每個堆疊頂的大小為256位元, 堆疊有一個最大的大小, 為1024位。

EVM有記憶體(Memory), 專案按照可定址位元組陣列來存儲。 記憶體是易失的, 也就是說資料是不持久的。 EVM還有一個記憶體(Storage), 與記憶體不同, 記憶體是非易失的, 並作為系統狀態的一部分進行維護。 EVM分開保存程式碼, 在虛擬ROM中只能通過特殊指令來訪問。

EVM的缺陷與不足

機器碼長度為256位元

EVM處於所謂運算速度和效率方面考慮, 採用了非主流的256bit整數。 x86匯編碼運算的比較實驗, 證明了採用256bit整數遠比採用處理器原生支援的整數長度要複雜, 即EVM的運算效率並不高。

缺少標準庫

在開發Solidity智慧合約時就會碰到這個問題, 因為Solidity中根本沒有標準庫。

難以調試和測試

EVM唯一能拋出的異常就是OutOfGas, 並且沒有調試日誌, 也無法調用外部代碼。

不支援浮點數

浮點數有很多應用實例, 比如風險建模、科學計算, 以及其他一些範圍和近似值比準確值更加重要的情況。 EVM將浮點數排除在外的做法有潛在的局限性。

不可修改的代碼

智慧合約在設計時需要考慮的重要問題之一就是是可升級性, 因為合約的升級是必然的。

在EVM中代碼是完全不可修改的, 並且由於其採用哈佛電腦結構, 也就不可能將代碼在記憶體中載入並執行, 代碼和資料是被完全分離的。

IELE是什麼?能否顛覆EVM?

IELE是由runtimeverification(RV)公司開發, 一款新的區塊鏈虛擬機器。

IELE是LLVM的一個變體, 專門用於在區塊鏈上執行智慧合約。 它的設計,定義和實施都是在最高的數學標準下完成的,遵循語義優先的方法,將智慧合約驗證作為主要目標。具體而言,我們使用K框架定義了IELE的形式語法和語義,作為回報,除了一系列程式分析工具(包括程式驗證程式)外,還為我們提供了可執行的參考模型。

伊利諾大學公司的框架平臺RV和區塊鏈研究開發公司IOHK宣佈推出下一代區塊鏈虛擬機器。值得注意的是,專案團隊選擇了開源,基於分散式塊鏈技術的智慧合約平臺Cardano,以便在接下來的幾個月內部署虛擬機器。

IELE的技術提供卓越的安全性和可靠性來阻斷連鎖系統。此外,它減少了可能導致駭客攻擊的漏洞。IELE專案涉及RV,伊利諾大學的學生和IOHK研發團隊,並由Rosu教授帶領開發。

一旦智慧合約可以實施部署,IELE將作為標準的低級平臺,用於編譯和執行高階語言的智能合約。該平臺還可以開發自動化技術,以數學方式驗證和證明智慧合約的正確性。因此,編寫安全的智慧合約將由平臺變得簡單。此外,該平臺還將為所有語言提供統一的氣體模型,為氣體計算創建標準設計格式。項目團隊透露,IELE受LLVM啟發,LLVM是用於創建二進位機器碼的工具集合。簡單來說,IELE基本上是LLVM的變種,專門用於在區塊鏈上執行智慧合約。一旦部署在Cardano塊鏈上,IELE將優化ADA事務。讓ADA的分層得到更有利的發展和執行,同時也可以提高TPS。

IELE設計原理?

合約可以通過ABI(應用程式二進位介面)相互作用。ABI是IELE的核心元素,而不僅僅是一個公約。無限的整數和無限數量的寄存器應該使得更高級的語言更加直接和優雅地編譯,並且從長遠來看LLVM的成功更加高效。事實上,許多LLVM優化預計會延續。因此,IELE盡可能遵循LLVM的設計邏輯和規範。

為所有語言提供統一的gas模型。IELE的gas計算的總體設計理念是:“沒有上限,但你的為你的作為付出相應的代價”。例如,IELE程式使用的註冊數越多,消耗的gas就越多。或者在運行時計算的數字越大,消耗的gas就越多。就儲存在地點的資料的位置和大小而言,它使用的記憶體越多,其消耗的gas就越多,總之你想幹更多的事,就要付出更多的gas,得到和付出總是相對的。

讓編寫安全的智慧合約更容易。這包括智慧合約必須遵守的書面要求規範,以及更容易地開發自動化技術,以數學方式驗證/證明智慧合約就此類規範而言是正確的。例如,將一個可能計算的數位推到堆疊上,然後跳轉到它認為是一個位址,這使得驗證變得困難,從而使安全性變弱,與當前的智慧合約模式一起。IELE已經命名了標籤,如LLVM,跳躍陳述式只能跳轉到這些標籤。此外,它避免了使用有界堆疊,而不必擔心堆疊或記憶體洩漏,使智慧合約的規範和驗證更容易。

IOHK和Rosu教授的看法

Rosu教授說:

“我們能夠構建下一代虛擬機器,優化和保護智慧合約交互,為高級區塊鏈系統帶來更高水準的可靠性。我們將繼續鞏固我們的成就,優化我們的虛擬機器並為其提供更多的實際用例。“

IOHK首席執行官Charles Hoskinson表示:

“RV與IOHK之間的合作,使得我們發起了IELE,這是值得驕傲的。RV在其領域處於領先地位,並通過與美國國家航空航天局,波音,豐田等多家機構合作,積累了極其豐富的專業知識。當在談到執行智慧合約時,IELE將改變遊戲規則。它非常安全,其高級功能將支持和相容更多的程式設計語言。“

IELE VM和K-EVM、Goguen最新進展

關於會計,多種貨幣和側鏈的學術研究;

Plutus(一種開發語言)工程和路線圖;

Plutus Core 將被用於計算層(computation layer), 通過IELE或直接運行。因為這些設定,它與區塊鏈的交互將更加豐富, 使其可用於更複雜的智慧合約。

馬婁1.2,學術論文和路線圖;

首個版本的IELE VM開發已完成;

Solidity-to-IELE編譯環境已經接近完成;

調整最後階段的IELE VM和K-EVM聯合工作;

這將把上述所有工作集成到卡爾達諾計算層(CL)和結算層(SL)。整合包括進行側鏈和記帳的研究,並在SL和CL中實現,這將允許資產在SL和CL之間移動。該工作還包括將Plutus 核心和IELE集成到CL中,這將使得能夠在CL中執行智能合約。

隨著哥根(Goguen)的測試階段到來,我們正在Ethereum Mantis用戶端上發佈IELE的測試網路版本,以便開發人員和更廣泛的社區可以測試和評估我們的智慧合同的實施情況。 測試網路發佈的目標是獲得有關IELE虛擬機器和智慧合約功能的回饋。這個測試網的發佈會提供一個支援開發者的指定工具集。

對開發者後期開發更友好

測試網路的部署能使開發人員能來測試智慧合約,並在將智慧合約部署到主網路之前,熟悉它們是如何運作的。這個專用測試網路可用於測試代碼,並儘早發地現任何集成問題。收集可用性的回饋能説明我們在早期階段根據需要進行改進。

ADA到達了哥根階段已經形成了類似乙太坊虛擬機器一樣的運行環境,有了側鏈、UTXO記帳、Plutus Core 編譯器、IELE V1虛擬機器、CL和SL的集成、互動式REPL與此同時並部署了測試網路,讓後期開發者正式接觸時可以更快速反覆運算自己的產品,這就是ADA一個每週更更新代碼的團隊,距離下次更新還有不到4天,會給我們帶來什麼驚喜呢,讓我們拭目以待!

IELE和K framework(RV)的開發進度及更新

它的設計,定義和實施都是在最高的數學標準下完成的,遵循語義優先的方法,將智慧合約驗證作為主要目標。具體而言,我們使用K框架定義了IELE的形式語法和語義,作為回報,除了一系列程式分析工具(包括程式驗證程式)外,還為我們提供了可執行的參考模型。

伊利諾大學公司的框架平臺RV和區塊鏈研究開發公司IOHK宣佈推出下一代區塊鏈虛擬機器。值得注意的是,專案團隊選擇了開源,基於分散式塊鏈技術的智慧合約平臺Cardano,以便在接下來的幾個月內部署虛擬機器。

IELE的技術提供卓越的安全性和可靠性來阻斷連鎖系統。此外,它減少了可能導致駭客攻擊的漏洞。IELE專案涉及RV,伊利諾大學的學生和IOHK研發團隊,並由Rosu教授帶領開發。

一旦智慧合約可以實施部署,IELE將作為標準的低級平臺,用於編譯和執行高階語言的智能合約。該平臺還可以開發自動化技術,以數學方式驗證和證明智慧合約的正確性。因此,編寫安全的智慧合約將由平臺變得簡單。此外,該平臺還將為所有語言提供統一的氣體模型,為氣體計算創建標準設計格式。項目團隊透露,IELE受LLVM啟發,LLVM是用於創建二進位機器碼的工具集合。簡單來說,IELE基本上是LLVM的變種,專門用於在區塊鏈上執行智慧合約。一旦部署在Cardano塊鏈上,IELE將優化ADA事務。讓ADA的分層得到更有利的發展和執行,同時也可以提高TPS。

IELE設計原理?

合約可以通過ABI(應用程式二進位介面)相互作用。ABI是IELE的核心元素,而不僅僅是一個公約。無限的整數和無限數量的寄存器應該使得更高級的語言更加直接和優雅地編譯,並且從長遠來看LLVM的成功更加高效。事實上,許多LLVM優化預計會延續。因此,IELE盡可能遵循LLVM的設計邏輯和規範。

為所有語言提供統一的gas模型。IELE的gas計算的總體設計理念是:“沒有上限,但你的為你的作為付出相應的代價”。例如,IELE程式使用的註冊數越多,消耗的gas就越多。或者在運行時計算的數字越大,消耗的gas就越多。就儲存在地點的資料的位置和大小而言,它使用的記憶體越多,其消耗的gas就越多,總之你想幹更多的事,就要付出更多的gas,得到和付出總是相對的。

讓編寫安全的智慧合約更容易。這包括智慧合約必須遵守的書面要求規範,以及更容易地開發自動化技術,以數學方式驗證/證明智慧合約就此類規範而言是正確的。例如,將一個可能計算的數位推到堆疊上,然後跳轉到它認為是一個位址,這使得驗證變得困難,從而使安全性變弱,與當前的智慧合約模式一起。IELE已經命名了標籤,如LLVM,跳躍陳述式只能跳轉到這些標籤。此外,它避免了使用有界堆疊,而不必擔心堆疊或記憶體洩漏,使智慧合約的規範和驗證更容易。

IOHK和Rosu教授的看法

Rosu教授說:

“我們能夠構建下一代虛擬機器,優化和保護智慧合約交互,為高級區塊鏈系統帶來更高水準的可靠性。我們將繼續鞏固我們的成就,優化我們的虛擬機器並為其提供更多的實際用例。“

IOHK首席執行官Charles Hoskinson表示:

“RV與IOHK之間的合作,使得我們發起了IELE,這是值得驕傲的。RV在其領域處於領先地位,並通過與美國國家航空航天局,波音,豐田等多家機構合作,積累了極其豐富的專業知識。當在談到執行智慧合約時,IELE將改變遊戲規則。它非常安全,其高級功能將支持和相容更多的程式設計語言。“

IELE VM和K-EVM、Goguen最新進展

關於會計,多種貨幣和側鏈的學術研究;

Plutus(一種開發語言)工程和路線圖;

Plutus Core 將被用於計算層(computation layer), 通過IELE或直接運行。因為這些設定,它與區塊鏈的交互將更加豐富, 使其可用於更複雜的智慧合約。

馬婁1.2,學術論文和路線圖;

首個版本的IELE VM開發已完成;

Solidity-to-IELE編譯環境已經接近完成;

調整最後階段的IELE VM和K-EVM聯合工作;

這將把上述所有工作集成到卡爾達諾計算層(CL)和結算層(SL)。整合包括進行側鏈和記帳的研究,並在SL和CL中實現,這將允許資產在SL和CL之間移動。該工作還包括將Plutus 核心和IELE集成到CL中,這將使得能夠在CL中執行智能合約。

隨著哥根(Goguen)的測試階段到來,我們正在Ethereum Mantis用戶端上發佈IELE的測試網路版本,以便開發人員和更廣泛的社區可以測試和評估我們的智慧合同的實施情況。 測試網路發佈的目標是獲得有關IELE虛擬機器和智慧合約功能的回饋。這個測試網的發佈會提供一個支援開發者的指定工具集。

對開發者後期開發更友好

測試網路的部署能使開發人員能來測試智慧合約,並在將智慧合約部署到主網路之前,熟悉它們是如何運作的。這個專用測試網路可用於測試代碼,並儘早發地現任何集成問題。收集可用性的回饋能説明我們在早期階段根據需要進行改進。

ADA到達了哥根階段已經形成了類似乙太坊虛擬機器一樣的運行環境,有了側鏈、UTXO記帳、Plutus Core 編譯器、IELE V1虛擬機器、CL和SL的集成、互動式REPL與此同時並部署了測試網路,讓後期開發者正式接觸時可以更快速反覆運算自己的產品,這就是ADA一個每週更更新代碼的團隊,距離下次更新還有不到4天,會給我們帶來什麼驚喜呢,讓我們拭目以待!

IELE和K framework(RV)的開發進度及更新

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示