Original author: 0xYE.lens
"Analysis of Blur's bidding logic"
- for reference and discussion only
In the past few days, the second phase of Blur's airdrop has opened for application, and I believe everyone has noticed one of the requirements - users must perform a bid action to be eligible for the airdrop. Many people are confused by this bid requirement, and I am no exception. Today, I carefully studied Blur's bidding logic and would like to share and discuss it with everyone.
First of all, the conclusion is that Blur did not really innovate, but simply replaced the WETH intermediary with a new intermediary on their own platform. Moreover, the capital pool contract for deposits has not been audited (or has been audited but the audit report has not been disclosed)
At first glance, it seems that Blur has innovated by not using WETH for bidding, but instead creating a Blur Pool. Users must deposit ETH into the pool before bidding, and their funds in the pool can be withdrawn at any time without any amount or time restrictions. However, is it really the case that Blur helps bypass WETH and directly use ETH for bidding? When I checked my wallet's transaction records using ScopeProtocol, I found some anomalies. In the tx at 3:20:59 in the following image, I deposited 0.01 ETH into Blur Pool. According to logic, my wallet should have sent out ETH and the tag should be "Send", but Scope displayed the tag as "Receive". The same observation of the 3:31:32 transaction, at that time I withdrew the just deposited 0.01ETH from the pool, which should be wallet 【Receive】0.01E, but here it is labeled as 【Send】, and both transactions interact with the 【Null Address:000...000】, which is a bit strange. I clearly deposited and withdrew from the pool, why is it related to a black hole? To check the details of the transaction on etherscan, it was found that 0.01 ETH was deposited into the address 0x0000000000a39bb272e79075ade125fd351887ac during the first transaction. After several other transactions, it was confirmed that this address is the contract address of Blur Pool. Then, a new ERC-20 token was transferred into my wallet from the Null Address:000...000. Following the withdrawal transaction, it can be seen that in this transaction, my wallet interacted with the contract of the Pool, and the Pool transferred 0.01 ETH to my wallet. This should have been the end of it. However, my wallet inexplicably transferred 0.01 of the new ERC-20 token to the Null Address:000...000. It was at this point that I suddenly realized why the scope had "mixed up" the "Send" and "Receive" labels for the two transactions. This is not an error with scope. If you look closely, is the new token that was transferred from [Null Address:000...000] to my wallet when I made a deposit "ETH"? And is the new token that mysteriously transferred out of my wallet when I made a withdrawal also "ETH"? The answer is no, it is not the real ETH, but rather a token with a vector image that looks identical to the real ETH, and its name is "()". Continuing to dig deeper, the contract for "()" is 0x0000000000A39bb272e79075ade125fd351887Ac, which looks very familiar, is it exactly the same as the contract for Pool? Is it really "identical"?
0x0000000000A39bb272e79075ade125fd351887Ac
0x0000000000a39bb272e79075ade125fd351887ac
They are not the same, and they appear to have a "parent-child relationship". First, take a look at the contract (capitalized A) of Pool:
0x0000000000A39bb272e79075ade125fd351887Ac
It can be seen that when a user's wallet calls this contract to deposit or withdraw funds, they are depositing actual ETH into the Blur pool, with the value displayed in ether.
Take a look at the contract of token "()" (lowercase a) at 0x0000000000a39bb272e79075ade125fd351887ac. When users deposit or withdraw real ETH, the Null Address:000...000 always sends/transfers an equal amount of "()" to the wallet. Please note that there is no display of value here, only quantity, and there is no unit "ether" after the number!
By this point, it's pretty clear:
When a user deposits funds into the bid pool, they are actually locking ETH in the pool. Then, the pool will send you a new token through the null address, which is some joy beans anchored 1:1 to ETH, allowing you to bid on the Blur platform. Of course, these joy beans can only circulate within Blur. When the same user withdraws funds, Pool also unlocks the deposited ETH and returns it to your wallet, but at the same time, you must destroy an equal amount of Joy Beans in your wallet at a 1:1 ratio. Therefore, Blur did not really innovate, but simply replaced the WETH intermediary with a new intermediary created on their own platform. Actually, I am a bit disappointed. After all, Blur's token "()" is not as authoritative as WETH, and can only be considered as a joy bean for closing use. And why isn't the fund pool contract audited? If it is audited, why not disclose the report? You can't just forget about such an important matter like Blur, right? Thank you for the ScopeProtocol Etherscan data service.





Latest update: The name of the token "()" on etherscan has been updated to "Blur Pool()" and is displayed as an NFT....

Of course, my analysis is missing a part, that is, whether the funds received by the user when accepting bids from others will automatically enter the fund pool as token "Blur Pool()" and then be extracted, or directly enter the wallet in the form of ETH.
In addition, I tried to understand it from the code level, but my coding skills are limited. I hope that experts can analyze it from the perspective of code implementation, which will be more convincing than me! Looking forward to it!!
Carrying a bit of personal recommendation, I suggest using ScopeProtocol, the tool where the new Token mentioned earlier was discovered. It is not a real ETH, and Scope displays this token as unknown, which is why it caught my attention.

Original Link
Welcome to join the official BlockBeats community:
Telegram Subscription Group: https://t.me/theblockbeats
Telegram Discussion Group: https://t.me/BlockBeats_App
Official Twitter Account: https://twitter.com/BlockBeatsAsia