iT邦幫忙

2022 iThome 鐵人賽

DAY 6
2
Web 3

從以太坊白皮書理解 web 3 概念系列 第 7

從以太坊白皮書理解 web 3 概念 - Day6

  • 分享至 

  • xImage
  •  

從以太坊白皮書理解 web 3 概念 - Day6

Ethereum: Smart Contract 與 Dapp

今天要來介紹 Ethereum 中的主角 Smart Contract。

Ethereum 主要的出現就是為了能夠在 EVM 執行 Smart Contract 來強化區塊鏈能力。

Dapp 指的是 Decentrailized Application , 去中心化的應用程式也是常常會被提到的一個概念。相對於一般的應用程式具有一個中心化的資料存儲,Dapp 的資料狀態是存儲在分散式的共識網路,類似於區塊鏈這樣的資料保存機制。

什麼是 Smart Contract ?

Smart Contract 雖然可以翻譯做智能合約,
但其實一點不智能且也不適合約。

Smart Contract 本質上是一個可以在 EVM 上執行的腳本,使用 Solidity 作為撰寫的語言。
具體來說,可以當作是一台數位化販賣機。當撰寫好腳本,如同設計好販賣規則。遇到對應的事件,就會自動觸發要執行的邏輯。然而,當販賣機設定完,你就無法去更改販售規則。要更改規則只能重新建立一台不同規則的販賣機。

Smart Contract 特性

自動執行

Smart Contract 發佈到鏈上後。EVM 在接收到呼叫 Smart Contract 的 Message 時,會自動去找到對應的 Smart Contract 邏輯執行。

有點類似 AWS 中的 lambda 可以在收到註冊事件時,自動去執行註冊好的邏輯。

執行碼可以公開檢視

Smart Contract 由 EOA 建立後,會把 Contract 內容發佈到鏈上。會產生該 Contract 的 ABI(Application Binary Interface)來當作對應接口。

其他 EOA 或是 Smart Contract 都可以透過ABI(Application Binary Interface)來對 Smart Contract 傳訊息。

執行結果可預測

Smart Contract 腳本會發佈到鏈上,且其無法隨意做修改。且撰寫是由具備俱備圖靈完備性的語言所撰寫。所以其執行結果可以從輸入來做預測。

透過 Oracle 機制來取得外部資料

Smart Contract 因為只能執行寫在腳本的內容,所以當需要創造一個隨著真實界資料而變動結果的合約,會需要一個可以統合外部資料的機制。這個機制就是所謂 Ethereum Oracle ,允許引入一些外部資料提供者到 Contract 內。來做一些更彈性的應用,比如根據天氣狀況來開分配獎金。

Oracle 問題

基本上可以看出,當引入外部中心化的資料來源後。 Smart Contract 就有可能被引入資料供應者所影響,而不再去中心化。

解決 Oracle 問題的方法: 引入去中心化的 Oracle

chainLink提出了一個去中心化oracle網路,來解決上述問題。

參考文獻

https://ethereum.org/en/smart-contracts/
https://www.youtube.com/watch?v=ZJfkNzyO7-U
chainLink


上一篇
從以太坊白皮書理解 web 3 概念 - Day5
下一篇
從以太坊白皮書理解 web 3 概念 - Day7
系列文
從以太坊白皮書理解 web 3 概念32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言