热门话题
#
Bonk 生态迷因币展现强韧势头
#
有消息称 Pump.fun 计划 40 亿估值发币,引发市场猜测
#
Solana 新代币发射平台 Boop.Fun 风头正劲
这可能会引发争议,但你的交易应该能够抵御恶意的夹击验证者。
我构建了一个简单的程序来做到这一点。
你无法在运行时知道滑点是自然市场波动还是夹击攻击。但如果你的交换落在一个已知的恶意验证者上,你几乎可以保证会被夹击到你的最大滑点。
这让你能够反击。
✅ 在可信的验证者上?你的交易以你期望的滑点(x%)进行。
❌ 在恶意验证者上?你的交易滑点被调整(0%,x%的某个分数,任何你想要的)
在更黑暗的环境中运行时,你的交易可以在更严格的约束下成功,而不仅仅是回滚。
当你创建并签署交易时,你并不知道它将落在什么验证者上,因此改变行为的逻辑必须在链上。
那么它是如何工作的呢?一个Solana程序无法访问当前的验证者,但它可以访问当前的槽位。
该程序接受一个紧凑的表示(14字节,但可以进一步减少),以便让程序检查槽位的领导者是否被标记为恶意。
使用它的几种方法:
(1) 你可以将其直接插入作为一个简单的指令(<260 CU,大部分用于访问Clock sysvar)。当它落在恶意验证者上时,回滚整个交易。
(2) 你可以用它来包装Jupiter v6路由器。它将调用Jupiter程序并动态覆盖`slippage`值,但仅在它运行在恶意验证者上时。
(3) 通过CPI直接从你自己的程序调用它。
恶意验证者及其即将到来的槽位的列表可以从我们即将推出的Sandwiched[dot]me API或你自己的数据中获取。
请记住,这个原型是实验性的。它尚未在链上部署。希望能得到你的反馈,欢迎提交PR。

2.81K
热门
排行
收藏