作者:Sam,独立开发者 来历:X(原推特)@0xmetazen

听了Ordinals的Space,发现不少人对indexer的危险在何处不是很理解,我在这里举个简略的例子:

假定有个黑客,他想要你手上的token A,一起你只承受tokenB来换tokenA,但他又没有tokenB,此刻他正好有才能黑掉那个唯一的indexer,而且有才能操控它1个小时,在这一小时里,他先给自己凭空增加了tokenB,然后把tokenB转给你,你在浏览器上也能看到自己有了tokenB,所以放心的把tokenA转给了他,在一个小时完毕后,indexer发现机器被侵略,所以重新同步了数据,此刻你刷新浏览器发现tokenB没了,tokenA当然也没了。

为什么会产生这种事?原因如下:

1:黑客和你接入了相同的indexer服务器,你和他看到的前端数据始终是相同的,包含被黑前后和被黑的过程

2:黑客给你转的tokenB并未产生在比特币链上(第3条会说另一种情况),它只产生在indexer服务器里,能够是改数据库里面的数据,也能够拦截查询请求,由于此刻你是信任这个indexer的,所以看到indexer浏览器更新的数据便以为tokenB的买卖已经完成

3:你以为自己是个很慎重而且很懂链上买卖的人,看不到链上实际买卖就不会放心,嗯,这个的确比一般人强,但黑客完全能够发一笔链上转tokenB的买卖让你去查,而且你去比特币浏览器也能查到,此刻你可能会有所疑问,黑客手上都没有tokenB,为什么这笔买卖能发成功?原因是比特币网络不同于以太坊,它是不会去执行买卖的,仅仅记录了一个数据,整个合法性校验完全是靠indexer来完成的,而此刻indexer已经被黑客操控了,即使黑客底子没有tokenB,他也能够让整个网络看起来这笔买卖被合法执行了

4:你发给黑客的tokenA的买卖也在链上产生了,而且由于你的确有这么多的tokenA,所以即使indexer发现被黑后进行回滚,你的这笔买卖还是会被成功执行

5:看到这里你也许就理解危险点在哪了,便是indexer太少了呗,如果有100个indexer,黑客底子不知道你会用哪个indexer,即使知道了,你也能够随时切换到其它indexer去验证,此刻他想黑你的难度就会直线上升,本钱高到他不会去想这个事

6:上面说100个indexer仅仅一种假定,实际会有多少indexer在运转,这要取决于indexer运营商做这件事赢利,赢利够高天然会去运转,而赢利从哪来?给indexer发币作为奖励好像是能够的,但这个就要起一条新的链了,如果链一会儿没有呢,好像只能靠indexer用流量来覆盖运营本钱了,而流量往往集合在头部,理论上就不可能让100家独享权益,所以终究还是少数几家会运营indexer,而这让黑客攻击本钱也大大下降

7:indexer的问题不是只有比特币有,很多evm链也存在,当链一向运转下去,节点会面临状况爆炸的问题,需求不断增加硬件资源,一旦过了盈亏平衡点,运营商就会封闭节点,以太坊社区为了处理这个问题已经诞生很多项目了

8:由于比特币生态和以太坊生态并不存在冲突关系,所以以太坊上的优异实践也许往后也能被比特币生态学习,当然,这仅仅可能性,由于两者底层才能完全不同,上层建筑能否照搬是需求深入分析的

以上,仅作技能探讨,如有过错,欢迎指正,不甚感激!

此时快讯

【某巨鲸从Kraken再次提出1500ETH,当前持仓ETH未实现利润约1.54亿美元】金色财经报道,Lookonchain监测的数据显示,40分钟前,某巨鲸从Kraken再次提出1500ETH(315 万美元),该巨鲸于2022年7月5日开始积累ETH,目前持有183,742ETH(3.878亿美元),未实现利润约为1.54亿美元。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注