干货|Eth1.x术语表
节点行为
Gossip
事务广播
P2P网络的功能,帮助分发?新的?事务到网络中的所有节点
依赖于节点能够访问?ETH?DevP2PProtocol或者?LES?DevP2PProtocol
依赖于执行事务验证的能力来防止对节点的DoS攻击
而验证事务是计算密集型的
区块广播
广播最新的区块
依赖于区块验证的能力
历史数据检索
检索区块头
根据哈希
根据区块号
可批请求,所请求内容必须是连续的,或者其前后之间有一致的间隔
检索区块体
所得数据需要根据?Header.transactions_root?和?Header.uncles_root?来验证
检索收据
根据区块分批检索
所得数据需要根据?Header.receipts_root?来验证
状态检索
PlatoFarm收购元宇宙聚合钱包Crosspoly相关技术团队和知识产权:据官方消息,PlatoFarm宣布收购元宇宙聚合钱包Crosspoly,技术团队和相关知识产权已完成交接。PlatoFarm曾是北美地区TOP5的经营类游戏并长期保持20万以上日活,此次收购Crosspoly是为了加速PlatoFarm链改工作,通过收购推动SecondSpace在元宇宙中生态发展和布局,相关负责人并未透露此次标的具体收购金额。Crosspoly是基于多重计算分布式秘钥管理的元宇宙一站式聚合钱包。[2021/9/7 23:06:33]
根据哈希值来检索单个状态树节点
在未来的协议中有可能会移除,因为这种检索机制与flatdatabaselayout有冲突
追随区块链
依赖于节点能访问区块广播网络
依赖于具有从全体区块头中获得的近期区块头
依赖于执行区块验证的能力来防止DoS攻击
事务验证
验证事务需要:
有能力执行?ecrecover?操作来确定发送者
确认该事务的nonce?正是?该发起事务的账户的下一个nonce
最高法:推进区块链等技术在知识产权审判和司法工作中深度应用:11月9日消息,最高人民法院副院长杨万明在新闻发布会上通报,《最高人民法院关于支持和保障深圳建设中国特色社会主义先行示范区的意见》由最高人民法院党组会审议通过,今天发布实施。《意见》指出将完善技术事实查明认定体系,推进区块链技术在知识产权审判中的广泛应用;全面推进区块链等信息技术在司法工作中的深度应用,提高司法工作智能化水平,全面加强智慧法院建设。加强数字货币、移动支付、与港澳金融市场和金融(基金)产品互认等法律问题研究,服务保障深圳金融业创新发展。(最高人民法院官网)[2020/11/9 12:04:31]
确认该账户的余额足以支付该事务的gas
需要了解EVM的规则来计算事务的gas值
区块验证
区块验证包含下述事项中的所有内容:
检查工作量证明的seal
计算密集型
比较同一高度上其它竞争区块的挖矿总难度
执行交易,以验证?Header.state_root?的正确性
需要区块执行能力
计算密集型
主链索引
主链区块索引
观点:比特币可以给央行行长提供有关数据安全的知识:在MIT比特币博览会上,麻省理工学院数字货币研究科学家Robleh Ali表示,比特币结合了透明性,加密技术和经济激励措施,可以向央行行长教授有关数据安全的知识。与传统系统相比,这是一种完全不同的实现安全性的方式:不是试图将数据隐藏在墙后,而是使系统具有内在的弹性。此外,CBDC可以被视为“第三代”数字货币。如果比特币是第一代,那么以太坊和其他所谓的智能合约平台可以被视为第二代。在CBDC系统中添加更多的东西是错误的方法,因为越复杂,就越给攻击者提供更多闯入的机会。第三代系统要比特币系统简单得多。(Technologyreview)[2020/4/21]
把区块号映射为该高度的主链区块的哈希值
需要从全部区块头中构建
每100万个区块,存储映射需占用61MB
区块号需要32字节
区块哈希值也要32字节
可以使用更高效的变长编码方法来减少长度
每个条目需要64bytes
截至2021年1月29日,主链区块索引总共占用约600MB的空间
只能够通过验证所得区块哈希是否等于该高度上已知主链的区块哈希值来证明
焦作市工商联:瞄准区块链等前沿知识 开展民营企业学习培训活动:4月7日消息,焦作市工商联要求,要依托国内知名企业、高校和培训机构,瞄准当前世界经济形势变化和5G、区块链等前沿知识,开展“请名人、进名校、拜名师、育民企”系列学习培训活动,努力建设一支具有现代发展理念、国际战略眼光、独立创新意识的高素质企业家队伍。(焦作日报)[2020/4/7]
如果能为协议引入区块头累加器的话,证明效率可以更高
主链事务索引
把事务的哈希值映射成该事务所在主链区块的哈希值,以及该事务在该块内的索引值。
需要从历史区块体中构建
截至2021年1月29日,总共有10亿笔历史事务
每个条目都需要占用70字节
可以使用变长编码方法来稍微减少长度
事务哈希值32字节
主链区块哈希值32字节
事务索引4字节
截至2021年1月29日,这些索引总共占用65GB空间
可以使用根据?Header.transactions_root?生成的默克尔证据来证明
区块头累加器
一类能让我们高效证明某个区块头来自主链的机制。基于https://ethresear.ch/t/double-batched-merkle-log-accumulator/571
动态 | 全新零知识证明论文被IEEE学术会议收录 或能抵抗量子计算机:由四位研究人员共同发表的论文透明多项式委托及其在零知识证明中的应用被第 41 届电气电子工程师学会安全隐私学术会议(IEEE S&P 2020)接受,其作者之一的Yupeng Zhang在推特上公开了该消息,他来自于德克萨斯州农工大学,另外三名作者来自于加州大学伯克利分校,分别是Jiaheng Zhang、Tiancheng Xie和Dawn Song (宋晓冬),宋晓冬教授也是区块链隐私计算平台Oasis Labs的创始人。据Yupeng Zhang介绍,该论文提出了一个全新且透明的零知识证明机制,可以提供非常快的验证时间,也不需要可信设置(trusted setup)。论文中介绍到,该零知识证明机制仅使用了轻量级的加密算法比如抗碰撞的哈希函数,所以也可能是量子安全的。[2019/12/26]
同步
历史同步
区块头同步
即一个节点追赶区块链的顶端时所用的进程。基于不同的安全等级,有几种同步方法“
完全验证
从创世块起下载全体区块头
检查点式下载法
使用一个自己信任的较近区块的区块头,并从该区块头开始追及区块链
追随HEAD
只需追随最新区块头,就可以相当有自信。区块链越长,攻击者要制造伪链所需付出的代价就越大
当前,只有掌握了全体区块头,才能够任意地验证其他历史数据。区块头累加器可以改善这个状态,使得一个客户端可以把检查点设在区块链顶端,而仍然能够验证历史数据。
区块同步
客户端用来pull历史事务和叔块信息的进程。
验证这些数据需要先有全体区块头,然后根据?Header.transactions_root?和?Header.uncles_root?来检查
收据同步
不执行FullSync的客户端往往需要通过ETHDevP2p协议来取得历史收据
验证这些数据需要先有全体区块头,然后根据?Header.receipts_root?和来检查
状态同步
节点获得近期状态完整副本的机制。
FullSync
下载所有历史区块并按顺序执行这些区块。
最简单的同步方法
计算量非常大
需要区块头同步
需要区块同步
快速同步
下载全部历史区块,以及近期状态数据的副本
使用了一个安全假设:从历史区块中得到的状态根都是正确的
要求历史同步
会给提供这些状态数据的节点造成很大的负担
FlatDtatabaseLayout不容易满足快速同步的要求
SnapSync
下载全部历史区块以及近期状态数据的副本
使用了一个安全假设:从历史区块中得到的状态根都是正确的
要求历史同步
非常适合FlatDtatabaseLayout
带宽、硬盘读写和耗费时间都有指数级节省
StatelessSync
这个术语并不常用,其定义也可能随时调整
不像其它状态同步方法,这一方法最终无法使节点获得近期状态数据的完整副本。就其自身而言,其用法是免去维护状态数据本地副本之需、仍能验证区块;或者,它可以与其他同步方法结合,从而能即时验证区块,然后慢慢在本地构建出可访问的完整状态数据。
需要区块广播
需要区块见证数据
BeamSync
光子同步本质上就是一种无状态同步,但不要求网络提供区块见证数据。相反,客户端是按需从网络中请求所需的状态
需要区块广播
需要按需状态检索
Accesslist的可得性大大提高了这种方法的效率
OnDemandStateRetrieval
即从网络中检索任意状态元素的能力。
GetNodeData
ETH?DevP2P协议会暴露信息对?GetNodeData/NodeData,允许检索任意状态。此消息格式可能会被弃用。
基于DHT的状态网络
一种设想:我们可以让状态分散在网络中的所有节点中,并使这些数据能够按需被发现及检索到。
执行
挖矿
要求节点能够:
访问待打包事务池
运行EVM
AccessList
在某些形式的EVM执行过程中会触及的账户和合约存储位置的列表
StateAccessPatterns
StaticStateAccess
EVM执行在某些时候会具备的一种属性:调用者可以准确地预知该次执行会触及哪些状态
DynamicStateAccess
EVM执行在某些时候会具备的一种属性:调用者无法准确地预知到底会触及哪些状态
区块执行
需要EVM执行
就是执行给定区块中所有事务的过程
计算密集型
EVM执行
举要EVM的某种实现
要求能够访问该次执行所触及的状态
可以使用近期状态来实现
也可使用区块见证数据来实现
账户管理
管理用于签署事务的私钥
账户一般会存储在一个Keyfile里
密钥文件
一种加密的存储格式,用于存储私钥
Eth2BLSKeystore规范:https://eips.ethereum.org/EIPS/eip-2335
Eth1Keystore规范:https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition
解密一般来说依赖于一些密码学元件,如:?keccak、?scrypt、?pbkdf2?和ECC/BLS12-381
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。