美文网首页
CKB中的哈希算法

CKB中的哈希算法

作者: 爱写作的harry | 来源:发表于2020-04-28 23:17 被阅读0次

CKB 中主要使用的hash算法是 blake2b,下面我们通过一个 cell 的结构来说明 blake2b 的使用。


Cell相关的信息

上面的截图来自 ckb studio,图中的 Outpointaddress 字段不属于 cell,只是为了显示更多 cell 的信息。一个 cell 中包含四个字段:

  • capacity:容量
  • lock:表明了谁可以解锁/花费这个cell
  • type:限制了cell的生成规则
  • data:存放任意的数据

下面我们从截图中的字段一个个来看。

Outpoint

Outpoint 表示这个 cell 是在哪个交易中生成的,实际的结构是这样的:

OutPoint:{
  txHash: 0x6e,
  index: 0
}

其中的 txHash 长度为64,32字节/256位,使用的是 blake256(tx_hash_digest(tx))tx_hash_digest 是一种序列化方式,把除了 witnesses 字段以外的所有字段连接起来并生成 binary 的形式,然后通过 blake256 哈希算法生成256位的交易哈希。

script hash

script hash 是指整个 lock script 的 hash,与交易 hash 类似,也是先将 script 中的字段系列化,然后进行 blake256:
blake256(serialize(script))

code hash


code hash 对应的是一段代码(为二进制数据)的 hash,ckb 默认使用 secp256k1 的签名算法,测试网部署在这里:
https://explorer.nervos.org/aggron/transaction/0x6495cede8d500e4309218ae50bbcadb8f722f24cc7572dd2274f5876cb603e4e

args


args 中可以放任何的数据。对于 lock script 而言,默认会存放 public key的hash,使用的是 blake160

相关文章

  • CKB中的哈希算法

    CKB 中主要使用的hash算法是 blake2b,下面我们通过一个 cell 的结构来说明 blake2b 的使...

  • 一致性Hash算法的随笔

    常见的哈希算法 我们以往使用哈希算法,例如 JDK 1.8 中的HashMap,插入新的key需要确定哈希树桶中的...

  • 算法系列:5分钟了解哈希算法

    前言 哈希算法是现代密码体系中的一个重要组成部分。大家比较感兴趣的数字货币,就使用了哈希算法。 哈希算法简介 哈希...

  • 从0到1学习区块链5-密码学

    区块链中主要用到了哈希算法和非对称加密。1、哈希算法(hash)哈希算法是一种数学函数算法。又叫散列算法,他是一种...

  • 哈希算法(上):在实际的开发中,我们该如何用哈希算法解决问题

    哈希算法(上):在实际的开发中,我们该如何用哈希算法解决问题 极客时间原文链接 一、什么是哈希算法 前面学习到的 ...

  • 哈希(hash) - 哈希算法的应用

    什么是哈希算法 通过之前的学习,我们已经了解了哈希函数在散列表中的应用,哈希函数就是哈希算法的一个应用。那么在这里...

  • 哈希

    1.什么是哈希? 散列算法(Hash Algorithm),又称哈希算法,杂凑算法,是一种从任意文件中创造小的数字...

  • MySQL索引简述--哈希索引

    哈希算法 哈希算法时间复杂度为O(1),且不只存在于索引中,每个数据库应用中都存在该数据结构。 哈希表 哈希表也为...

  • 哈希算法如此简单易懂,你还学不会吗?

    哈希算法这个词可以说在比特币和区块链的世界中无处不在。那么哈希算法到底是什么呢? 哈希算法是指把任意长度的二进制映...

  • 哈希算法介绍-区块链基础

    介绍 哈希函数,或散列函数,又称为哈希算法,是一种从任何一种数据中创建小的数字“指纹”的方法。 实现 哈希算法将任...

网友评论

      本文标题:CKB中的哈希算法

      本文链接:https://www.haomeiwen.com/subject/axkiwhtx.html