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 區塊鏈新手教學

文組也該知道的區塊鏈技術知識《4》用比特幣就能發幣?一文看懂代幣演進史(下篇)

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

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

本文目錄

  • RelatedPosts
  • 以太坊現貨ETF是什麼?與期貨差異、如何投資、優缺點、發行方式..完整分析
  • 以太坊聚合 L3 zkEVM 網路「zkLink Nova」 TVL 突破10億美元
  • 比特幣符文(Runes)是什麼?與銘文、BRC-20差異、蝕刻原理、生態系…全整理
  • 代幣轉移的成本
  • 以太坊 2.0 與無頭合約
  • 《下篇》結論
    • 文組也該知道的區塊鏈技術知識《2》:一次搞懂「以太坊智慧合約」如何運作
    • 文組也該知道的區塊鏈技術知識《1》 從一筆交易來看 ETH 與 BTC 之異同

 

RelatedPosts

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

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

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

在《上篇》中我們談到從比特幣開始到以太坊 ERC-20 Token 出現的自定義代幣發展史。《下篇》將更著重在以太坊技術面的介紹,並在最後綜觀代幣演進發展史給予一些觀點評論。

代幣轉移的成本

大家在第 1 節中應該都了解到區塊鏈加密貨幣交易必須支付手續費給礦工,那麼既然「自定義代幣」要透過區塊鏈來進行傳輸,當我要發送代幣給別人,支付手續費給礦工也是很合乎邏輯的。

接著要解釋的部分會用到許多第 2 節的概念,如果您還沒讀過,建議您先去閱讀,否則可能會有些難消化。

假設我(A)要把 10 個 Pelith Token(自定義代幣)轉給 B,其實是發生了什麼事呢?我簡單做了一張示意圖來說明。(只做概念闡釋,省略了很多可以很複雜的中間細節)

首先要知道,在區塊鏈上發行代幣不是真的發行硬幣或發行鈔票,而是建立了一個「類 Excel 帳本」來紀錄誰擁有多少代幣。當我們進行代幣轉移時,只是更改這個帳本上格子裡的數字。

因此,當我透過智慧合約創造了 Pelith Token 時,建立了一個類似 Excel 的表格來追蹤所有 Pelith Token 持有者的持有數量,並且這些資料會以某種形式儲存備份在每一個節點中(對,就是在全節點那 200 G 左右裡)。

當我要把 10 個 Pelith Token 轉給 B 時,我必須發送一筆接收對象為合約地址的交易,礦工看到便知道我是要對智慧合約進行操作,不是一般發送 Ether 給別人的交易。並且在 Input Data 中呼叫我要操作動作的 function,輸入相對應的參數,大概會長類似下面這樣:

我要call的function格式:
transferFrom(address _from, address _to, uint256 _value) 
[從address _from傳送 _value 數量的代幣到 _to錢包地址]填入參數:transferFrom(0xA⋯⋯, 0xB⋯⋯, 10)
→ transferFrom(0xA⋯⋯, 0xB⋯⋯, 10000000000000000000)
註:第三個參數 uint256_value 是 10 個 Pelith Token,不過因為在以太坊上沒有小數點,所以進入運算時要以 wei (10^-18,以太坊最小的單位)來進行,因此在10後面要補上18個0。然後轉換成類似下面這個樣子:
0x23b872dd000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000008ac7230489e80000
再放入 Input Data 中。*(0xA⋯⋯, 0xB⋯⋯, 10) 這一串 function 中的參數 稱為 “Payload”(裝載的貨物)

這些 Bytecode 被礦工驗證執行後,更新了「帳本內」對應地址的 Balance,隨後連同其它交易一起打包入新的區塊中。最先找到 Nonce 獲得出塊權利的礦工廣播給其它節點,直到各節點同步完成,並確認區塊在最長區塊鏈中,便正式驗證我(A)把 10 個 Pelith Token 轉給 B 了。

而以上這些動作,其實跟交易一樣須繳些許的 Ether 手續費給礦工。當你的 ERC-20 Token 要轉移給一個新的地址持有時(假設 B 過去未曾持有過 Pelith Token),我們在「帳本中」便必須要多開一個格子來記錄並追蹤這個地址的 Balance。

要「多開一個格子」的價格是 20,000 gas ;「更改一個現有格子內的數字」的價格是 5,000 gas,在這筆交易中一共更改了 A、B 兩格,故是 10,000 gas。再加上交易的基本手續費 21,000 gas。我執行了將 10 Pelith Token 轉給 B 的動作,總共花費了 51,000 gas。

執行操作的 Gas 總花費計算:
20,000 gas + 5,000*2 gas + 21,000 gas = 51,000 gas手續費(Eth)= Gas Used * Gas Price
51,000 gas * 10 Gwei(fast) = 510,000 Gwei = 0.00051 ETH = 0.1 USD
(以 1 Ether = 200 USD 計算)
大約 3 塊台幣,便是更改一個格子大約需付出的手續費。

(如果你看不懂上面灰色框框在幹嘛,那麼你可以在 第1節 中找到資訊)

至此,我們知道了轉移 Token 須付出的手續費。如果轉移的量很大,其實金額也是有一定量的。並且,若你的 Token Transfer 交易無效,被彈掉時(例如你只有 10 個 Token 卻發了 20 個給別人),由於必須到礦工要改格子時才會觸發 error,但礦工已執行了這筆交易到觸發 error 為止的運算。故雖然交易失敗,手續費還是要付。

以太坊 2.0 與無頭合約

最近隨著以太坊 2.0 有越來越多的消息釋出,出現了一個新名詞:「無頭合約」。原本在智慧合約,當我們從 Input Data 呼叫合約中的 function 後,合約中的程式碼便會執行邏輯運算去更新「帳本」內的 Balance。

然而,以太坊 2.0 的 Phase 1 並沒有 EVM,無法執行合約中的邏輯部分。因此發佈的合約中的 function 會長下面這個樣子:

transferFrom(address _from, address _to, uint256 _value) {
  }

原本 1.0 的合約 function 是長這個樣子:

transferFrom(address _from, address _to, uint256 _value)returns (bool) {
    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    emit Transfer(_from, _to, _value);
    return true;
  }

這是什麼意思呢?就是當我們在 Input Data 中呼叫了合約中的 function,但 function 並不會真的去更新帳本上格子裡的 balance。因此這個合約只是個空殼,雖然看起來有東西,但實際上卻不會執行動作。

因此當我們發送 to 合約的交易,在 Input Data 中輸入 :

transferFrom(0xA⋯⋯, 0xB⋯⋯, 10)

合約並不會真的更新帳本(因為根本沒有帳本的存在),也不會同步到其它的節點中。因此這些 Input Data 輸入的內容只是被當作一般的備註文字訊息被寫在 to 合約的交易中。於是呢,又回到了比特幣 Omni Layer 的做法,我必須要去爬這些所有的「便條紙」上的資訊,才會知道最新各地址的餘額狀態。也因此,我們發送呼叫這個合約的交易,因為不會進行邏輯執行,所以實際上可以省下非常多的 gas,只需要付出交易的基本手續費 21,000 gas 加上些許的文字寫入 gas 費用。

我們回顧到目前為止 4 節 的內容,可以發現區塊鏈從 1.0 的比特幣,到 2.0 的以太坊,最大的升級便是智慧合約的功能,允許開發者可以客製化開發許多需要的功能。

《下篇》結論

  1. 在區塊鏈上發行代幣不是真的發行硬幣或發行鈔票,而是建立了一個「類 Excel 帳本」來紀錄誰擁有多少代幣
  2. 代幣轉移時必須發送一筆接收地址為合約地址的交易,並在 Input Data 中呼叫合約中的 function 進行操作,並付出相應的運算成本給礦工。
  3. 以太坊 2.0 的 Phase 1 中由於沒有邏輯執行的功能,因此智慧合約都成了「無頭合約」,讓以太坊 2.0 再次被當作如 Omni Layer 般的「便條紙」來使用。

?相關報導?

文組也該知道的區塊鏈技術知識《2》:一次搞懂「以太坊智慧合約」如何運作

文組也該知道的區塊鏈技術知識《1》 從一筆交易來看 ETH 與 BTC 之異同


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

加入好友

Recommended videos

30:01

Emma Watson Talks About Turning 30 to British Vogue

2.5k Views
2024-07-20
    5:31

    When We Finally Find Aliens, They Might Smell Terrible

    2.5k Views
    2024-07-15
      精選文章搶先看!動區登入Access質押訂閱服務,解鎖寶貴資訊快人一步

      精選文章搶先看!動區登入Access質押訂閱服務,解鎖寶貴資訊快人一步

      2.5k Views
      2024-09-04
        2:01

        Gundala Director Joko Anwar Lets ‘Imaginations Go Wild’

        2.5k Views
        2024-06-24
          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