黑客松#
自我审视,去中心化通用公证协议,它是定义了多重签名、质押和 ZKP 验证的规则,这是 协议层。在黑客松中,DApp 只是用来演示这个协议功能的一个工具。 协议具有更高的价值和更广阔的潜力。思考,Dapp 的演示流程是金融数据交换,如何解决匿名性。
方案一: 身份上链(DID/SBT)
方案二: 公证人的 “人为 KYC”
在金融场景中,该协议不追求完全的匿名。它追求的是 “可验证的、有权限的匿名”。通过 DID/SBT 等机制,将现实世界的身份权限映射到链上,让该协议能够判断 “这是一个有权限的实体发出的请求”,从而解决匿名性带来的信任问题。
源码学习#
这周重温了 uniswap 的源码,主要是回顾了 v3 版本,同时与 v2 版本进行对比学习。v3 集中了流动性,流动性可以设置自己的价格区间,提高了资本利用率。v3 引入了多层级手续费,满足不同风险偏好。改良了预言机,引入了更安全的机制,支持任意区间的时间加权平均价格(TWAP);提供 “累积快照” 机制(observe () 函数);可直接作为链上价格参考,减少攻击面。Tick & Tick Spacing(价格刻度机制),这个价格刻度机制在学习 v3 的时候很关键,与核心数学逻辑相关,尤其是√P。这里也涉及了项目设计上的思想。同时发散性思考了 EVM 的一些机制,为什么不用浮点数,EVM 能并发执行多少个交易请求等等。
不支持浮点数的原因:
- 不可确定性,浮点数运算会因四舍五入导致不同节点结果不同,影响共识
- 精度丢失,以太坊交易结算精度高达 18 位小数,浮点数根本不够
- 难以验证,浮点数无法在链上复现完全一致的结果(不同编译器 / 平台会不同)
- Gas 高,浮点模拟运算消耗大量算力和存储
uniswap 的解决方案是用 Q64.96 表示(64 位整数 + 96 位小数)