因為區塊鏈 (blockchain) 涵蓋範圍非常的廣,這次主題會著重於智能合約 (smart contract) 開發的部分。偏理論的部份,坊間已有不少書可以閱讀,將不包含在這次分享的內容範圍。
30 篇的文章會分成三大部分
文章撰寫風格
作者介紹
劉艾霖 (AILIN LIOU) 從 2009 年開始投入於軟體開發的領域,是一名軟體技術顧問兼講師,研究領域有 API 設計、後端架構設計、自動化軟體測試、網頁開發、開發智能合約與 DApp。
同時也是遠距工作者在台灣社團的創辦人,致力於推廣遠距工作模式。
曾參與的技術型會議和工作坊
合作洽談,請來信至 alincode@gmail.com
在進入到主題之前,我們先瞭解一下什麼是合約?下面這張圖片是我在網路上找到的合約範例。
讓我們先看看傳統合約需要具備哪些基本條件:
除了上面列的最基本條件外,可能還會有其他附註條件,例如付款辦法、驗收條件等資訊。
付款項目 | 付款日期 | 付款金額(含稅) |
---|---|---|
第一期:簽約金 | 107/01/01 | XXX |
第二期:期中款 | 107/03/01 | XXX |
第三期:尾款 | 107/05/01 | XXX |
從上面的資訊中,若要把整個合約流程自動化,需要做哪些事?
說到著,大家是不是開始覺得頭昏眼花了。是的,如果在沒有基礎建設的情況下,要自己從頭實作自動化的合約是非常困難的,但好在有了以太坊 (Ethereum) 的基礎建設,我們不需要從頭開始。
用一句話來說,它就是可以在「區塊鏈上執行的程式」。
目前發布智能合約最大宗的平台是以太坊,但能開發智能合約的平台不是只有一個,像是後起之秀 EOS 也是可以開發智能合約。
1. 整合金流容易
每個智能合約發布後都內建一個合約帳戶,程式透過以太坊內建機制,很容易可以做到收款、付款等操作。
2. 寫入資料需要成本
在智能合約裡需要儲存資料,需要透過礦工將資料寫入至區塊鏈上,區塊鏈的資料是以點對點的方式,儲存在世界各地以太坊的節點,所以成本非常的昂貴,所以就定義了 Gas
機制,讓使用資源的人付費。
gas 是程式執行的成本,付給礦工努力工作的報酬。會有一篇獨立的篇幅,做更詳細的解釋。
3. 部署之後不能修改
一般程式上線之後,還是可以持續進行多次改版,但智能合約部署之後,程式邏輯就會固定,屏除了人為操縱的因素,所以與智能合約整合開發出的應用程式,又稱為去中心化應用程式 (DApp)。
4. 不需要有固定主機
當我們需要發布程式時,普遍認知我們會將程式執行在一台永不關機的主機。但智能合約運作原理是透過以太坊網路上眾多的節點,幫我們執行程式,而不是只靠一台主機。
ICO (Initial Coin Offering):數位貨幣首次公開募資
今天我們稍微了解了什麼是智能合約,它跟我們熟悉的程式有什麼不同,接下來會先從與開發相關的區塊鏈的基礎概念講起。