wong_ssh Profile Banner
WongSSH Profile
WongSSH

@wong_ssh

Followers
5K
Following
4K
Media
202
Statuses
673

Build https://t.co/Vv4120dWCb Solidity/Huff/Cairo/Taproot engineer

Joined November 2022
Don't wanna be here? Send us removal request.
@wong_ssh
WongSSH
16 hours
我之前在学习 Invariant Test 时,从 Recon Book 内看到过使用 Echidna optimization mode 将简单的舍入误差放大的方法,但我猜测此处的 fuzz 大概率不是直接使用这种方法,估计写了一个特化的 fuzz 程序 https://t.co/Pkjtg6dOdA
0
0
3
@wong_ssh
WongSSH
16 hours
根据攻击路径提出者的推文大概知道该路径可能是 fuzz 出来的,或者找到了一个高度消耗算力的优化算法 https://t.co/WiL1zB7nkf
@tomer_ganor
Tomer Ganor
2 days
Appreciate it! Pretty sure my CPU needs a vacation after this one 🤣
1
0
6
@wong_ssh
WongSSH
17 hours
与之前的攻击不同,这些池子内都不能直接兑换 BPT,所以攻击者需要找到一条额外的路径放大误差,所以只能依赖池子内的两种代币 Swap 直接放大误差 https://t.co/hcCnSV2u05
1
0
0
@wong_ssh
WongSSH
17 hours
Balancer 白帽攻击了自己的部分池子,这些池子都属于 MetaStable Pool,使用的算法还是 StableSwap,但使用了 TWO_TOKEN 类型,所以 BPT 代币没有显式在 vault 内部的 balances 数组内出现。MetaStable Pool 内部使用 total supply 跟踪 BPT 代币,使用 mint 或者 burn 直接修改。
@Balancer
Balancer
2 days
In connection with the recent Balancer V2 stable-pool incident, a new value-extraction path was identified in V2 meta-stable pools. In coordination with @CertoraInc and @_SEAL_Org , Balancer team initiated a whitehat recovery around 7PM UTC and has secured ~$4.1M to controlled
1
4
18
@wong_ssh
WongSSH
2 days
这种行为基本都是 Set Hash 原语的自己造轮子实现,如果合约内出现这种行为建议直接使用 Elliptic Curve Multiset Hash https://t.co/lD2X1MVbuy
Tweet card summary image
arxiv.org
A homomorphic, or incremental, multiset hash function, associates a hash value to arbitrary collections of objects (with possible repetitions) in such a way that the hash of the union of two...
0
2
10
@wong_ssh
WongSSH
2 days
对任何哈希结果进行加减乘除或者异或计算都是需要十分警惕的,这极有可能打破哈希函数的安全属性导致协议被黑,经典案例就是 Panoptic 内 XOR 计算以及古老的 ConditionalTokens 审计中被发现的 getCollectionId 函数。这些漏洞都允许伪造不存在的头寸在协议中获利。
4
11
58
@wong_ssh
WongSSH
4 days
Balancer 是对 swap 的 amoutOut 进行手续费收取,而 Uniswap 是对 amountIn 收取手续费。 简单思考了一下,对于 amount out 收取手续费可以在某种程度上优化 LP 收益。原因在于对 amount out 收取费用可以削减知情交易者收益,知情交易者在套利时获得的代币更有价值,对其收费有利于 LP 保留利润。
1
3
16
@wong_ssh
WongSSH
5 days
文章链接: https://t.co/HaGLqBNa4n 不得不说 Balancer v2 阅读难度等同于 Uniswap v3,大量的代码与各种有趣设计确实带来了不少风险,很多有趣设计都需要思考一下才可以理解。比如不变量 D 在很多流程下被多次计算,本质上是手续费逻辑在 AMM 数学公式中引入了不良属性
Tweet card summary image
hackmd.io
Balancer v2 作为以太坊内最核心的 AMM 之一,不久前遭受了一次严重的黑客攻击,接近 1 亿美金的 ETH 流动性质押代币被盗取。本文将以 Base上的 攻击交易 为例,该攻击攻击了 [cbETH, WETH, BPT] 池。我们将以此攻击为例,介绍攻击者如何执行攻击,以及攻击合约到底进行哪些链上计算。其他链上对 Balancer 以及 fork 版本的攻击与 Base...
0
3
46
@wong_ssh
WongSSH
5 days
Balancer v2 被盗事件已经人尽皆知,过去 4 天都在看 v2 源代码,虽然该项目被盗了。但作为 AMM 研究者,我还是阅读了以下核心部分代码: 1. Pool 的创建 2. 流动性管理 3. Swap 不变量与计算 4. Protocol Fee 的分配 Balancer 代码相当庞大,有很多有趣的协议设计,一并学了 StableSwap 的计算和求解
6
25
158
@wong_ssh
WongSSH
11 days
最后,我想要承认我对 Balancer 并不熟悉,我在今晚之前甚至没有读过 Balancer 的合约,上述信息都是在今晚分析攻击交易和阅读文档和部分源代码获得的,极有可能存在问题,假如存在任何问题,欢迎批评指正
2
0
13
@wong_ssh
WongSSH
11 days
目前怀疑超大供应量的 BPT token 导致 StableSwap 内进行牛顿法迭代求解时出现了舍入问题,并且多次迭代还放大了 D 值的误差。 另外,目前觉得这种依靠迭代求值的 AMM 都好危险,分析起来格外复杂。当然,目前大部分 AMM 领域还是提倡 AMM 存在闭式解,闭式解显然更好进行数学审计和分析
1
1
12
@wong_ssh
WongSSH
11 days
另外拿到的一些消息是被攻击的 stable pool 使用的是 Curve 的 StableSwap 算法 https://t.co/cKSF1dUjK5 合约内 solidity 版本的实现就是直接抄的 curve 的 vyper 实现。但是 Balancer 与 Curve 不同,Balancer 内存在 BPT 这种代表 LP 的代币,这种代币的初始化时会被赋予较大的初始值
1
0
10
@wong_ssh
WongSSH
11 days
今天晚上花了一点时间研究了 Balancer 被盗事件,大概知道了一点点攻击原理,但是没有完全分析出来。我已知的信息如下: 1. 攻击者的 0x524c9e20 调用本质上是在链上迭代计算令 x[0] = 1 所需要的 swap 方法 2. 攻击者首先利用 token -> BPT 使得 token 数量减少至 100000000000 3. 一定利用了舍入误差
3
6
82
@wong_ssh
WongSSH
11 days
今天下午在 4seas 介绍了智能合约开发中的构造器、函数定义和存储布局问题。与过去几次课程类似,这篇文章也是深入浅出的,所有内容和过去一致都直接涉及到 solidity 语法在 EVM 底层是如何使用字节码实现的。理论上初学者也可以阅读该文章入门 solidity 开发,但部分反馈说很多内容对初学者而言太深了
@4seasDeSoc
4Seas
11 days
full details:
2
7
25
@wong_ssh
WongSSH
18 days
公开了这次课程的讲义,这次课程最有趣的是在最后介绍如何使用 cast proof 获取账户的 World State Tire Proof 并阅读分析输出的 Proof Data。其他部分主要介绍了 nonce / gas 等底层原理。附带了利用 nonce 替换交易和处理单账户异步发送交易的 nonce 管理的案例,还有另一些有趣的示例
@4seasDeSoc
4Seas
19 days
See details:
1
1
38
@wong_ssh
WongSSH
19 days
明天下午 3:30 会在 @4seasDeSoc 继续自底向上学习以太坊,在上一节课程中,我们介绍助记词、私钥、ABI 编码等内容,在本节课中,我们主要介绍 nonce / Gas 以及 RLP 编码部分。实际上本节课程的最后我们将真正实现从零构建一笔以太坊交易的目的。
@4seasDeSoc
4Seas
19 days
Tomorrow | 10.27 | 15:30–17:30 GMT+7 A Bottom-Up Approach to Ethereum Development: NONCE, GAS and RLP with @wong_ssh A session on how Ethereum’s logic unfolds from its primitives. Full transcript after the event.
3
0
30
@wong_ssh
WongSSH
22 days
这个反对也在情理之中,paradigm 有一支工程团队一直在编写 solar 这个 solidity 编译器,并且估计也做了很多研究尝试解决当前的问题。很难想象 paradigm 放弃可能已经数百万美金的投入。可以预见,也许未来 foundry 默认支持 solidity classic 而不是 solidity core,这可能导致智能合约工程师分裂
4
0
10
@wong_ssh
WongSSH
22 days
solidity 工程师团队发表文章介绍 core solidity 计划,这篇文章正式确定目前的 solidity 处于功能冻结状态,只会在 IR 优化阶段增加优化,而开发团队则将推出一门新语言 core solidity 并在未来满足开发者需求,而当前我们使用的 solidity 将被称为 solidity classic paradigm CTO 对此行为表示反对
@gakonst
Georgios Konstantopoulos
23 days
Maybe unpopular opinion, I think Solidity as-is is mostly fine, and the highest priority thing to fix is _not_ new syntax / language features but the complier: - make compilation 100x faster - make gas optimization 100x better - solving stack too deep - making the compiler easier
4
2
24
@wong_ssh
WongSSH
23 days
昨天下午在 4seas 介绍了很多有趣的内容,主要介绍了以太坊交易生命周期的最早部分,即助记词、私钥、公钥、地址,以及交易的 data 部分的编码。每一个部分都包含基于 Foundry 的实际操作以及部分源代码,另外每部分知识都包含必要的拓展,比如在介绍 geth 校验签名时引入了 Nick's Methods.
@4seasDeSoc
4Seas
24 days
🚀 Today Event | 15:30–17:30 GMT+7 📖 Topic: A Bottom-Up Approach to Ethereum Development: From Mnemonics to Transactions by @wong_ssh 🥳perfect for builders who want to understand the fundamentals. More details: https://t.co/bXN1uU02AF #Ethereum #Web3
3
0
14