iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 19
0
Blockchain

Go to Blockchain: 從區塊鏈基礎到用 Go 實作區塊鏈系列 第 19

Go to Blockchain: Day19 乙太坊的突破-智能合約

  • 分享至 

  • xImage
  •  

智能合約的起源

  • 智能合約是由 Nick Szabo 所提出來的概念,它是只讓交易過程自動化執行的一個方法
  • 他舉了自動販賣機的例子:
    • 如果使用者投入 10 元且按 A 按鈕,販賣機就掉出麥香
    • 如果使用者投入 20 元且按 B 按鈕,販賣機就掉出可樂
    • 如果使用者投入 30 元且按 C 按鈕,販賣機就掉出泡麵
  • 換句話說就是滿足 A 條件就做 A 事的概念

區塊鏈的智能合約

  • 跟 Nick Szabo 的智能合約一樣是能夠自動執行合約條款,產生效果的電腦程式

  • 三大優點-透明、去中心化、自動化

    1. 在區塊鏈上部屬智能合約後,這份合約就沒辦法被修改了
    2. 在區塊練上的智能合約是公開的,因此參與合約的人都可以直接審查代碼
    3. 只要條件滿足,無人能阻止區塊鏈執行智能合約
  • 合約的組成

    1. 合約主體
      • 有合約主體才能自動鎖定及解開合約中的相關商品或服務
    2. 數位簽名
      • 智能合約需要所有參與者透過他們的私鑰來啟動這份合約
    3. 合約條款
      • 智能合約內條款所有操作,均需由所有參與者認同並簽署後才可執行
    4. 區塊鏈平台
      • 智能合約被部屬的地方
  • 而由於合約有公開透明的特性,因此會很適合被使用在一些線上賭博的地方

合約的執行

  • 由於合約是一份電腦程式,它必須在寫完程式碼編譯後,才能執行
  • 而在寫智能合約最常用的語言就是 Solidity

「solidity」的圖片搜尋結果

  • 那智能合約是怎麼執行的呢 ?
    • Smart Contract 就是一個運行在區塊鏈 VM 上面的 instance。
    • 我們在寫 Java 的時候,原始碼會先經過 Java 編譯器轉譯成 Bytecode ,接下來會透過JVM 在電腦中執行,並且我們會在 main() 裡面建立一個我們寫的類別的 instance
    • 在 Smart Contract 被部屬上去的時候,這份合約會被創造出一個 instance,而這個 instance 就會被放在區塊鏈上,而 EVM 則會運行在每一個 Ethereum 節點上,如此每個人就可以 call 這個函數

上一篇
Go to Blockchain: Day18 新興的區塊鏈應用-以太坊
下一篇
Go to Blockchain: Day20 乙太坊另一個創新-DAPP
系列文
Go to Blockchain: 從區塊鏈基礎到用 Go 實作區塊鏈30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言