Skip to content

Latest commit

 

History

History
59 lines (43 loc) · 71.5 KB

dajuguan.md

File metadata and controls

59 lines (43 loc) · 71.5 KB
timezone
Asia/Shanghai

Po

  1. 自我介绍:我是EthStorage的研究员, 主要研究ZK和Layer2欺诈证明等
  2. 你认为你会完成本次残酷学习吗?Yes

Notes

2025.02.06

Week 1: Protocol Intro

  • 以太坊升级主要通过EIP提案
  • 执行层和共识层规范,采用python版本更容易理解
  • The Merge升级之后包括执行层和共识层
    • 执行层:

      • EVM执行交易;采用Merkle Patricia Trie存储账户、合约代码等状态数据,;执行层节点之间通讯采用JSON-RPC,;应用层采用JSON-RPC API与执行层交互
      • 有多个客户端实现: go_ethereum, reth
    • 共识层:

      • LMD GHOST (Latest Message Driven - Greedy Heaviest Observed SubTree)作为fork choice rule, 它决定链的最新规范区块;共识层节点有另一个P2P网络来通讯;RANDAO
      • 有多个客户端: Prysm, lighthouse等
    • 执行层和共识层通过Engine API来通讯

  • 社区讨论:
  • Week 1相关资料

2025.02.07

Week 1的视频基本看完了, Week2的视频复习了一下。 比较感兴趣的地方在于Merkle tree的更高性能实现,看了下Layer0和MegaETH这方面的解读. 此外对于节点间如何进行P2P通讯也很感兴趣, 打算用python或者go实现一个最简单的版本。

2025.02.08

学习Randao 以太坊beacon chain公平选取proposer, committee等都需要随机数。以太坊采用RANDAO机制来产生随机数,它能够累加来自参与方的随机性,每次出块proposal都会给RANDAO值混入一部分随机性(randao_reveal)。

这个随机数需要足够的公平,不能让proposal任意选取,否则就会给他一定的优势用来作恶。以太坊采用BLS签名作为RANDAO贡献的随机数,BLS有几个特性非常适合作为随机数:

  • 签名值可以认为是均匀分布的
  • 签名值对于其他验证者而言是无法预测的(由于他们不知道proposal的私钥),但是验证者很容易根据proposal的公钥验证签名

RANDAO更新的算法如下图:

<title>Diagram illustrating updating the RANDAO.</title>

  • 关于RANDAO的安全性分析,可以详见Ben Edgington的文章。文中提到还可以结合VRF,让proposer在决定自己提交的值之前确定是否要提交randao_reveal,以消除RANDAO的机会主义偏差。 自己写了一个简单的[RANDAO python代码]
  • 还可以参考EthStorage很好的使用RANDAO作为随机源的例子,在链上采用blockhash+proof验证randao

2025.02.09