织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币 > 以太坊

键值对见证

时间:2021-01-18 16:55来源:未知 作者:admin 点击:
原文标题:《引介 | 无状态性:基于键值对的见证数据方案》 撰文:Igor Mandrigin 翻译:阿剑 无状态以太坊运动当前提议了一种区块见证数据(witness)的格式,详述见此处。这套区块见

原文标题:《引介 | 无状态性:基于键值对的见证数据方案》
撰文:Igor Mandrigin
翻译:阿剑

无状态以太坊运动当前提议了一种区块见证数据(witness)的格式,详述见此处。这套区块见证方案是基于操作码(opcode)的,你可以理解为一种小型的编程语言,可以使用少数几个命令来生成 「默克尔多值证明」

本文研究了另一种区块见证数据的建构方法,它基于一个键值对的列表,语义也更简单。

在本文中我将尝试回答下列问题:

  • 键值对见证数据(KV witness)是什么样的,与当前被提议的、基于操作码的见证数据格式有何区别?
  • 键值对见证数据与操作码见证数据相比,有什么优点和缺点?
  • 从网络带宽的角度看,键值对见证数据方案的效率如何?

见证数据方案需满足的)前提:

所有的区块见证数据方案都必须满足下列要求:

  • 正确(correctness)。保证节点可以执行来自以太坊主网的任意区块。
  • 效率(efficiency)。转移见证数据所需花费的网络带宽尽可能小。
  • 默克尔化(Merkelization)。必须支持合约代码默克尔化()。
  • 无视状态树的格式(Arity-agnostic)。既支持十六进制默克尔树,也支持二进制默克尔树(中文译本)。

语义

这一部分我先讲讲键值对见证格式的语义,还不会谈到具体的数据布局(byte layout)。

后面,我再讲解我用在测试中的数据格式。

引介 | 无状态性:基于键值对的见证数据方案

witness ::= header, body, proofs header ::= version : byte, trie_arity : byte body ::= array of [ { type: byte key : []byte, value : []byte } ] proofs ::= map { <type>: [ { prefix : []byte, hash : []byte } ] } (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容