Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

技术的视角看:交易平台Blur出价逻辑

邱建华
105 0 0
    Blur第二阶段空投开启申领了,相信大家都注意到了其中一个门槛——用户必须要进行一次bid行为才能够领取。许多人都被这个bid弄的有点迷,我也是一样。今天仔细看了下Blur的bid逻辑,和大家分享讨论一下。
2 E8 K4 s1 }* p6 L5 P9 U, _" U+ {+ s. {- P0 c6 I7 E0 |5 g4 G
    先说结论:Blur并没有进行真正的创新,只不过是将WETH这个中介换成了自家平台弄的新中介罢了,而且存款的资金池合约没有进行审计(或是进行审计了但没有披露审计报告)。
( D3 M0 v+ K, P+ N* |. @- t3 B! v
    表面上看似乎Blur进行了创新,其没有采用WETH进行bid,而是创建了一个BlurPool.用户在进行bid前必须要将ETH存入池内才能进行出价行为,且用户在池内的资金可以随存随取,没有金额和时间限制。然而真是如此吗,Blur真的帮助绕过WETH而直接用ETH进行出价了吗?. F6 e6 L& E5 N5 v& w3 |& t5 O- z

/ }! \1 J' t; m" E  y/ k5 d    我通过@ScopeProtocol查看自己钱包的转账记录时,发现了一些异常。在下图中,3:20:59时的tx中,当时我是向BlurPool中存入了0.01Eth,按理说我的钱包是向外转出了ETH,标签应该是【Send】才对,而scope却显示了【Receive】标签。1 y( P2 B9 m3 X7 Q2 M) N5 a

; k+ B- K# h9 j" {    1670489308185212.jpg
* B4 Z% i& p& g1 {  [
4 S7 O/ C& N& t$ S    同样的观察3:31:32这笔tx,当时我是从池内取回了刚刚存入的0.01ETH,应该是钱包【Receive】0.01E才对,这里却打上了【Send】标签,而且两笔tx的交互对象都是【NullAddress:000...000】,这就有些奇怪了,我明明是在Pool中存取款,为什么会和黑洞有关联。
2 B- n: A! R5 w. o$ n; m6 @9 V- J2 K/ L. _6 j* }9 F3 ]1 |# g$ L' y
    到etherscan上查看tx细节,发现第一笔tx进行存款时,0.01ETH转入了这个地址0x0000000000a39bb272e79075ade125fd351887ac经过其他多笔tx可以确认该地址为BlurPool的合约地址。然后关键的来了,有一个新的ERC-20token,从【NullAddress:000...000】转入了我的钱包中。
& O' y8 l  [: V5 |8 \. B/ R. E0 @1 p) T
0 ~* n$ ^: _8 e2 _% |    1670489308177098.jpg 2 u' e8 Y' T2 W8 L3 I3 b  A$ q
' k: x  e1 }7 @: a: o- B  M7 P
    接着看取款那笔tx.可以看见,这笔tx中我钱包与Pool的合约进行了交互,并且Pool向我的钱包转入了0.01ETH,本来到这里就该结束了.但是我的钱包又匪夷所思的向【NullAddress:000...000】转入了0.01枚新的上面提到的ERC-20token。至此我忽然意识到为什么scope会将两笔tx【Send】与【Receive】标签"弄反"。
- e! W0 H# X" {, I
4 Z; L* u  k  d    1670489267446139.jpg
# r8 J1 ?! d7 Q$ L. B/ {
  i% R# N- ?( N. n! A1 D    这并不是scope的错误。仔细观察,在我存款时从【NullAddress:000...000】转入我钱包中的新token是"ETH"吗?当我取款时又莫名其妙从我钱包中转出的新token是"ETH"吗?答案是否定的,并不是真正的ETH,而是一个顶着和真正的ETH相同的矢量图的token,他的名字叫"()"& Q. g6 n5 [: F# n7 C8 K
& g% Z5 D' |/ ^% i+ w
    接着往下扒,这个"()"的合约为0x0000000000A39bb272e79075ade125fd351887Ac,是不是很眼熟,跟Pool的合约是不是一模一样?真的"一模一样"吗?0x0000000000A39bb272e79075ade125fd351887Ac0x0000000000a39bb272e79075ade125fd351887ac不一样,而且看起来像是"父子关系"。  y0 y( N4 g5 N( D7 u( W

$ q- e0 G* Y9 q  @) Y: j    先看看Pool的合约(大写A)0x0000000000A39bb272e79075ade125fd351887Ac可以看见用户钱包调用该合约进行存取款时,是将真金白银的ETH存入了Blur池子里去,value显示为【ether】1 q- \- N4 o2 L! N6 S+ f8 c

- S- B, h) F6 p4 Z/ @/ B    1670489267466143.jpg
, ?/ Q" m4 J  {4 G2 v  [" c: I' H% T( y& |5 M+ f+ j/ \/ T
    再看看token"()"的合约(小写a)0x0000000000a39bb272e79075ade125fd351887ac,在用户存入或取出真正ETH的同时,【NullAddress:000...000】总是会向钱包发送/转出同等数量的"()",注意看好,这里没有显示value,而是显示quantity,并且数字后面没有单位【ether】!: }3 a" H1 X8 b! G3 v1 K

/ }' H; ~/ J3 [1 [    1670489267498309.jpg , j- _: a3 |8 Q: r

- c) [( _& w5 E7 u    看到这里基本上就清晰了:用户向bid资金池中存款,实际上是将ETH锁定在资金池中,然后Pool会通过nulladdress发送给你一个新的token,也就是给你一些1:1锚定ETH的欢乐豆,让你在Blur平台上进行出价,当然了这个欢乐豆只能在Blur内流通。
9 Q  X; @8 t* _$ X9 x' C% W5 W0 S% Q  D+ \" R
    同样的用户取款时,也是Pool先解锁存入的ETH,把ETH还到你的钱包,但同时必须要销毁你钱包中1:1等量的欢乐豆。所以Blur并没有进行真正的创新,只不过是将WETH这个中介换成了自家平台弄的新中介罢了。. T8 ]0 k8 C- O/ g$ u8 S& _, h# n

4 K' Q; D. h/ J5 ]& m    其实是有点失望了,毕竟Blur的token"()"比不上WETH的权威,只能算是关门使用的欢乐豆。而且为什么资金池的合约不进行审计呢?如果审计了为什么不披露报告呢?@blur_io这么重要的事你总不能说忘记了吧?感谢@ScopeProtocol@etherscan数据服务. D9 g1 ?2 n; b  u8 ?7 C, ?3 ?& B. t. D

9 `. a# V" K' b# o8 t0 k. N6 N    1670489267525081.jpg 3 p9 z; _4 T2 B' r, H
( N* }  [8 M% d* Q0 e8 U9 t
    最新更新etherscan上token"()"的名称已经被更新为"BlurPool()"了,并且显示为NFT....! H' I# ~0 E: s' K: l, N5 m

5 d0 l5 Y4 V8 R    1670489267517125.jpg
* {0 ?8 L1 T% a  f9 V* N$ Z; W. j8 _: y7 W% A
    当然我的分析缺少了一部分,即:用户在接受他人bid时,这部分资金是否会以token"BlurPool()"自动进入资金池中,然后才能提取,还是直接以ETH形式进入钱包另外我尝试从代码层面去理解,但奈何代码水平实在有限。希望有大佬能从代码实现的层面去解析一下,一定比我更有说服力!期待!!; M3 e% W3 j3 s7 T  L

; y2 s0 B. z' ?( ^" l    夹带一点私货,推荐@ScopeProtocol这个工具,上面提到的那个新token不是真正ETH,是从这里发现的,scope将这个token显示为unknown即未知代币所以才引起我的注意。
3 t4 W+ ?. F0 H; `! h- _; k
# ~- O: r" E- h& T    1670489267518522.jpg
7 W  g0 M4 j. P# O1 h7 {  ]! @% i
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

邱建华 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    3