作者:路畅
来源:律动研究院
链上除了可以记录交易,每笔交易更可附上自定义的文本。借助一最简单又最基础的功能,人们可以做很多有趣的事情。举一个最简单的例子——链上聊天。此前,律动曾撰文介绍过使用以太坊传递信息的情况,详情可见《其实有很多人在用以太坊聊天》。
而由于以太坊自身网络的特性,链上交易gas费用高昂。虽然有人在使用以太坊进行聊天,但这种使用方式难以普及。有多少用户愿意为了发送一条消息而支付十美元呢?
通过区块链聊天,这的确是一个有趣的想法,但在以太坊上似乎并不可行,但如果使用别的网络呢?建立在Solana之上的Jabber就在尝试实践这个有趣的构想。
11月底,Jabber上线了app的测试版。Jabber是一款「Telegramlike」的聊天App,而它有趣之处在于,每一条消息,都是一笔在Solana链上发送的交易。受益于Solana的高性能和低成本,将消息作为交易发送,并不会让用户的成本高到难以承受。
Beosin:EthTeamFinance项目遭受到了漏洞攻击事件简析:据Beosin EagleEye 安全预警与监控平台检测显示,ETH链上的EthTeamFinance项目遭受漏洞攻击,攻击合约0xCFF07C4e6aa9E2fEc04DAaF5f41d1b10f3adAdF4通过LockToken合约的migrate函数没有正确验证_id和params的漏洞,将WTH,CAW,USDC,TSUKA代币从V2流动性池非法升级到V3流动性池,并且通过sqrtPriceX96打乱V3流动池的Initialize的价格,从而获取大量refund套利。共计套利了约1300多万美元。[2022/10/27 11:49:12]
Grim Finance 被黑简析:攻击者通过闪电贷借出 WFTM 与 BTC 代币:据慢雾区情报,2021 年 12 月 19 日,Fantom 链上 Grim Finance 项目遭受攻击。慢雾安全团队进行分析后以简讯的形式分享给大家。
1. 攻击者通过闪电贷借出 WFTM 与 BTC 代币,并在 SpiritSwap 中添加流动性获得 SPIRIT-LP 流动性凭证。
2. 随后攻击者通过 Grim Finance 的 GrimBoostVault 合约中的 depositFor 函数进行流动性抵押操作,而 depositFor 允许用户指定转入的 token 并通过 safeTransferFrom 将用户指定的代币转入 GrimBoostVault 中,depositFor 会根据用户转账前后本合约与策略池预期接收代币(预期接收 want 代币,本次攻击中应为 SPIRIT-LP)的差值为用户铸造抵押凭证。
3. 但由于 depositFor 函数并未检查用户指定转入的 token 的合法性,攻击者在调用 depositFor 函数时传入了由攻击者恶意创建的代币合约地址。当 GrimBoostVault 通过 safeTransferFrom 函数调用恶意合约的 transferFrom 函数时,恶意合约再次重入调用了 depositFor 函数。攻击者进行了多次重入并在最后一次转入真正的 SPIRIT-LP 流动性凭证进行抵押,此操作确保了在重入前后 GrimBoostVault 预期接收代币的差值存在。随后 depositFor 函数根据此差值计算并为攻击者铸造对应的抵押凭证。
4. 由于攻击者对 GrimBoostVault 合约重入了多次,因此 GrimBoostVault 合约为攻击者铸造了远多于预期的抵押凭证。攻击者使用此凭证在 GrimBoostVault 合约中取出了远多于之前抵押的 SPIRIT-LP 流动性凭证。随后攻击者使用此 SPIRIT-LP 流动性凭证移除流动性获得 WFTM 与 BTC 代币并归还闪电贷完成获利。
此次攻击是由于 GrimBoostVault 合约的 depositFor 函数未对用户传入的 token 的合法性进行检查且无防重入锁,导致恶意用户可以传入恶意代币地址对 depositFor 进行重入获得远多于预期的抵押凭证。慢雾安全团队建议:对于用户传入的参数应检查其是否符合预期,对于函数中的外部调用应控制好外部调用带来的重入攻击等风险。[2021/12/19 7:49:04]
当我们进入主界面,一个简洁的聊天列表呈现在眼前,基本操作逻辑与Telegram并无较大差异。用户需点击右上角的写信按钮,自行键入信息接收人的地址,就可以开始进入聊天了。除标准的钱包地址外,该App还支持.sol域名。
慢雾:BSC项目Value DeFi vSwap 模块被黑简析:据慢雾区情报,币安智能链项目 Value DeFi 的 vSwap 模块被黑,慢雾安全团队第一时间介入分析,并将结果以简讯的形式分享,供大家参考:
1. 攻击者首先使用 0.05 枚 WBNB 通过 vSwap 合约兑换出 vBSWAP 代币;
2. 攻击者在兑换的同时也进行闪电贷操作,因此 vSwap 合约会将兑换的 vBSWAP 代币与闪电贷借出的 WBNB 转给攻击者;
3. 而在完成整个兑换流程并更新池子中代币数量前,会根据池子的 tokenWeight0 参数是否为 50 来选择不同的算法来检查池子中的代币数量是否符合预期;
4. 由于 vSwap 合约的 tokenWeight0 参数设置为 70,因此将会采用第二种算法对池子中的代币数量进行检查;
5. 而漏洞的关键点就在于采用第二种算法进行检查时,可以通过特殊构造的数据来使检查通过;
6. 第二种算法是通过调用 formula 合约的 ensureConstantValue 函数并传入池子中缓存的代币数量与实时的代币数量进行检查的;
7. 在通过对此算法进行具体分析调试后我们可以发现,在使用 WBNB 兑换最小单位(即 0.000000000000000001) vBSWAP 时,池子中缓存的 WBNB 值与实时的值之间允许有一个巨大的波动范围,在此范围内此算法检查都将通过;
8. 因此攻击者可以转入 WBNB 进行最小单位的 vBSWAP 代币兑换的同时,将池子中的大量 WBNB 代币通过闪电贷的方式借出,由于算法问题,在不归还闪电贷的情况下仍可以通过 vSwap 的检查;
9. 攻击者只需要在所有的 vSwap 池子中,不断的重复此过程,即可将池子中的流动性盗走完成获利。详情见原文链接。[2021/5/8 21:37:37]
慢雾:Spartan Protocol被黑简析:据慢雾区情报,币安智能链项目 Spartan Protocol 被黑,损失金额约 3000 万美元,慢雾安全团队第一时间介入分析,并以简讯的形式分享给大家参考:
1. 攻击者通过闪电贷先从 PancakeSwap 中借出 WBNB;
2. 在 WBNB-SPT1 的池子中,先使用借来的一部分 WBNB 不断的通过 swap 兑换成 SPT1,导致兑换池中产生巨大滑点;
3. 攻击者将持有的 WBNB 与 SPT1 向 WBNB-SPT1 池子添加流动性获得 LP 凭证,但是在添加流动性的时候存在一个滑点修正机制,在添加流动性时将对池的滑点进行修正,但没有限制最高可修正的滑点大小,此时添加流动性,由于滑点修正机制,获得的 LP 数量并不是一个正常的值;
4. 随后继续进行 swap 操作将 WBNB 兑换成 SPT1,此时池子中的 WBNB 增多 SPT1 减少;
5. swap 之后攻击者将持有的 WBNB 和 SPT1 都转移给 WBNB-SPT1 池子,然后进行移除流动性操作;
6. 在移除流动性时会通过池子中实时的代币数量来计算用户的 LP 可获得多少对应的代币,由于步骤 5,此时会获得比添加流动性时更多的代币;
7. 在移除流动性之后会更新池子中的 baseAmount 与 tokenAmount,由于移除流动性时没有和添加流动性一样存在滑点修正机制,移除流动性后两种代币的数量和合约记录的代币数量会存在一定的差值;
8. 因此在与实际有差值的情况下还能再次添加流动性获得 LP,此后攻击者只要再次移除流动性就能再次获得对应的两种代币;
9. 之后攻击者只需再将 SPT1 代币兑换成 WBNB,最后即可获得更多的 WBNB。详情见原文链接。[2021/5/2 21:17:59]
除了点对点聊天外,该App还支持小费打赏、创建群聊、收费收信等功能。收费收信是其中一个较为新颖的设计。
链上信息传输因为其无需许可的特点,只要知道地址,任何人皆可发送任意的信息。假设这样一个场景,若Jabber成为像微信一样广泛普及的聊天应用,而你又恰好是一个地址已被公开的KOL,那你的聊天列表会被多少无效信息充斥呢?
通过收费收信的功能,这一问题得到了解决。在设置界面我们看到「SOLpermessage」这一项目,这一数值代表着向你发送信息每条需向你支付多少SOL。这一设计非常有趣。
而在群聊中也存在着类似的机制,用户加入群聊后需支付一定的SOL才可发送消息。这一机制可创造更多的用例,譬如付费社群、线上答疑等等。但目前在Web2的同类产品中,尚无有类似机制的用例。这一需求是否能产生真实的使用场景,仍然有待观察。
这款App与其他聊天软件最根本的区别,即所有数据全部链上传输。而这也是用户对其最大的担忧所在,链上数据公开透明,如何保证聊天内容的隐私性?
我们以真实的使用情况作为演示。笔者使用Jabber向某地址发送了「GM」两个字符,该笔交易收取了0.000005SOL的gas。
而在这笔的转账的log详情中,我们可以看到一些更细节的内容。
Jabber尽管会将全部信息上链,但消息是加密的并不会将你的聊天内容公开,用户无需担心聊天全部上链所使得隐私泄露。
而全部上链的缺点也是显而易见的,每次操作都要付出一定的gas是在所难免的。在进行多次尝试之后可以发现,修改个人资料、更改头像图片、设置是否显示SOL域名等等,在设置中的每一项操作几乎均需要进行链上交互,并付出gas费。而在实际的聊天过程中,发送不同数量的字符,付出的gas费用也都相同,与更改各项设置所需gas相同,均为0.000005。
Jabber由Bonfida团队开发,目前并无独立官网,现已提供iOS和Android版本。Bonfida是基于Solana建立的一款完整产品套件,其旗舰产品为基于Serum中央订单簿的DEX前端。目前Bonfida提供的功能除了基于Serum的基础交易功能以外,还有程序化交易机器人、SerumAPI、Solana链上永续合约协议、SOL域名等。
Jabber是基于Solana建立的第一个移动消息应用。Bonfida认为,Jabber最重要的价值在于它为用户提供了一种无需信任、去中心化的方式来将他们的交互货币化。这个特性或可为NFT和GameFi带来更多的用例。?
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。