一般的以太坊 EOA transactions 交易的生命週期為何?以太坊區塊鏈上,一筆簡單的交易背後怎麼運作?文章標題「Life of a Transaction」題目擬寫,主要模仿曾經看到的「Life of a Navigation」,Oskov 先輩 2018 年的演講題目(https://youtu.be/mX7jQsGCF6E?si=MMRRu9GfqUWhskL4) 想的。不知道這樣的下標,是否會比較好理解嗎?
想像一個情境:你想送 0.1 顆以太幣給你的日本朋友,為了付他先幫你出的錢。如此一筆普通的類似銀行外幣轉帳匯款的交易,背後發生什麼事情?在以太坊上一筆交易怎麼進行?光是「以太坊交易生命週期是什麼?」這一件事的討論,就有一百種講法。這篇文章分享的是其中一種,可能算比較接近主流的理解。
首先,你在瀏覽器打開狐狸錢包 MetaMask,敲一敲,敲一敲。按下送出。這時候,你會有筆交易送到以太坊的 p2p 網路。Transaction 交易是實際上是指一筆資料。
而由你這位 EOA 外部擁有帳戶(an externally-owned account)同學所發起的這筆交易(EOAs initiate transactions.)。交易資料上面寫了什麼呢?交易資料上寫很多資料,像是會寫,發送人的地址、收款人的地址、要發送的金額是多少、手續費多少、簽章、nonce 計數器等等的資料。這筆交易資料會送到以太坊的 p2p 網路。最後他會出現在區塊鏈驗證者(validator)的 memory pool 裡面。
區塊鏈驗證者(validator)會從 memory pool 裡,拿好幾個交易打包成一個區塊。這包括你的交易。驗證者(validator)打包到區塊裡之後,會把區塊再發回(廣播 broadcast)以太坊 p2p 網路。其他節點會收下這個新的區塊,並且執行這筆交易讓他發揮效果,對以太坊 world state 做出變更。也就是會從你的 EOA 地址裡面做資料的更新。
假設你的 EOA 原本有 0.5 顆以太幣,現在減少 0.1 顆以太幣。再減掉手續費。接著在日本人朋友的 EOA 底下增加 0.1 顆以太幣的餘額。接下來日本人朋友他在他的錢包 app 裡面,看到他的餘額增加了 0.1 顆以太幣。
參考文章: