通過程式語言窺視UBTC(位元聯儲)智慧合約
原作者:幣事通(文中略有修改)
程式語言,是用來定義計算機程式的形式語言。它是一種被標準化的交流技巧,用來向計算機發出指令。一種計算機語言讓程式設計師能夠準確地定義計算機所需要使用的資料,並精確地定義在不同情況下所應當採取的行動。
第一代語言是與機器硬體密切相關的機器語言和組合語言。從電子計算機出現時開始使用,因其與硬體操作相對應,所以其語言種類幾乎與計算機種類相同。
第二代語言主要應用於各種計算,先後出現於20世紀50年代末至20世紀60年代初,包括FORTRAN、COBOL、Pascal和BASIC等。這些語言不僅容易被人們學習和使用,具有大量成熟的程式庫.所以應用較為廣泛,事實上成為現代或第三代程式設計語言的基礎和前身。
第三代語言直接支援結構化構件,並且具有很強的過程能力和資料結構能力,包括結構化語言和麵向物件語言,如結構化程式語言有C等,面向物件的語言有C++、Java、Delphi等。它大致分為通用高階語言、面向物件的語言和專用語言。
第四代語言屬於超高階程式設計語言,雖然它與其他語言一樣用其語法形式表示控制和資料結構,但不再涉及很多演算法性細節。目前,使用最廣泛的第四代語言是資料庫查詢語言SQL,它支援使用者以複雜的方式操作資料庫。另外,一些決策支援語言、原型語言、形式化規格說明語言,甚至計算機環境中的一些工具也被認為屬於第四代語言的範疇。
位元聯儲智慧合約基於區塊鏈兼且圖靈完備,不同於其他需要使用自己的程式語言的智慧合約技術,UBTC致力於支援通用程式語言(包括C#、Java、Kotlin和LUA)使智慧合約程式設計更簡單易用。
位元聯儲致力於實現區塊鏈技術的現實應用,這包括以其革命性的特性既支援日常生活使用,又充當全球金融和支付系統的補充。智慧合約可以為位元聯儲增加無限的應用場景,這將極大地擴大其使用的價值。那麼基於智慧合約的程式語言為什麼不採用EVM?EVM是專門為ETH建立的,是一種新的語言。對於基於LUA的UVM,LUA是一種相對成熟的語言,在安全性和穩定性方面都比較成熟,並且在實際應用中有更多的時間進行測試。它也比基於EVM的解決方案更快。UVM將增加對C#和JAVA的支援,而UBTC將釋出一個IDEA,以促進智慧合約的開發。
UBTC的智慧合約允許使用者編寫自定義的行為,並在區塊鏈中使用它們,而不是必須做一些(手動的)預定義操作。通過使用智慧合約,使用者可以輕鬆地配置複雜交易邏輯,以及執行復雜的財務契約。與此同時,使用者可以擴充套件功能、新增許可權或新增動態控制元件,而無需修改或升級區塊鏈。智慧合約允許使用者將自定義的合約位元組碼註冊到區塊鏈中,並在UBTC中呼叫交易。合約位元組碼是在一個圖靈完備的用於區塊鏈的合約位元組碼虛擬機器中執行的。開發人員可以使用具有友好語法的程式語言編寫智慧契約,然後將其編譯成契約位元組碼並存儲在區塊鏈中。
位元聯儲的每個錢包都將區塊鏈與契約交易同步,並呼叫虛擬機器執行相關的協議位元組碼並驗證。合約虛擬機器使用圖靈完備的虛擬機器實現,合約虛擬機器具有確定下,高效能,可擴充套件性等性質,可以和UBTC進行互動,執行合約位元組碼並返回執行結果。
UBTC的合約虛擬機器具有確定性的特點,一筆合約相關的交易上鍊後,任何時刻執行都有同樣的結果,可以驗證和復現。合約虛擬機器使用賬戶模型進行價值傳輸,使得開發者在編寫智慧合約時更容易使用,而UBTC鏈的UTXO交易模型則通過賬戶抽象層傳遞。開發人員可以使用各種高階程式語言進行智慧合約開發,並編譯和生成合約位元組碼,儲存在UBTC的區塊鏈中。
經過多方權衡,UBTC決定採用基於LUA改進的UVM虛擬機器,並且後續增加部分模擬C#、Java以及EVM等型別虛擬機器的模擬語言,以取得最為廣泛的技術社群支援和介入。UVM在所有的虛擬機器中會是最為高效的虛擬機器之一,並且其底層語言經過了多年的社會實踐與應用。在安全性方面,UVM將刪除一些功能,如外部IO。在穩定性方面,UVM財務雙重程序確保了異常程序退出以及持續執行的特性。
程式語言的誕生是為區塊鏈智慧合約提供保障,隨著新興技術的發展,程式語言也會更新迭代,智慧合約也會隨之改變,未來的世界正在因區塊鏈而改變,讓我們共同期待以位元聯儲為代表的加密貨幣改變未來。