以太坊的交易id是如何来的

基础概念

在计算机里,一个字节(Byte)是8个比特(Bit),即8位二进制数,即1Byte=8bit。8位二进制数也就是2位十六进制数。

举个例子:
全是0的1个字节就是 00000000,转换为十六进制字符串就是"0x00"
全是1的1个字节就是 11111111,转换为十六进制字符串就是"0xFF"
最低位是1的1个字节就是 00000001,转换为十六进制字符串就是"0x01"

前缀0x表示十六进制。

我们每进行一笔以太坊的交易,就会得到该笔交易的交易id,它是一个64位的十六进制字符串,例如:
“0x22a1264249302682475703933c819e32b4c1524938f93ff35b87c19f4e8beeb2”

在使用计算机编程语言go语言实现的以太坊里,它实际上是用32个字节的字节数组来表示的。所以这32个字节转换为十六进制字符串,也就是64位的十六进制字符串。

那么,这32个字节又是如何来的呢?是对整个交易结构的所有数据进行哈希的结果。该哈希值(即交易id)会被写入区块链里。我们平时在区块链浏览器里通过交易哈希查询一笔交易时使用的就是这个哈希值来进行查询的。

这里解释一下哈希是什么?哈希,英文Hash,从百度的解释结果就是:
Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值