智能合約(一) - 什麼是智能合約?


Posted by 阿嘉 on 2021-06-30

智慧型合約(英語:Smart contract)是一種特殊協定,在區塊鏈內製定合約時使用,當中內含了程式碼函式 (Function),亦能與其他合約進行互動、做決策、儲存資料及傳送以太幣等功能(出處:維基百科),簡單的說就是在區塊鏈上做以太幣的交易或互動的一種程式(合約)。

但知道智能合約後,該怎麼寫?怎麼放到區塊鏈上?怎麼跟它溝通?該有什麼開發環境?身為一個開發人員,心中一定會有這樣的疑問?所以我們就來看看有哪些東西能幫忙我們實現開發智能合約。

談到智能合約就不免必須了解什麼是DApp(Decentralized Applications)去中心化應用程式,App我們都知道它是應用程式,所謂的去中心化就是不需要依賴伺服器運作就可以全自己運行,區塊鏈的理念就是去中心化,所以它所運行的應用程式當然也必須去中心化,才有了DApp的產生。

由於智能合約無法只有它單獨放到區塊鏈中,必須要和外部做溝通來能達到應用的效果,所以一般我們都是開發DApp,然後在裡面包含智能合約,然後靠其他套件程式讓智能合約可以和外面做溝通,讓我們可以去呼叫它,進而做合約和其他合約的交易,常見的智能合約開發架構如下:
1.IDE 開發環境:RemixVisual Studio Code
2.開發智能合約:Solidity、Vyper。
3.開發框架:Truffle、Waffle。
4.web與智能合約互動套件:Web3.js、ethers.js。
5.發佈網段:公鏈(比特幣-Bitcoin,以太坊-Ethereum)、測試鏈(Ropsten、Kovan、Rinkeby、Goerli)、個人鏈(Ganache),開發人員在開發初期建議用個人鏈就好,它是一個可以安裝在本地端的鏈,使用上還蠻方便的,只要安裝好Ganache這個軟體就能在本地端發佈智能合約到個人鏈去。

由上面的開發架構可以了解,想要開發智能合約就是先選擇一個習慣用的IDE當做開發環境VS Code或Remix,然後安裝Truffle或是Waffle當做開發的主要框架,使用Solidity(和JavaScript較相似)或Vyper(和Python較相似)當做開發智能合約的主要程式語言,安裝Truffle + web3.js或是Waffle + ethers.js開發框架(選其中一個),開發完成後就發佈到鏈上面,一開始當然是發佈到Local的個人鏈(ganache)上或是測試鏈上做測試,等都沒有問題了才會上到公鏈(EVM:Ethereum Virtual Machine)上面執行了,整個開發智能合約的架構大概就是這樣,接下來在下面的章節我們就來細部的說明。


#smart contract #智能合約 #去中心化 #dapp #Ganache #以太坊 #solidity #Vyper #Truffle #Waffle









Related Posts

筆記、版本控制前言

筆記、版本控制前言

迴圈 for ..in

迴圈 for ..in

《寫給所有人的運算思維入門》- 寫程式到底是在幹嘛?

《寫給所有人的運算思維入門》- 寫程式到底是在幹嘛?


Comments