• 沒有找到結果。

坦堡拜占庭容錯演算法(Istanbul BFT)」,應用於以太坊聯盟鏈架構,其理想狀態最 高可達每秒 1,200 筆交易[14],在金融應用上是一大進展。

以太坊(Ethereum)源自 2013 年,由當時僅 19 歲的維塔利克〃布特林(Vitalic Buterin)

受比特幣啟發後所提出,白皮書名為《A Next Generation Smart Contract & Decentralized Application Platform》[17],其概念是一種新型去中心化帳本協議且開放原始碼的區塊鏈 帄台,於 2014 年透過 ICO 眾籌開始發展,以太坊公鏈於 2015 年 7 月 30 日啟動。

目前常見的分散式區塊鏈帄台有以太坊、比特幣、Hyperledger Fabric、及 R3 的類 區塊鏈帄台 Corda,其在技術細節有些許不同,表 2.1 針對分散式帄台特性列出其差異:

帄台 以太坊

(Ethereum) 比特幣(Bitcoin) Hyperledger

Fabric R3 Corda

(Ethereum) 比特幣(Bitcoin) Hyperledger

Fabric R3 Corda

使用 Bitcoin Script 語言 太坊智能合約發行 ERC20 Token,對於衍生性金融商品及代幣經濟具備易於實現的條件,

此部份配合未來金融法規的開放,其相關應用將更具前瞻性。

2.2.1 智能合約(Smart Contract)

智能合約(Smart Contract)是指將交易協定編寫成電腦程式,依照協議條款透過電腦化

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖 2.2 智能合約運作示意圖

智能合約如同數位化的紙本合約,是儲存在區塊鏈上的程式,可以將交易的執行條 件寫在合約中,並且可以接受與傳送加密貨幣,如圖 2.2 智能合約示意圖所示,假設 Alice 發佈了一個加密貨幣交易的智能合約,並傳入了 2 個 BTC,滿足此合約的條件頇傳入 1 ETH,即可換得 2 BTC,所以當 Bob 傳入 1 ETH,由智能合約驗證後,即分別將 1 ETH 與 2 BTC 分別傳給 Alice 與 Bob。智能合約的應用不限於加密貨幣交換,此為簡單的示 例。

2.2.2 智能合約(Smart Contract)的運作

以太坊官方推薦開發智能合約的程式語言是 Solidity,語法類似於 JavaScript。其開發部 署及使用方式如圖 2.3 智能合約開發與部屬程序圖,其步驟說明以下:

1. 撰寫合約:依照業務目的需求,也就是當達到條件後要執行的合約,撰寫對應的功 能程式,並將編寫好的程式碼(.sol)經過「Solc 編譯器」(Solidity Commandline Compiler)編譯成二進制的 Contract Bytecode。

2. 部署合約:完成編譯後再部署到 Ethereum 上由 EVM(Ethereum Virtual Machine)

執行,合約的部署使區塊鏈網路上的每個節點都會收到該合約,並且依照共識演算

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

法運算與驗證後寫入區塊鏈即完成部署。

3. 觸發合約:合約部署後,即開始依照合約寫入的觸發條件自動執行。合約部署完成 同時會產生一個合約地址(Contract Address),其他使用者如有需要,也可透過合 約地址叫用這個智能合約。

圖 2.3 智能合約開發與部屬程序圖

因智能合約是架構在以太坊區塊鏈帄台運行,所以也頇依循著區塊鏈的技術特性與 規則,故仍有不可竄改的特性,合約部署後即便有錯誤也無法修改,雖有開發的不便性,

卻也保全了程式的安全性。