BlockBeats 注:Aave打造的 LensProtocol 社交协议并非一个社交产品,而是协议服务层,帮助开发者在其上构建各类社交产品。目前Web3社交产品虽然给予了用户数据所有权,但仍没有解决用户数据在不同 web3 社交产品中互通性的问题。对此,BuidlerDAO 创始人 Jason Chen 在推特对 LensProtocol 社交协议进行简要分析, BlockBeats 整理如下:
浅研了一下 LensProtocol, 由 Aave 团队打造的 web3 社交协议,它本身不是一个前端的社交产品,而是一个中后端的协议服务层,开发者基于其提供的 API 可以在上面低成本构建出社交产品,这应该也就是为什么 lens 的 logo 是一束花的原因吧,它希望自己成为这片社交花园里的根和土壤,开发者们可以在其之上种出鲜花 。
相信大多数人对于 web3 的主要叙事都在于痛斥 web2 的 facebook、twitter 等公司垄断用户数据权,制造数据孤岛,用户拥有自己的社交数据和关系链也是 web3 原生的重要叙事,于是也冒出了很多号称 web3 twitter 的产品,但到现在为止 web3 的社交产品依然没有出现杀手级应用。
Beosin:SheepFarm项目遭受攻击事件简析:金色财经报道,根据区块链安全审计公司Beosin旗下Beosin EagleEye 安全风险监控、预警与阻断平台监测显示,BNB链上的SheepFarm项目遭受漏洞攻击,Beosin分析发现由于SheepFarm合约的register函数可以多次调用,导致攻击者0x2131c67ed7b6aa01b7aa308c71991ef5baedd049多次利用register函数增大自身的gems,再利用upgradeVillage函数在消耗gems的同时累加yield属性,最后调用sellVillage方法把yield转换为money后再提款。本次攻击导致项目损失了约262个BNB,约7.2万美元。Beosin Trace追踪发现被盗金额仍在攻击者账户,将持续关注资金走向。[2022/11/16 13:10:39]
Web3 社交杀手级应用还未出现,我觉得抛开行业成熟度原因主要在于两点 :
安全团队:获利约900万美元,Moola协议遭受黑客攻击事件简析:10月19日消息,据Beosin EagleEye Web3安全预警与监控平台监测显示,Celo上的Moola协议遭受攻击,黑客获利约900万美元。Beosin安全团队第一时间对事件进行了分析,结果如下:
第一步:攻击者进行了多笔交易,用CELO买入MOO,攻击者起始资金(182000枚CELO).
第二步:攻击者使用MOO作为抵押品借出CELO。根据抵押借贷的常见逻辑,攻击者抵押了价值a的MOO,可借出价值b的CELO。
第三步:攻击者用贷出的CELO购买MOO,从而继续提高MOO的价格。每次交换之后,Moo对应CELO的价格变高。
第四步:由于抵押借贷合约在借出时会使用交易对中的实时价格进行判断,导致用户之前的借贷数量,并未达到价值b,所以用户可以继续借出CELO。通过不断重复这个过程,攻击者把MOO的价格从0.02 CELO提高到0.73 CELO。
第五步:攻击者进行了累计4次抵押MOO,10次swap(CELO换MOO),28次借贷,达到获利过程。
本次遭受攻击的抵押借贷实现合约并未开源,根据攻击特征可以猜测攻击属于价格操纵攻击。截止发文时,通过Beosin Trace追踪发现攻击者将约93.1%的所得资金 返还给了Moola Market项目方,将50万CELO 捐给了impact market。自己留下了总计65万个CELO作为赏金。[2022/10/19 17:32:31]
第一,在此之前多数 web3 社交产品依然在走制造数据孤岛的老路。怎么理解呢?基于区块链的社交产品确实可以让用户成为他数据的 owner,但产品数据的边界依然是合约,如果用户使用了 10 个产品,则用户的数据会散落在 10 个独立合约中,且每个产品合约的数据格式和标准都不一样,虽然透明了,但孤岛依然存在。
慢雾:Harmony Horizon bridge遭攻击简析:据慢雾安全团队消息,Harmony Horizon bridge 遭到黑客攻击。经慢雾 MistTrack 分析,攻击者(0x0d0...D00)获利超 1 亿美元,包括 11 种 ERC20 代币、13,100 ETH、5,000 BNB 以及 640,000 BUSD,在以太坊链攻击者将大部分代币转移到两个新钱包地址,并将代币兑换为 ETH,接着将 ETH 均转回初始地址(0x0d0...D00),目前地址(0x0d0...D00)约 85,837 ETH 暂无转移,同时,攻击者在 BNB 链暂无资金转移操作。慢雾 MistTrack 将持续监控被盗资金的转移。[2022/6/24 1:28:30]
从而导致用户的社交数据依然无法打通,用户在各个产品中产生的数据虽然属于其自己,因为独立的合约和不一致的数据格式,依然无法「带走」,假设一个产品挂了,那在此之前所产生的社交数据也很难被利用起来,除非其他的产品专门投入资源去做数据同步,所以目前 web3 社交产品只解决了拥有的问题,而非连接。
慢雾: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]
第二,开发一个社交产品的成本也很高。其实这个成本主要还是在中后端,但是中后端的功能确可以被穷举且标准化,不外乎就是点赞、关注、发帖、收藏等功能,而前端业务层看似纷繁复杂也不过就是基于中后端标准功能的组合拼装 。
Harvest.Finance被黑事件简析:10月26号,据慢雾区消息 Harvest Finance 项目遭受闪电贷攻击,损失超过 400 万美元。以下为慢雾安全团队对此事件的简要分析。
1. 攻击者通过 Tornado.cash 转入 20ETH 作为后续攻击手续费;
2. 攻击者通过 UniswapV2 闪电贷借出巨额 USDC 与 USDT;
3. 攻击者先通过 Curve 的 exchange_underlying 函数将 USDT 换成 USDC,此时 Curve yUSDC 池中的 investedUnderlyingBalance 将相对应的变小;
4. 随后攻击者通过 Harvest 的 deposit 将巨额 USDC 充值进 Vault 中,充值的同时 Harvest 的 Vault 将铸出 fUSDC,而铸出的数量计算方式如下:
amount.mul(totalSupply()).div(underlyingBalanceWithInvestment());
计算方式中的 underlyingBalanceWithInvestment 一部分取的是 Curve 中的 investedUnderlyingBalance 值,由于 Curve 中 investedUnderlyingBalance 的变化将导致 Vault 铸出更多的 fUSDC;
5. 之后再通过 Curve 把 USDC 换成 USDT 将失衡的价格拉回正常;
6. 最后只需要把 fUSDC 归还给 Vault 即可获得比充值时更多的 USDC;
7. 随后攻击者开始重复此过程持续获利;
其他攻击流程与上诉分析过程类似。参考交易哈希:0x35f8d2f572fceaac9288e5d462117850ef2694786992a8c3f6d02612277b0877。
此次攻击主要是 Harvest Finance 的 fToken(fUSDC、fUSDT...) 在铸币时采用的是 Curve y池中的报价(即使用 Curve 作为喂价来源),导致攻击者可以通过巨额兑换操控预言机的价格来控制 Harvest Finance 中 fToken 的铸币数量,从而使攻击者有利可图。[2020/10/26]
所以我认为 lens 也是基于这两点认为如果他们再做一个社交产品,也不过就是市面上的 10 个产品变成了 11 个,继续增加孤岛,所以他们把自己向下藏了一层,首先制定了标准,将什么样的行为需要铸造为 NFT,发布的内容需要用什么样的数据格式等问题都标准化,能够保证基于其标准所开发出的产品是不存在孤岛问题。
其次通过阅读其开发者文档会发现 lens 的模块化设计非常充分,将能力拆分的颗粒度很细,尽可能做了解耦,从而便于开发者在上面去灵活的拓展业务逻辑。
如下图所示,这是 lens 的主合约,可以看到其上面已经产生了 540 万条社交数据,包含了发布、收藏、关注等动作,所以 lens 打造了一个大陆,而不是一个孤岛。
关于标准,分为接口标准和数据标准,首先说一下接口标准,如下图 1 所示这是 lens 提供的所有一级 API,基本上社交关系的主要能力都包括了,图 2 是单关注这一个能力所拆分出来的二级 API,可见其颗粒度是做的很细的,开发者可以基于这些 API 自由拼装组合。
数据标准则又细分为 NFT 和非 NFT 两类,lens 的核心数据围绕 NFT 展开,首先每个用户需要一个.lens 域名才能拥有个人主页,其他的数据都是挂在这个域名下的,这个域名本身是一个 721 类型的 NFT,从这个角度也算是 DID 的范畴。
除了域名外用户的关注、收藏等动作也会被铸造为 NFT,如图 1 当用户进行关注时,触发了合约的 follow 函数,从所产生的链上数据可以看到 mint 了一个 NFT,如图 2 当取关的话则会将该 NFT 销毁掉 。
社交数据其实是索引关系非常复杂的,lens 的接口对于开发者也非常方便,将链上数据包了一层不需要开发者自己去分析数据,而是如下图为例,如果需要查询某个人的关注者,通过接口可以直接以很清晰的以拉清单的形式将数据获取到并层层下钻。
另外对于 post 内容发布,首先它不是作为 NFT 呈现的,我在此之前还以为用户发的内容都会铸造成 NFT,如图 1 所示就是正常的链上数据写入的过程,这里我还没有理解清楚为什么 lens 不把他们做成 NFT。如图 2 这是 post 的写入数据,包含的数据有挂载在谁身上,挂载的内容是什么,发布内容用 contentURI 一个外链来索引 。
具体内容则是存储在链下的,contentURI 会指向一个存储地址,但是 lens 对于数据的存储格式也是有一套标准规范的,这样就可以达到上文中提到的各产品基于 lens 构建后可以互通的效果,如图 1 为解析出来的一个数据格式,包括名称、内容、类型等。图 2 为枚举的数据格式,图文音视频等都包括,从而结构化内容数据。
以上就是对于 lens 的浅研,不愧是 Aave 出来的,确实对 web3 的原生很透彻,基于 lens 诞生出来 web3 原生 twitter 的可能性还是很大的,也许是研究还不够深,也存一些疑惑,比如个人主页是一个.lens 的 nft 域名,而所有的数据和关系链都挂在上面,但是该 nft 又是可以买卖的,社交关系可以买卖我觉得还是挺奇怪的。
区块律动BlockBeats
媒体专栏
阅读更多
金色财经
CertiK中文社区
虎嗅科技
web3中文
深潮TechFlow
念青
DeFi之道
CT中文
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。