
Filecoin – 一个越界Bug引发升级
Filecoin在11月24号需要强制升级,好奇看了看最新的代码。不看不知道,一看吓一跳。一个越界的Bug引发了这次升级。这个越界的Bug使程序实现的SDR算法和协议不一致。利用这个越界的Bug可以提升SDR的性能50%左右。
1 官方补丁
在11.02号官方提交一个补丁:
commit 0d17d7466f40e1228a4bab25f8b4861cb0d2da4d Author: Friedel Ziegelmayer <[email protected]> Date: Mon Nov 2 12:06:36 2020 +0100 fix(storage-proofs-porep): fix graph generation - expander: divide before casting to u32 - drg: move predecessor to the first position
这个补丁比较重要,这个补丁“修正”了当前的协议。整个SDR算法中节点的连接关系也发生了改变。
先讲讲简单的 drg: move predecessor to the first position改动,比较简单:
- parents[m_prime] = node - 1; + // Immediate predecessor must be the first parent, so hashing cannot begin early. + parents[predecessor_index] = node - 1;
一个节点的Base父亲节点的依赖,从原来的是最后一个Base父亲节点依赖上一个节点,变成了第一个Base父亲节点依赖上一个节点。简单的说,如果Base父亲节点的最后一个才依赖上一个节点,那Base父亲节点的前面一些节点可以先计算,无须依赖上一个节点的计算。使用老的算法,虽然不能完全提前算整个节点的结果,但是能提前一点好一点。改成最新的协议,这一点点也不能提前算了。
2 越界Bug
重点在于这个改动:expander: divide before casting to u32改动:
原始逻辑,就是在is_legacy包裹住的逻辑:
transformed as u32 / self.expansion_degree as u32
transformed的值是通过Feistel加密算法生成,具体的逻辑含义可以查看之前的文章。即使在不需要知道逻辑的情况下,可以估算出整个表达式的计算结果的范围。self.expansion_degree是固定值8。整个表达式的最大范围为:
2^32/8 = 2^29
注意的是,在32G扇区大小的情况下,节点个数是2^30次方。而这个表达式因为限制了transformed是32bit的无符号整数,导致了整个exp parents的范围在2^29次方范围内,并不是2^30次方。换个说法,在32G扇区大小的情况下,某一层的节点只依赖上一层的前一半节点。64G扇区大小的情况下,上一层依赖相对更少。
总结升级前的exp parents的依赖逻辑如下图:
也就是说,之前的SDR协议逻辑并不是Filecoin协议规定的SDR协议逻辑。在之前的SDR协议基础上,SDR的计算过程可以优化如下:
在某一层的一半计算完成后,可以立即开始下一层的计算,加速整个SDR的计算过程。整个计算可以加速50%左右。Oops。
3 升级时间
在build/params_mainnet.go定义了下两个版本的升级时间:
const UpgradeCalicoHeight = 265200 const UpgradePersianHeight = UpgradeCalicoHeight + (builtin2.EpochsInHour * 60)
Calico将在265200高度升级,也就是北京时间11月25号进行升级。Persian在Calico后2.5天完成。在两个版本中间的2.5天是个混合版本,新的和老的SDR协议都支持,从Persian开始,只支持升级后的SDR协议。
总结:
Filecoin官方在11月25号强制升级。升级前的SDR算法实现在越界漏洞,Exp父亲节点的依赖只和上一层的前一半的数据有关。SDR算法可以通过多个并行计算提高性能。升级后的SDR算法修复了漏洞,并同时加强了Base父亲节点的依赖关系。
来源:Star Li
比推快讯
更多 >>- 数据:当前加密恐慌贪婪指数为 49,处于中性状态
- Gensyn 联合创始人& CTO Harry Grieve 确认出席硅谷 101 x RootData 年度峰会
- ASTER 24 小时涨超 50%,市值升至 15.86 亿美元
- 经济学家:美联储快速降息将在未来几月大幅刺激比特币和山寨币上涨
- RootData:TICO 将于一周后解锁价值约 120 万美元的代币
- 马斯克:XAI 会在未来几个月筹集资金
- Yuga Labs 将放弃 APESTR 版税,用于回购 BAYC
- 数据:昨日以太坊现货 ETF 净流入 4800 万美元
- Rabby Wallet 暗示或将推出其原生代币 RABBY
- 法拉第未来宣布与 Sign 战略合作,探索美股与数字资产融合
- 贾跃亭旗下法拉第未来联合 Sign 基金会通过 4100 万美元 PIPE 交易投资 QLGN,以启动加密货币业务
- 孙宇晨:SunPerp 会推出存款挖矿与交易挖矿机制,全面提升参与感和收益性
- 数据:Hyperliquid 平台鲸鱼当前持仓 111.31 亿美元,多空持仓比为 0.88
- 香港警方接获一起 ETH 投资诈骗案件,受害人损失达 2,620 万港元
- 数据:过去 24h Binance 净流入 1.94 亿 USDT
- 某巨鲸花费 800 万美元 USDC 买入 11 亿枚 PUMP,均价 0.0072 美元
- Arca 疑买入 ENA 和 IMX,合计价值约 1070 万美元
- 某高风险交易员以 40 倍杠杆开仓 4628 万美元 BTC 多头头寸
- Falcon Finance 发布 FF 代币经济学:总供应量 100 亿枚,8.3%用于社区空投和 Launchpad 销售
- 某巨鲸过去 6 小时买入 134,628 枚 SOL,约合 3240 万美元
- 加密托管公司 BitGo 在 IPO 文件中披露上半年营收 41.9 亿美元,同比增长近四倍
- 通过 ETH 波段已盈利 7605 万的巨鲸/机构今日凌晨就再次以均价 4484 美元买入 16569 枚 ETH
- BitMine 又从 Galaxy 获得 15,427 枚 ETH,价值 6898 万美元
- 数据:某巨鲸向 Binance 存入 1,510 万枚 ENA,浮盈达 563 万美元
- Flora Growth 宣布 4.01 亿美元融资计划,转型 AI 基建
- 数据:ETH 当前全网 8 小时平均资金费率为 0.0058%
- Bitmine 过去 8 小时从 Galaxy Digital 收到 15427 枚 ETH
- FTX 将于 9 月 30 日的第三次破产分配中向债权人额外支付 16 亿美元
- Tether 于 3 小时前增发 10 亿枚 USDT
- 美股三大指数齐创收盘新高,Bullish (BLSH)上涨 5.44%
- 彭博分析师:$GDLC等新加密ETF首日交易表现强劲,成交规模均超市场平均水平
- 灰度提交修订版狗狗币ETF申请,纽交所Arca同时寻求修改其以太坊信托结构
- 加密托管商BitGo正式向美国SEC提交S-1文件,启动IPO流程
- 美联储理事米兰:认为未来几个月将继续降息
- 美国财政部就《GENIUS法案》稳定币规则的实施征求公众意见
- 甲骨文与Meta商谈200亿美元AI云计算合作
- 美股三大股指集体收涨,道指涨 172 点
- FTX将启动第三轮债权人偿付,总额达16亿美元
- X平台指控某加密诈骗团伙贿赂其员工以恢复账户
- 证券基金经理增持标普 500 净多头头寸至 891,634 手
- 戴利:就业市场放缓与美国经济前景有关
- 国际货币基金组织:货币宽松政策应继续以应对通胀目标
- Robinhood CEO下月将与美联储以及美国财长贝森特会面
- 美联储逆回购操作接纳 113.63 亿美元
- 知情人士:马斯克的xAI寻求融资100亿美元,估值飙至2000亿美元
- Arkm:Aster已成为BSC链上USDT最大持有方,持有量仅次于币安热钱包
- 旨在避免美国政府停摆的临时支出法案未能在美国参议院通过
- 旨在避免美国政府停摆的临时拨款法案在参议院未能获得通过所需票数,投票仍在继续
- 字节跳动:将按照中国法律要求推进相关工作,让 TikTok 美国公司继续服务美国用户
- 某新建钱包花费约 133 万美元买入 27321 枚 HFUN
比推专栏
更多 >>观点
比推热门文章
- Gensyn 联合创始人& CTO Harry Grieve 确认出席硅谷 101 x RootData 年度峰会
- ASTER 24 小时涨超 50%,市值升至 15.86 亿美元
- 经济学家:美联储快速降息将在未来几月大幅刺激比特币和山寨币上涨
- RootData:TICO 将于一周后解锁价值约 120 万美元的代币
- 马斯克:XAI 会在未来几个月筹集资金
- Yuga Labs 将放弃 APESTR 版税,用于回购 BAYC
- 数据:昨日以太坊现货 ETF 净流入 4800 万美元
- Rabby Wallet 暗示或将推出其原生代币 RABBY
- 法拉第未来宣布与 Sign 战略合作,探索美股与数字资产融合
- 贾跃亭旗下法拉第未来联合 Sign 基金会通过 4100 万美元 PIPE 交易投资 QLGN,以启动加密货币业务