您当前的位置: 首页 >  以太坊

mutourend

暂无认证

  • 1浏览

    0关注

    661博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

以太坊交易中的nonce和confirmation

mutourend 发布时间:2021-06-01 23:23:17 ,浏览量:1

1. 以太坊交易中的nonce及其价值 1.1 以太坊交易中的nonce值

在以太坊中,每笔交易都有一个nonce值,该nonce值代表的是从该交易发起地址发出的交易数。(当存在使用同一地址从多个客户端发起交易时,客户端需从链上同步nonce值。具体也可参见chainlink中的同步机制。) 在英文中,nonce表示的仅可使用一次的数字。 在密码学中,nonce为以随机或伪随机方式产生的一次性使用的数字,用于保护主密码传输安全,防止重放攻击。

当你发送交易时,需对该nonce值增加1。 符合以下规则的交易可认为是有效交易:

  • 交易必须是有序的。不可能 具有nonce 1的交易 在 具有nonce 0的交易 之前被挖出。
  • nonce值是连续的,不存在跳跃的情况。若不存在具有nonce 0和nonce 1的交易,则不可能挖出具有nonce 2的交易。
1.2 以太坊交易中nonce值的价值

由于以太坊交易中nonce值代表了交易的顺序,因此可防止双花。 当双花交易确实发生时,则通常需遵循以下流程:

  • 交易由某一方发起;
  • 等待交易注册;
  • 需从该笔交易中收集某些信息;
  • 此时有另一笔交易以更高的gas费快速发起;
  • 第二笔交易被优先挖出,从而使第一笔交易失效。

这也是为何交易所要等待一定数量的confirmation之后才允许你对新存入的资金进行交易。 而对于以太坊来说,以上流程不可能成立。因为在以太坊中,第二笔交易(如具有nonce 3)不可能在第一笔交易(比如具有nonce 2)之前被挖出。

2. 区块链中交易的confirmation

区块链中一笔交易的confirmation,意味着该笔交易已验证且已通过挖矿等方式添加到了区块链中。 当一笔交易被挖出,其即被包含在区块链中了,其得到了1个confirmation。

不同的区块链平台其挖出区块的时间各不相同,该时间称为blocktime。 在Bitcoin中,平均每10分钟挖出一个新的区块。当有一个新的区块之后,现有区块链中的每笔交易都额外增加了一个confirmation。当交易被reverse或双花时,confirmation数量会减少。

对于incoming交易,通常需要一定数量的confirmation。当某笔交易的confirmation数量达到一定值之后,可认为该笔交易已接收。

不同平台所需的confirmation和相应的预估时间如下: 在这里插入图片描述

参考资料

[1] What Are Blockchain Confirmations and Why Do They Matter? [2] Why is my transaction “pending”? [3] Block time and confirmation time [4] How many confirms is considered ‘safe’ in Ethereum? [5] What are the differences (and relationship) between the steps used to (1) validate a transaction and (2) confirm a block? [6] What number of confirmations is considered secure in Ethereum? [7] What is a Block Confirmation on Ethereum? [8] What is the required number of confirmations? [9] What is a Nonce?

关注
打赏
1664532908
查看更多评论
立即登录/注册

微信扫码登录

0.0386s