无论是银行里的保险箱,还是奶奶床底下的一个袋子,我们的钱从来就不是完全安全的。加密货币也不例外。Shifrodengi频道的作者准备了一个专栏,在专栏中他分享了他对如何提高钱包的保护水平的意见,以专门为decenter的读者存储加密货币。
在本指南中,我不会按类型写下安全提示列表,例如“不要将您的私钥传输给任何人”、“进行备份”和“小心”。我假设您已经完全理解了这一点,并且能够胜任地处理加密货币的存储和使用。
这篇文章将是关于您的钱包保护的额外保护,这将节省金钱,即使您的私人钥匙已经落入入侵者的手中。
你可以问,“这怎么可能?”最重要的是,在比特币、以太坊币和其它Altcoins中,有一种机制允许您以更高的交易费用终止另一个未确认的交易。例如,在比特币中,这种机制被称为“费用替代”。
通常,在需要将同一笔交易发送给同一收件人,但佣金更高的情况下使用RBF,只是为了加快确认过程。但很少有人知道你可以改变收件人,创造一个有竞争力的交易!如果一切都做得正确,而且你很幸运,你的竞争性交易将被包括在之前的区块中,并且第一个交易将被拒绝作为一个尝试双重消费。
关于2个BTC如何被拯救的真实故事
“不知怎的,我们的支付网关被黑客入侵,2个BTC计划退出。该版本的网关的佣金为0.0001BTC,当时相当低。这段时间足以解决所有问题,并通过将佣金提高到0.1BTC来取代交易。因此,我们的交易被更快地确认,攻击者没有收到任何东西,”文章的作者说,这篇文章讨论了一个正在使用比特币网络的RBF机制进行的实验。
替换以太坊中的事务
在以太坊也可以这样做吗?与比特币中输入和未使用输出(utxo)的会计模型不同,以太坊使用“世界状态”来确定每个账户的余额。为了创建一个竞争性事务,它必须与攻击者的事务具有相同的nonce。
nonce向矿工和节点指示事务的顺序,并相应地指示如何更改“帐户状态”。第一个事务具有较低的nonce参数。如果有两个事务具有相同的nonce,则只取块中第一个包含的事务。
大多数以太坊钱包不允许您使用同一个nonce发送事务,但这可以通过web3.js(用于与以太坊节点交互的官方库)完成。
你可能只有15秒
困难不会就此结束。15秒是在以太坊网络中挖掘新数据块的平均时间。在正常的网络负载和正常的佣金情况下,攻击者对该区块进行交易的预期时间为30秒。
当然,如果网络过载,并且交易确认非常缓慢,例如,在最活跃的人群销售期间(如Bancor和Status),那么您的响应时间可以增加到几个小时甚至几天,这可能非常有用。
事实证明,在以太坊网络中,平均每天有30秒的时间:
确定新的传出事务已从您的地址出现在mempool中;
创建一个具有竞争力的交易,同一个nonce,但佣金更大,并指出您的备份钱包作为收件人。
显然,没有自动化,我们几乎没有机会。下面,我们将讨论实现这种自动化的可能性。
在您的以太坊钱包上设置警报
要创建自己的系统来应对盗窃,您需要:
一个节点或服务,它不断地监视内存池,并从您的地址查找传出的事务,在发生危险时,以Web搜索或推送通知的形式发出警报。
一种全天候工作的计算机或钱包设备,它将处理Webhook或推送通知,并创建一个竞争性交易,以将所有资金提取到某个备份地址,包括所有ERC20或其他代币。
监控内存池
要检查mempool,可以独立地提升geth节点,使用node.js和web3.js编写脚本。以太坊节点的资源密集型维护平均每月花费70美元。另外,请注意,以太坊区块链现在重约100GB。
另一种方法是利用一些现成的服务来监视指定地址的区块链。例如,myeth.io。该服务每15秒检查一次以太坊和比特币网络内存池,并向电报发送出现任何交易的即时通知。可以添加多达50个地址进行同时监控。
安装电报bot@myeth_bot,输入您的eth或btc地址,并接收电报上所有交易的通知。此外,对于特定的地址,您可以配置Webhook,它将在传出事务的情况下立即发送。
Webhook是一个用户可配置的HTTPURL,允许您在任何用户需要的地方传输数据。Webhook的存在扩展了任何系统的功能。例如:https://webhook.site/f7c55e64-4809-40f3-9ea0-boa7daec3cf6。
只需发送你的webhook的网址就可以了。之后,当发生传出或传入事务时,Webhook将自动作出反应。
理想情况下,我只想安装一个移动应用程序,通过推送通知生成一个有竞争力的事务。但不幸的是,现在市场上还没有这种功能的手机钱包,但我相信它们很快就会出现。此外,已经有了SDK开发,人们可以独立地为开源钱包创建这样的功能。
另一种方法是使用非断开连接的家庭计算机或VPS,它将旋转Webhook处理程序,该处理程序将启动一个自脚本命令来创建一个具有竞争力的事务。
在以太坊中创建竞争性交易的脚本可以使用库web3.js写入node.js,该库提供了与以太坊区块链交互的API。为了不提升节点,可以从infura.io连接到公共节点。
比特币的选择范围更广。您可以使用JS库(如bitcoinjs)或bitpay或python库中的解决方案编写脚本以创建具有竞争力的事务。在位节点上可以找到公共节点。
正如您所看到的,加密技术对于自动化和对钱包的额外保护有着有趣的可能性。另外,一些区块链在主协议层实现了保护和保险功能,例如,在EOS中,被盗资金可以通过内置的套利机制返还。
但愿人此文能为您提供关于额外保护和监视您钱包的有用信息。谢谢您的阅读!
本文所呈现的内容可能包含作者的个人意见,并受市场条件的限制,不构成投资建议。在投资加加密货币之前,请您先做市场调查,仔细斟酌。布道财经及作者本人对您个人经济损失不承担任何责任。
领取专属 10元无门槛券
私享最新 技术干货