用于加密貨幣和區(qū)塊鏈的語言Simplicity

責(zé)任編輯:editor006

作者:田曉旭

2017-11-14 16:16:52

摘自:it168網(wǎng)站

Simplicity最初是被設(shè)計為執(zhí)行智能合約的低級語言,如今極有可能成為加密貨幣和區(qū)塊鏈應(yīng)用的最佳應(yīng)用。需要注意的是, "Simplicity是被設(shè)計為執(zhí)行智能合約的低級語言,而不是程序員直接編寫的語言。

又一種新的編程語言問世啦!Simplicity最初是被設(shè)計為執(zhí)行智能合約的低級語言,如今極有可能成為加密貨幣和區(qū)塊鏈應(yīng)用的最佳應(yīng)用。

用于加密貨幣和區(qū)塊鏈的語言Simplicity

Blockstream的Dr. Russell O'Connor在《A New Language for Blockchains as part of a session on new languages and tools at PLAS 2017》中是如此描述Simplicity的:

Simplicity旨在改進(jìn)現(xiàn)有的加密貨幣語言,例如Bitcoin Script和Ethereum's EVM。Simplicity在Coq中定義了正式的指稱語義。

同時,Simplicity還引入了一種稱為Bit Machine的抽象機(jī)器定義的操作語義,用于評估Simplicity程序所需的計算空間和時間資源。

由于其Turing不完整性,Simplicity適用于靜態(tài)分析,可用于在執(zhí)行之前導(dǎo)出所需計算資源的上限。雖然Turing不完整,但Simplicity仍然可以執(zhí)行任何有用的功能,并且我們相信它足以為區(qū)塊鏈應(yīng)用程序構(gòu)建有用的"智能合約"。

Simplicity的設(shè)計目標(biāo)是:

創(chuàng)建一個富有表現(xiàn)力的語言,為用戶提供構(gòu)建程序和智能合約所需的工具。

啟用靜態(tài)分析,提供所需計算量的有用上限。

最大限度地減少帶寬和存儲需求,并通過在redemption time刪除未使用的代碼來增強(qiáng)隱私。

保持比特幣自設(shè)交易的設(shè)計,即程序不能訪問交易以外的任何信息。

提供正式的語義,便于使用現(xiàn)有的proof-assistant software。

需要注意的是, "Simplicity是被設(shè)計為執(zhí)行智能合約的低級語言,而不是程序員直接編寫的語言。"

Simplicity是一種類型化的組合語言,這一點(diǎn)很重要。每種類型的Simplicity表達(dá)式都有兩種類型:輸入類型和輸出類型。每一個表達(dá)式都表示從輸入類型到輸出類型的函數(shù)。

"Simplicity的優(yōu)勢是在于它所具有的功能,而不是它所包含的功能"

這種語言沒有狀態(tài),也沒有命名變量,沒有函數(shù)類型(這意味著沒有更高階的函數(shù)),也沒有無限循環(huán)或遞歸 - 可以建立contracts狀態(tài)來實現(xiàn)循環(huán),而不需要在Simplicity本身內(nèi)無限循環(huán)。

結(jié)論

Simplicity可以部署在新的區(qū)塊鏈應(yīng)用中,包括sidechain和比特幣本身,也可以用于需要在潛在對抗條件下傳輸和執(zhí)行有限程序的任何應(yīng)用。

目前,Simplicity仍然是一個Blockstream研究和開發(fā)項目,未來有可能用于Blockstream產(chǎn)品。它的下一步是發(fā)布Simplicity SDK。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號