通过一个蜜罐合约来理解以太坊上的抢跑者
开发特殊的“蜜罐(honey pot)”合约,该合约允许任何人以足够快的速度提取一些以太币。让以太坊的抢跑者这样做,以便研究他们的行为。
可能这不是最好的方法,因为你应该允许一些人窃取你真实的 ETH。最好的办法是监视内存池,并尝试识别高 gas 优先的交易(PGA:Priority Gas Auctions)。但这不是一件容易的事,需要更多的开发,所以从简单的研究开始。
蜜罐合约
为了演示,编写了一个简洁但功能强大的智能合约。只能通过两种方式与合约交互 - 锁定以太币和解锁(撤回)以太币。过程很简单:
- 想象一些难以猜测的强密码。
- 计算密码的哈希值(假设为 sha256)
- 通过提供密码的哈希值来锁定你的以太币
- 通过提供原始密码来解锁你的以太币。合约将自行计算哈希并将其与步骤 2 中指定的哈希运算进行比较。如果哈希匹配 - 合约将向你发送锁定的以太币。
很容易看到 - 只有你可以提取以太币,因为没有人知道原始密码。真的吗?
pragma solidity ^0.6.0;
contract TryToGetYourMoney {
mapping(bytes32 => uint) passwordHashToBalance;
function lockEthersWithPassword(
bytes32 passwordHash
) public payable {
passwordHashToBalance[passwordHash] += msg.value;
}
function getHash(string memory raw) public view returns(bytes32) {
return keccak256(abi.encodePacked(raw));
}
function unlockEthersWithPassword(
string memory password
) public {
bytes32 passwordHash = getHash(password);
require(
passwordHashToBalance[passwordHash] > 0,
"No Ethers locked with specified password"
);
msg.sender.transfer(passwordHashToBalance[passwordHash]);
passwordHashToBalance[passwordHash] = 0;
}
}
好吧,可能不是。任何抢跑者都可以在交易处于待处理状态时看到该交易,提取原始密码,并以更高的 gas 价格发送自己的解锁交易。由于较高的 gas 价格意味着更快的确认,因此抢跑者的交易可能将首先被挖出,并且他会收到你的以太币。
已经在以太坊主网络中部署了以上合约([0x9478abe9244872274808d324b968c30f29e1a442] (https://etherscan.io/address/0x9478abe9244872274808d324b968c30f29e1a442)).已经尝试过两次锁定以太坊并对其进行解锁-两项解锁交易均已在前端进行!
两个锁-0.1 ETH 和 0.05 ETH。 两个失败的交易是解锁交易。 他们失败了,因为有人已经窃取了锁定的 ETH!
看看为什么交易失败。你可以看到原因相同:“No Ethers locked with specified password”。但是怎么可能呢?为了回答这个问题,看一下 Etherscan 的 Internal txns 部分:
通过这些交易,抢跑者窃取了 ETH。让我们比较一下我的交易 0xa88 ..和 0x3fa ....他们俩都试图解锁 0.1 以太币。
我的交易在左边,抢跑交易在右边。
查看 gas 价格如何影响确认时间。我的交易价格为 50 Gwei ,在 3 分钟内得到确认。抢跑者指定了 58 Gwei - 在 30 秒内进行了确认!即使我先发送了解锁交易,但他的交易被确认比我早 11 个区块。
他们是怎么做到的?
打造抢跑机器人没有任何技术上的障碍。首先,你需要监视所有新的以太坊交易。由于你想成为第一个了解新交易的人,因此你可能需要在世界各地使用多个交易侦听器。
收到有关新交易的通知后,你需要模拟相同的调用,但是使用你自己的地址。如果交易未还原(即没有失败),而你的收益超过了支出,请将其发送到主网!此外,别忘了设定更高的 gas 价格以取代原始交易。仅此而已。
本帖同步首发
最近新帖
- 以太坊2.0“阶段0”正式上线
- 孟尝君放债
- 用“信用”谋变
- DeFi并购之王AC
- The TRX and Steemit Integration is now Live !
- 抓住下一波DeFi蓝筹股的机会
- 未来defi潮流
- 聚合器活跃在DeFi底层产品之上
- DeFi底层产品
- 链接传统世界的桥梁Synthetix
- OKEx恢复提币引发暴跌
- 1小时25亿爆仓
- 在趋势中寻找
- 97%的比特币地址盈利
- 传统大所流量端具有更多优势
- DeFi代挖服务
- 设计衍生产品定价功能
- 锁定资产超过10亿美元的DeFi
- DeFi借贷和DEX
- DEX突围
- DeFi项目攻击的诱惑
- 币安铁心要做DeFi
- 2020的DeFi新机遇
- IPFS写入国家广电总局区块链应用白皮书
- DeFi如何进入主流金融世界
- 建行宣布支持比特币交易
- DeFi正在成为加密黑客的新“提款机”
- 阿修罗DEFI生态体系YASHA
- 关于 ETH 上 Gas 的误解
- 加密货币和区块链是变革催化剂
- 71 万人炒币被骗了 77 亿
- 波卡的DeFi生态系统正在扩展
- 分散投资
- 日渐壮大的波卡DeFi生态
- DeFi Pulse推出风险评估工具
- DeFi的安全难题
- 跨链+Defi融合
- 数字金融走向分布式 DeFi
- @hnt 尝试提供STEEM流动性服务,目前处于测试阶段
- BTC跌破$7000之际,STEEM暴跌20%创新低,投资者缺乏信心 steem | hive
- BTC突破$7000后蓄势待发,STEEM却突然出现异动?!恐有要事发生? steem | hive
- FileCoin继续跳票,IPFS矿机骗局还能搞多久? steem | hive
- steem 新分叉HF22.8888 和 hive 今日暴跌,或影响hive网络发展 steem | hive
- hive 硬分叉延缓了steem的SMT进度 steem | hive
You got a 34.64% upvote from @votemypost Send any amount of Steem to @votemypost with your post link in the memo for a proportional upvote. Earn a passive income by delegating Steem Power to @votemypost
If you are looking to earn a passive no hassle return on your Steem Power, delegate your SP to @votemypost by clicking on one of the ready to
delegate links:
25SP | 50SP | 75SP | 100SP | 250SP | 500SP | 1000SP | 2500SP | 5000SP
Another Amount
You will earn 85% of the voting bot's earnings based on your delegated SP's prorated share of the bot's SP each day! You can also undelegate at anytime.
This post has received a 34.49 % upvote from @boomerang.
This post was resteemed by @steemvote and received a 33.43% Upvote. Send 0.5 SBD or STEEM to @steemvote
19.00% | From: @hnt!
Looking for a new project/investment?