Simplicity——適用於加密貨幣和區塊鏈的新語言

買賣虛擬貨幣

有一種新的程式語言問世啦!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旨在改進現有的加密貨幣語言,例如Bitcoin Script和Ethereum's EVM。Simplicity在Coq中定義了正式的指稱語義。

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

由於其Turing不完整性,Simplicity適用於靜態分析,可用於在執行之前匯出所需計算資源的上限。雖然Turing不完整,但Simplicity仍然可以執行任何有用的功能,並且我們相信它足以為區塊鏈應用程式構建有用的"智慧合約"。


Simplicity的設計目標是:

  • 建立一個富有表現力的語言,為使用者提供構建程式和智慧合約所需的工具。

  • 啟用靜態分析,提供所需計算量的有用上限。

  • 最大限度地減少頻寬和儲存需求,並透過在redemption time刪除未使用的程式碼來增強隱私。

  • 保持比特幣自設交易的設計,即程式不能訪問交易以外的任何資訊。

  • 提供正式的語義,便於使用現有的proof-assistant software。

需要注意的是, "Simplicity是被設計為執行智慧合約的低階語言,而不是程式設計師直接編寫的語言。"

Simplicity是一種型別化的組合語言,這一點很重要。每種型別的Simplicity表示式都有兩種型別:輸入型別和輸出型別。每一個表示式都表示從輸入型別到輸出型別的函式。


"Simplicity的優勢是在於它所具有的功能,而不是它所包含的功能"

首先,這種語言沒有狀態,也沒有命名變數,沒有函式型別(這意味著沒有更高階的函式),也沒有無限迴圈或遞迴 - 可以建立contracts狀態來實現迴圈,而不需要在Simplicity本身內無限迴圈。


結論

Simplicity可以部署在新的區塊鏈應用中,包括sidechain和比特幣本身,也可以用於需要在潛在對抗條件下傳輸和執行有限程式的任何應用。

目前,Simplicity仍然是一個Blockstream研究和開發專案,未來有可能用於Blockstream產品。它的下一步是釋出Simplicity SDK。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;