Menu

  • Home
  • Trending
  • Recommended
  • Latest

分類

  • #2021 新年特輯
  • 100天區塊鏈挑戰
  • 2019 台灣區塊鏈產業指南
  • 2020 台灣區塊鏈產業年鑑
  • 2022 台灣年度最影響力人物榜
  • 2023 台灣年度影響力人物榜
  • 2023 新春特輯
  • 2024 TON Hacker House
  • 2024新春特輯
  • ABS 2018 專題報導
  • AI
  • CBDC是什麼?為何全球都在積極研究、有什麼優點與隱憂
  • Cefi
  • dao
  • dApps
  • defi
  • DePIN 如何開啟去中心化物理網路革命?
  • Entertainment
  • EOS
  • EOS insights
  • Gaming
  • Howto & Style
  • ICO
  • JiaJia
  • Layer 2
  • Libra
  • Movie
  • Music
  • News
  • nft
  • Plurality 多元宇宙
  • Starknet 空投落地,後續帶來什麼影響?
  • TON的崛起之路》背靠 Telegram 如何實現 Web3 大規模應用?
  • Uncategorized
  • Web3.0
  • 中國
  • 亞太
  • 交易所
  • 人物專訪
  • 以太坊
  • 以太坊
  • 以太坊 Dencun 坎昆升級將臨,你需要知道的所有事
  • 以太坊再質押協議為何成為最熱門賽道?
  • 供應鏈
  • 保險
  • 債券
  • 元宇宙
  • 全台最大詐騙案!Ace交易所涉垃圾幣詐騙
  • 全球加密貨幣監管最新動態統整
  • 其他國家
  • 其他幣別
  • 分散式帳本技術
  • 創投
  • 加密貨幣「詐騙手法」整理,學習如何保護你的資產
  • 加密貨幣市場
  • 區塊鏈平台
  • 區塊鏈新手全攻略,你需要知道的加密貨幣基礎
  • 區塊鏈新手教學
  • 區塊鏈活動
  • 區鍵禧
  • 即時新聞
  • 台灣
  • 哈希派
  • 國際組織報告
  • 多元宇宙Plurality有多重要?未來20年人類躍進關鍵
  • 央行
  • 娛樂平台
  • 安全
  • 專欄作者
  • 巴拉區塊事
  • 市場分析
  • 幣安與美國司法部達成 43 億美元和解,CZ認罪
  • 影片測試的分類
  • 快訊
  • 技術
  • 抓住空投爆擊!值得埋伏的項目、互動教學總整理
  • 投資分析
  • 挖礦
  • 推薦閱讀
  • 搶先看
  • 支付
  • 政府報告
  • 數位產權
  • 數據報告
  • 概念
  • 歐洲
  • 比特幣
  • 比特幣現貨ETF上市,真帶來了增量資金?
  • 比特幣第四次減半將臨,行情怎麼走?
  • 比特幣銘文大爆發,Oridinal 如何改變 BTC 生態?
  • 比特彭
  • 汪彪
  • 法規
  • 測試網
  • 灰度
  • 物聯網
  • 犯罪
  • 獨立觀點
  • 瑞波
  • 環境永續
  • 社交
  • 私人機構報告
  • 稅務
  • 穩定幣
  • 管制
  • 美國
  • 肺炎
  • 能源
  • 訴訟
  • 評級報告
  • 財金哥 & 區塊妹
  • 身份驗證
  • 遊戲
  • 鄧庶杭
  • 金融市場
  • 銀行
  • 錢包

Subscriptions

  • 零壹財經 01 binary
    01 Binary
  • 0xdt
  • 0xJigglypuff
  • aaaaYYYY
  • ABCDELabs

Recent News

  • 圖解多元宇宙》V神、Glen力推的Plurality是什麼?為何協作技術是人類社會進步關鍵
  • 精選文章搶先看!動區登入Access質押訂閱服務,解鎖寶貴資訊快人一步
  • ABS獨家專訪》Gitcoin共同創辦人Scott:台灣是現實與Web3治理的重要交匯點
動區動趨-最具影響力的區塊鏈新聞媒體
  • Home
    • Home Layout 1
    • Home Layout 2
    • Home Layout 3
  • Browse
    • News
    • Movie
    • Music
    • Technology
    • Howto & Style
    • Entertainment
    • Gaming
  • Features
    • Youtube Video
    • Vimeo Video
    • Dailymotion Video
    • Self-hosted Video
    • User Profile
    • Playlists
    • User-created Playlist
    • Favorite Playlist (Private)
    • Watch Later Playlist (Private)
    • All JNews Features
No Result
View All Result
  • Login
  • Register
UPLOAD
動區動趨-最具影響力的區塊鏈新聞媒體
No Result
View All Result
Home 區塊鏈新手教學

文組也該知道的區塊鏈技術知識 <7> 以太坊區塊鏈架構

Blockchain Technical Overview Structure of Blockchain (Ethereum)

Lai Jack 賴彥廷 by Lai Jack 賴彥廷
2020-12-29
in 區塊鏈新手教學
941 10
0
文組也該知道的區塊鏈技術知識《1》 從一筆交易來看 ETH 與 BTC 之異同
1.3k
SHARES
5.9k
VIEWS
Share on FacebookShare on Twitter

RelatedPosts

以太坊現貨ETF是什麼?與期貨差異、如何投資、優缺點、發行方式..完整分析

以太坊聚合 L3 zkEVM 網路「zkLink Nova」 TVL 突破10億美元

比特幣符文(Runes)是什麼?與銘文、BRC-20差異、蝕刻原理、生態系…全整理

本文作者為賴彥廷,於區塊鏈解決方案服務商 Pelith 沛理科技擔任專案經理,本系列文章並不會談到太深的技術鑽研,而是以深入淺出的方式,讓每一個想要了解區塊鏈技術的讀者,都可以在讀完後說出:原來如此!

本文目錄

  • RelatedPosts
  • 以太坊現貨ETF是什麼?與期貨差異、如何投資、優缺點、發行方式..完整分析
  • 以太坊聚合 L3 zkEVM 網路「zkLink Nova」 TVL 突破10億美元
  • 比特幣符文(Runes)是什麼?與銘文、BRC-20差異、蝕刻原理、生態系…全整理
  • How Ethereum Blockchain Work
  • 以太坊交易的一生
    • A. 單純的 Ether 轉帳交易
  • B. 部署智慧合約(Smart Contract)
    • C. 呼叫合約進行互動
    • 德國銀行報告|與黃金模型對比分析得出,比特幣將於 2020 年獎勵減半時上看 90,000 美元
    • 農曆新年到,該如何和長輩解釋「什麼是區塊鏈」?
    • 尼克森下台,《銀行保護法》到現今恐怖主義,Mastering Bitcoin作者講述「銀行終究會被比特幣摧毀」的故事

 

上一節 我們帶大家核心地認識了區塊鏈架構的全貌,相信大家都更加瞭解區塊鏈運作的機制和原理。本篇文章我們將接續上篇來介紹 區塊鏈 2.0 以太坊- Vitalik 如何在中本聰設計的比特幣架構上進行升級與改動,透過首度揭曉的「以太坊區塊鏈架構圖」帶大家完整認識以太坊的運作原理!

Vitalik Buterin 領銜設計的 區塊鏈 2.0-以太坊 Ethereum

How Ethereum Blockchain Work

以太坊虛擬機(EVM — Ethereum Virtual Machine)

智慧合約進到各節點之 EVM 執行示意圖
智慧合約進到各節點之 EVM 執行示意圖

介紹以太坊區塊鏈架構前必須要介紹一下「EVM」 ,EVM 是以太坊為了讓人人都能成為節點而創造的計算引擎。由於每個節點的軟硬體環境可能都不一樣,為了確保每個節能都能進行一樣的運算,於是各個節點都 透過 EVM 來執行 Ethereum 交易的狀態轉移與智能合約,以確保每一個節點都有相同的執行環境。

前言完畢,緊接著我們便來一探究竟:

以太坊交易的一生

有別於比特幣的 UTXO,以太坊是採用 Account 的架構。

由於以太坊多了智慧合約的設定,將會分成 A. B. C 三個 part 來做說明,

我們先從最單純的 Ether 轉帳交易開始看起:

A. 單純的 Ether 轉帳交易

「 單純的 Ether 轉帳交易 」示意圖
「 單純的 Ether 轉帳交易 」示意圖
  1. 一個使用者(EOA)欲發起一筆交易。
  2. 透過錢包(管理私鑰的工具)輸入交易資訊
    To: 對方接收地址;
    Amount: 欲轉移的 Ether 數量;
    Gas Price: 單位 Gas 給的手續費;(參閱 第 5 節)
    Gas Limit: 普通的 Ether 轉移交易都是 21,000 Gas,不用動;
    Input Data: 視是否要在交易中留下文字訊息。
  3. 以私鑰簽署交易。
  4. 廣播「加上簽名的交易封包」至鄰近的以太坊節點們。
  5. 節點接收到新交易時,會先至 State Database 檢查交易發起地址是否具有足額 Ether(Balance)可做轉移,若無則該交易會即刻被丟棄。
  6. 若檢查後確認有足額,則該交易會被放入到 Tx Pool 中。
    (按照 Gas Price 設的多寡由高至低排序)
  7. 等待出塊的同時,各節點會
    A. 廣播接收到的交易
    B. 接收未在 Tx Pool 內的交易
  8. 礦工節點們(有在用電腦算力找 nonce 值,拼出塊獎勵的節點)會撈取手續費較高的交易們,進到 EVM 運算並更改狀態值後,將已完成運算的交易們來打包成新區塊(運算中出現錯誤的交易會被丟棄),隨後用電腦算力來計算 nonce 值。
    *註:這邊的 nonce 值 跟前面介紹過的 以太坊地址的 nonce 值 不同(以太坊有兩個 nonce:一個是挖礦的;一個是地址的交易序次。)
    *註 2:運算的同時便會消耗 Gas。
  9. 成功找到 nonce 值,出塊的礦工會獲得出塊獎勵及該區塊所有打包交易給的手續費。
  10. 該礦工節點將新的區塊廣播至全世界的其他節點們。
  11. 其他節點同步 <8660586 區塊高度(最新的區塊)>、
    <State Database>、<Tx Pool> 資料,繼續廣播與接收新交易。
  12. 礦工節點再從 Tx Pool 中撈取未出塊的交易們運算並打包成新的區塊。

以上,便是一筆以太坊交易從發送到出塊會經歷的流程。緊接著我們來一探究竟智慧合約是如何部署的:

B. 部署智慧合約(Smart Contract)

我們在第 2 節 其實有概略性的介紹過一次,此刻我們搭配示意圖更完整地來介紹一遍吧!

「 部署智慧合約 」流程示意圖
「 部署智慧合約 」流程示意圖
  1. 以 Remix 或其它開發工具撰寫完成智慧合約。
  2. 將原始碼編譯為 Bytecode。
  3. 使用者(EOA)透過錢包(管理私鑰的工具)輸入交易資訊
    To: 0x0
    Amount: 視是否要將 Ether 打入合約中
    Gas Limit: 按照合約繁複程度決定要設多少
    Gas Price: 視交易狀況及欲出塊的時間急迫性
    Input Data: 放入合約 Bytecode
  4. 以私鑰簽署交易,廣播「加上簽名的交易封包」至鄰近的以太坊節點們。
  5. 節點接收到新交易時,一樣會先至 State Database 檢查交易發起地址是否具有足額 Ether(Balance)可做轉移(有些情況會把 Ether 打入合約) ,若無足額則該交易會即刻被丟棄。
  6. 若檢查後確認有足額,則該交易會被放入到 Tx Pool 中。
    (按照 Gas Price 設的多寡由高至低排序)
  7. 等待出塊的同時,各節點依舊會
    A. 廣播接收到的交易
    B. 接收未在 Tx Pool 內的交易
  8. 礦工節點們撈取起本筆合約部署交易,進到 EVM 運算。
  9. 將合約程式碼部署至 Program Code ROM,是個部署後便不能進行更動的 Read-Only Memory(唯獨記憶體)。
  10. 同時,智慧合約亦可以另外使用記憶體(Memory)來儲存合約所需要紀錄的資訊。例如:一個發行 ERC-20 Token 的智慧合約,便可以使用記憶體來 紀錄各個以太坊地址所「持有 Token 數量」,追蹤各個地址的 ERC-20 Token Balance。
  11. 上方步驟完成後,便會將運算後的結果(合約地址、Gas Used)寫回到該筆交易中。
  12. 礦工節點們將運算完的交易們 打包成新區塊(運算中出現錯誤 或 Gas 給不夠 的交易會被丟棄),隨後用電腦算力來計算 nonce 值。
  13. 成功找到 nonce 值,出塊的礦工會獲得出塊獎勵及該區塊所有打包交易給的手續費。
  14. 該礦工節點將新的區塊廣播至全世界的其他節點們。
  15. 其他節點同步 <8660586 區塊高度(最新的區塊)>、
    <State Database>、<Tx Pool>、<Contract Code ROM>、
    <ERC-20 Token Balance> 資料,繼續廣播與接收新交易。
  16. 礦工節點再從 Tx Pool 中撈取未出塊的交易們運算並打包成新的區塊。

以上,便是一筆智慧合約部署的交易從發送到出塊會經歷的流程。

最後,我們來解析呼叫智慧合約進行操作與互動:

C. 呼叫合約進行互動

這部分我們在 第 2 節 與 第 4 節 其實也有概略性的介紹過,

此刻我們搭配示意圖,更著重在節點的部分,較完整地來介紹一遍吧!

「 呼叫智慧合約 」流程示意圖
「 呼叫智慧合約 」流程示意圖
  1. 透過 DApp 介面或其它方式來呼叫智慧合約進行互動
  2. 生成以下形式的交易格式:
    To: 合約地址
    Amount: 視是否要將 Ether 打入合約中
    Gas Limit: 按操作合約的繁複程度決定要設多少
    Gas Price: 視交易狀況及欲出塊的時間急迫性
    Input Data: 放入以 hex 型態表示 的「要呼叫的合約 function 與 參數」
  3. 以私鑰簽署交易,廣播「加上簽名的交易封包」至鄰近的以太坊節點們。
  4. 節點接收到新交易時,一樣會先至 State Database 檢查交易發起地址是否具有足額 Ether(Balance)可做轉移(如牽涉到) ,若無足額則該交易會即刻被丟棄。
  5. 若檢查後確認有足額,則該交易會被放入到 Tx Pool 中。
    (按照 Gas Price 給的多寡由高至低排序)
  6. 等待出塊的同時,各節點依舊會
    A. 廣播接收到的交易
    B. 接收未在 Tx Pool 內的交易
  7. 礦工節點們撈取起本筆「合約操作交易」,進到 EVM 運算。
  8. 根據合約地址撈出 Program Code ROM 中的合約程式碼。
  9. 依照 MethodID (Function Hash) 找到合約中對應的 Function。
  10. 將相關參數填入進行對應運算。
    以 ERC-20 Token 的 Transfer Function 為例,運算時便會更改相關地址的 ERC-20 Token Balance。
  11. 上方步驟完成後,便會將運算後的結果(新的 Token Balance、Gas Used)寫回到該筆交易中。
  12. 礦工節點們將運算完的交易們 打包成新區塊(運算中出現錯誤 或 Gas 給不夠 的交易會被丟棄),隨後用電腦算力來計算 nonce 值。
  13. 成功找到 nonce 值,出塊的礦工會獲得出塊獎勵及該區塊所有打包交易給的手續費。
  14. 該礦工節點將新的區塊廣播至全世界的其他節點們。
  15. 其他節點同步 <8660586 區塊高度(最新的區塊)>、
    <State Database>、<Tx Pool>、<ERC-20 Token Balance> 等資料,繼續廣播與接收新交易。
  16. 礦工節點再從 Tx Pool 中撈取未出塊的交易們運算並打包成新的區塊。

以上,我們便核心地介紹完了以太坊區塊鏈的架構。儘管有許多的技術細節我們此時並未完整交代也未深入著墨,但相信對於初學區塊鏈技術讀者來說應該能逐步建立起區塊鏈架構的全貌。未來我們將持續在這基礎上解析更多面向的區塊鏈技術知識,謝謝大家!

以上若有任何

A. 不夠清楚的地方
B.
撰寫上改進的建議
C.
希望我能夠撰寫分享的區塊鏈技術知識內容

?相關報導?

德國銀行報告|與黃金模型對比分析得出,比特幣將於 2020 年獎勵減半時上看 90,000 美元

農曆新年到,該如何和長輩解釋「什麼是區塊鏈」?

尼克森下台,《銀行保護法》到現今恐怖主義,Mastering Bitcoin作者講述「銀行終究會被比特幣摧毀」的故事


《BlockTempo動區動趨》LINE官方號開通囉~立即加入獲得第一手區塊鏈、加密貨幣新聞報導!

加入好友

Recommended videos

3:48

Fintech Summit and Expo to Begin on September 23

2.5k Views
2024-06-25
    7:02

    10 Old Trends That Everyone Is Wearing Again in 2020

    2.5k Views
    2024-07-25
      47:59

      One Handed Guitarist Finds Great Success As Musician

      2.5k Views
      2024-06-20
        2:48

        Glastonbury introduces new campsite to reduce waste

        2.5k Views
        2024-07-11
          Show More
          Copyright (c) 2019 by Jegtheme.
          • About
          • Buy JNews
          • Request A Demo
          • Contact
          No Result
          View All Result
          • Account
          • BlockTempo Beginner – 動區新手村
          • Change Password
          • Forgot Password?
          • Home 1
          • Home 2
          • Home 3
          • Jin-homepage
          • Latest
          • Login
          • Profile
          • Register
          • Reset Password
          • Trending
          • Users
          • Users List Item
          • 不只加密貨幣,談談那些你不知道的區塊鏈應用|動區新手村
          • 所有文章
          • 關於 BlockTempo

          © 2025 JNews - Premium WordPress news & magazine theme by Jegtheme.

          Welcome Back!

          Login to your account below

          Forgotten Password? Sign Up

          Create New Account!

          Fill the forms below to register

          All fields are required. Log In

          Retrieve your password

          Please enter your username or email address to reset your password.

          Log In

          Add New Playlist