| Chapter 1 | 基本介紹 Introduction

最好學習 Solidity 的方法其實就是直接寫一次!

智能合約

智能合約的概念最早由 Nick Szabo 於 1994 年提出,作為區塊鏈的一部分,他是一個狀態機(state machine)的存在,需要「交易(transactions)」來更改狀態(state),同時也可以做任何的邏輯運算(logic operation)。

透過智能合約修改區塊鏈上的各種「狀態」都需要透過交易和挖礦打包這兩個動作。同時其是圖靈完備的,所以可以解決任何的電腦問題。

智能合約的運作過程為:Smart Contract code(programming language) -> compiler -> EVM bytecode,這個部分在未來章節會做解釋!

Solidity

Solidity是目前針對以太坊虛擬機設計中,最知名的智能合約編輯語言。屬於編譯型語言,而非直譯型語言。最早在2014年由撰寫以太坊黃皮書的 Gavin James Wood 提出,設計參考了 ECMAScript ,所以也會有人認為寫過 JavaScript 的工程師對 Solidity 較為上手。

撰寫智能合約並不單只有 Solidity,還有其他的智能合約語言像是:

  • Serpent: 基於 python的智能合約語言

  • LLL: 類似 Low-Level 的組合語言

  • Mutan: 已經被棄用的類似 Go 的語言

  • Viper: 類似 python的實驗型語言

Last updated