交易

资讯 2024-07-11 阅读:38 评论:0
X最後編輯: @Xeift(opens in a new tab), 2024年6月14日在本頁面前置要求什麼是交易?資料欄位交易類型關於燃料交易的生命週期視訊示範Typed Transaction Envelope 交易衍生閱讀相關主題交...
美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

最後編輯: @Xeift(opens in a new tab), 2024年6月14日

交易是帳戶發出的帶密碼學簽章的指令。 帳戶將發起交易以更新以太坊網路的狀態。 最簡單的交易是將以太幣從一個帳戶轉帳到另一個帳戶。

為了讓你更容易理解本頁,建議你先閱讀帳戶及我們的以太坊介紹

以太坊交易是指由外部帳戶發起的操作,換句話說,此帳戶是由人而不是智慧型合約管理的帳戶。 例如,如果 Bob 發送給 Alice 1 以太幣,Bob 的帳戶必須扣除,Alice 的帳戶必須存入。 此更改狀態的操作發生在交易中。

顯示交易導致狀態變化的圖表 此圖源於以太坊EVM圖解(opens in a new tab)

交易會改變以太坊虛擬機的狀態,須廣播至整個網路。 任何節點都可以廣播要在以太坊虛擬機上執行的交易請求;之後驗證者將執行交易並將引起的狀態變化傳播到網路上的其他節點。

交易需要支付費用並需要添加至經過驗證的區塊中。 為了讓本文更好理解,我們會在其他地方講解燃料和驗證。

提交的交易包括下列資訊:

  • – 發送者(簽署交易者)的地址。 這會是外部帳戶,因為合約帳戶無法發送交易。
  • – 接收地址(如果為外部帳戶,交易將傳輸值。 如果為合約帳戶,交易將執行合約程式碼)
  • – 發送者的識別碼。 當發送者以私密金鑰簽署交易並確認發送者已授權此交易时,就會產生此簽章。
  • - 用來表示帳戶中交易編號的按順序遞增計數器
  • – 發送者轉帳至接收者的以太幣數量(面額為 WEI,1 以太幣等於 10 的 18 次方 wei)
  • –可選欄位,可填入任意資料
  • – 交易可以使用的最大燃料單位數量。 以太坊虛擬機指定了每個計算步驟的所需燃料單位
  • - 已使用燃料的最高價格,可作為給驗證者的小費
  • - 願意為交易支付的每單位燃料的最高費用(包含 和 )

燃料指請驗證者處理交易所需的計算。 使用者必須為計算支付費用。 和 決定支付給驗證者的最高交易費。 更多燃料相關資訊

交易物件看起來有些像以下內容:

1{
2 from: "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8",
3 to: "0xac03bb73b6a9e108530aff4df5077c2b3d481e5a",
4 gasLimit: "21000",
5 maxFeePerGas: "300"
6 maxPriorityFeePerGas: "10"
7 nonce: "0",
8 value: "10000000000",
9}
顯示全部
複製

但交易物件需要使用發送者的私密金鑰簽署。 這證明交易只可能來自發送者,而不是以欺詐方式發送。

Geth 之類的以太坊用戶端將處理此簽署過程。

JSON-RPC 呼叫範例:

1{
2 "id": 2,
3 "jsonrpc": "2.0",
4 "method": "account_signTransaction",
5 "params": [
6 {
7 "from": "0x1923f626bb8dc025849e00f99c25fe2b2f7fb0db",
8 "gas": "0x55555",
9 "maxFeePerGas": "0x1234",
10 "maxPriorityFeePerGas": "0x1234",
11 "input": "0xabcd",
12 "nonce": "0x0",
13 "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0",
14 "value": "0x1234"
15 }
16 ]
17}
顯示全部
複製

回應範例:

1{
2 "jsonrpc": "2.0",
3 "id": 2,
4 "result": {
5 "raw": "0xf88380018203339407a565b7ed7d7a678680a4c162885bedbb695fe080a44401a6e4000000000000000000000000000000000000000000000000000000000000001226a0223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20ea02aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663",
6 "tx": {
7 "nonce": "0x0",
8 "maxFeePerGas": "0x1234",
9 "maxPriorityFeePerGas": "0x1234",
10 "gas": "0x55555",
11 "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0",
12 "value": "0x1234",
13 "input": "0xabcd",
14 "v": "0x26",
15 "r": "0x223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20e",
16 "s": "0x2aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663",
17 "hash": "0xeba2df809e7a612a0a0d444ccfa5c839624bdc00dd29e3340d46df3870f8a30e"
18 }
19 }
20}
顯示全部
複製

交易具備簽章雜湊值,因此可通過加密技術證明交易來自發送者並提交至網路。

大多數交易從外部帳戶存取合約。 大部分合約都用 Solidity 寫成,並根據 解譯其資料欄位。

前四個字節位元組使用函式名稱及參數的雜湊值指定要呼叫的函式。 有時候可以從使用此資料庫(opens in a new tab)識別選擇器中的函式。

calldata 的剩餘部分是參數,依據 ABI 規範中的說明編碼(opens in a new tab)

例如,我們來看下這筆交易(opens in a new tab)。 使用 Click to see More 檢視 calldata。

函式選擇器為 。 一些已知的函式具有此簽章(opens in a new tab)。 在這個例子中,合約的原始程式碼(opens in a new tab)已經上傳到 Etherscan,所以我們知道函式是 。

其餘資料如下所示:

10000000000000000000000004f6742badb049791cd9a37ea913f2bac38d01279
2000000000000000000000000000000000000000000000000000000003b0559f4

根據 ABI 規範,應用程式介面中的整數值(例如地址,20 字節位元組的整數)顯示為 32 字節位元組的字,並且前面用 0 來填補。 所以我們知道 地址為 (opens in a new tab)。 為 0x3b0559f4=990206452。

以太坊上有幾種不同類型的交易:

  • 一般交易:從一個帳戶至另一個帳戶的交易。
  • 合約部署交易:沒有「to」地址的交易,其資料欄供合約程式碼所用。
  • 合約執行:與部署的智慧型合約互動的交易。 在本例中,「to」地址為智慧型合約的地址。

如上所述,執行交易需要花費燃料。 簡單的轉帳交易需要 21000 單位燃料。

所以,若 Bob 要以 190 gwei 的 還有 10 gwei 的 給 Alice 發送 1 以太幣,Bob 將需要支付以下費用:

1(190 + 10) * 21000=4,200,000 gwei
2--或者--
30.0042 以太幣

Bob 的帳戶會被扣除 -1.0042 以太幣(1 以太幣給 Alice + 0.0042 以太幣用來支付燃料費)

Alice 的帳戶將存入 +1.0 以太幣

基本費用將銷毀 -0.00399 以太幣

驗證者將保留 +0.000210 以太幣的小費

所有智慧型合約互動也需要燃料。

顯示如何退還未使用燃料的圖表 此圖源於以太坊EVM圖解(opens in a new tab)

任何交易中未使用的燃料都會退還給使用者帳戶。

一旦交易被提交,就會發生以下情況:

  1. 透過加密方式生成交易雜湊值:
  2. 然後該交易會廣播到網路並添加到交易池中,交易池中包含了其他所有等待中的網路交易。
  3. 為了要驗證交易並使交易「成功」,驗證者必須選擇你的交易並將它打包進區塊中。
  4. 隨著時間推移,含有你交易的區塊會被升級為「已證明」,然後是「最終化」。 這些升級進一步確定 你的交易已經成功且永遠不會被更改。 當區塊「最終化」後,就僅可能被網路層級的攻擊變更, 此類攻擊需要花費數十億美元。

觀看 Austin 為你講解交易、燃料和挖礦。

以太坊最初有一種形式的交易。 每筆交易都包含 nonce、gas price、gas limit、to address、value、data、v、r 與 s。 這些欄位均為 RLP 編碼,看上去像是以下內容:

以太坊不斷演進以支援多種交易類型,以便在實作存取清單和 EIP-1559(opens in a new tab) 等新功能時不會影響原有交易形式。

EIP-2718(opens in a new tab) 是支援此類行為的協議。 交易的解釋如下:

其欄位定義如下:

  • - 介於 0 和 0x7f 之間的數字,代表總計 128 種可能的交易類型。
  • - 由交易類型定義的任意字節位元組陣列。

認識社區或社團資源能幫助大家學習更多? 歡迎自由編輯或添加於本頁!!

美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址
文字格式和图片示例

注册有任何问题请添加 微信:MVIP619 拉你进入群

弹窗与图片大小一致 文章转载注明

分享:

扫一扫在手机阅读、分享本文

发表评论
平台列表
美化布局示例

欧易(OKX)

  全球官网 大陆官网

币安(Binance)

  官网

火币(HTX)

  官网

Gate.io

  官网

Bitget

  官网

deepcoin

  官网
热门文章
  • 0.00006694个比特币等于多少人民币/美金

    0.00006694个比特币等于多少人民币/美金
    0.00006694比特币等于多少人民币?根据比特币对人民币的最新汇率,0.00006694比特币等于4.53424784美元/32.5436 16人民币。比特币(BTC)美元(USDT)人民币(CNY)0.000066944.53424784【比特币密码】32.82795436 16比特币对人民币的最新汇率为:490408.64 CNY(1比特币=490408.64人民币)(1美元=7.24人民币)(0.00006694USDT=0.0004846456 CNY)汇率更新时...
  • 0.00003374个比特币等于多少人民币/美金

    0.00003374个比特币等于多少人民币/美金
    0.00003374比特币等于多少人民币?根据比特币对人民币的最新汇率,0.00003374比特币等于2.2826 1222美元/16.5261124728人民币。比特币(BTC)美元(USDT)人民币(CNY)0.00003374克洛克-0/22216.5261124728比特币对人民币的最新汇率为:489807.72 CNY(1比特币=489807.72人民币)(1美元=7.24人民币)(0.00003374USDT=0.0002442776 CNY)。汇率更新于2024...
  • 1983年,山西老人致信央行:人民币上的“中国人民银行”是我写的

    1983年,山西老人致信央行:人民币上的“中国人民银行”是我写的
    阅读本文前,请点击红色“关注”按钮,方便大家讨论和分享,给您带来不一样的参与感。谢谢大家的支持!1983年,山西日报发表了一篇异常简短的文章,主要内容是:“人民币的字体作者是纪。“不久后,上海《新民晚报》也发表了一篇报道,主要内容与《山西日报》基本相同。二人转文章的排版只占一小部分,但不妨碍大家关注此事。一位家住山西的老人看完文章后显得有些不解:“不是啊,人民币上的字明明是我写的。我怎么能把它戴在别人头上呢?”本着尊重历史的原则,老人的女儿给报社写了两封“澄清信”,分别寄给了...
  • 1929经济大萧条或许即将重演?

    1929经济大萧条或许即将重演?
    人类似乎陷入了一个历史悖论,即我们总是重复同样的错误,无法真正从过去的错误中吸取教训。近年来,我们对世界各地接连不断的挑战和危机深感不安。20 19年突如其来的疫情,乌克兰的战火硝烟,欧洲的天然气供应危机以及全球少数国家的饥荒,所有这些问题都像洪水一样,一个接一个地涌来。如果你今天感到心情沉重,不要失去希望,因为明天可能会带来更严峻的挑战。首先,让我们深入讨论名为1929大萧条的时期。这场大萧条实际上是指从1929到1933的一场影响深远的经济危机。这场危机首先起源于美国,然...
  • 2000年美国GDP占世界的304%,中国GDP仅占35%,现在呢?

    2000年美国GDP占世界的304%,中国GDP仅占35%,现在呢?
    GDP作为全球公认的实力基准,就像是一个大国实力的代言人,它是布雷顿森林体系下全球团结的声音。它不仅仅是数字的累积,更是大国综合实力的人格化,默默诉说着每个国家的辉煌与荣耀。虽然GDP不是衡量一个国家综合实力的唯一标准,但无疑是最关键的指标之一。作为一面镜子,它反映了国家的经济实力和发展水平,是国家综合实力的重要体现,不容忽视。2000年,中国GDP迈过/克洛克-0/万亿美元的重要门槛,达到/克洛克-0/。2/克洛克-0/万亿美元(折合人民币7。7万亿元)。然而,在全球经济的...
标签列表