对于此次Filecoin交易所“双花”事件的勘误_API:All Coins Yield Capital

2021年3月18日,根据相关报道称,由于Filecoin的远程过程调用代码存在“严重漏洞”,出现了“双花”。所谓“双花”,指的是双重支付,一笔资金被花费了两次。这就好比有些人使用投币电话,在硬币上狡猾地穿了一根细绳,尽管投掷了硬币,但实际的交易并没有完成,他可以在打完电话后利用细绳再将硬币取出,如法炮制,便能用这枚硬币打无数次电话。V|jasonbody

但此次这样的说法是不正确的,且具有强烈的误导性。对于此次事件Lotus团队对该报告进行了彻底的调查,并在事后声称“没有发现任何Filecoin网络和RPCAPI代码的相关问题”。链上并不存在双花问题,API代码也没有错误。有关交易所已经修正了该交易所内的错误交易记录。

香港立法会议员吴杰庄:预算案内容体现了港府对于Web3发展的决心:金色财经报道,2月22日,由Meta Era主办、OKX协办的「香港概念暴涨,神秘东方力量崛起」Twitter Space正式开启,特邀香港立法会议员、高等学府、香港机构代表协同Web3行业代表肖风、Jack孔、孙宇晨、杜均等全面解读香港新财政预算案科技和经济政策。

吴杰庄对于预算案中的几个重点内容进行了解读。对于预算案中的“Web3同样潜力庞大”,吴议员认为这代表港府看到了Web3的无限潜力。对于“与时并进”,吴议员指出这代表港府愿意去学习新的东西,并去配合发展。对于“Web3生态圈”,吴议员认为Web3行业内有各种赛道,港府也是想要聚集行业赛道人员,打造Web3生态圈。吴议员特别强调了预算案中的“推动跨界别业务合作”,表示这也是Web3破圈的契机。对于“成立虚拟资产发展小组”,吴议员指出香港的发展小组都有自己的任务和期限,并且需要展示成果,这也体现了港府对于Web3发展的决心。最后,吴议员表示港府想要的Web3发展是如预算案中说的“可持续、负责任地发展。”[2023/2/22 12:23:21]

事件回顾

Aptos Labs拟将Anchorage Digital作为主网启动时的首选机构托管方:金色财经报道,Aptos Labs拟将Anchorage Digital作为主网启动时的首选机构托管方,Anchorage 是美国第一家联邦特许加密银行,它将通过允许机构在 Aptos 上构建,包括通过 NFT、DeFi 和社交媒体以及其他 Web3 来支持 Layer 1 项目。Aptos 正在为 Web3 构建其可升级性和实用性,从而使开发人员能够更好地搭建面向未来需求和消费者的应用程序,并进一步加速 Web3 的广泛应用。(coindesk)[2022/9/27 5:55:10]

事件报告:早前Lotus团队收到交易所错误使用LotusAPI计算Filecoin中的转账/存款。因为用户报告了交易所他们的账户被交易所记账系统错误地重复记录。该问题被记账系统恢复,链上本身并没有重复记录。

美国国家电信和信息管理局寻求企业家对于区块链政策的意见:据coindesk消息,美国商务部的国家电信和信息管理局(NTIA)周二公布了一项调查通知,要求受访者就围绕许多领域的新政策提出建议,包括新兴技术,网络安全和隐私,互联网治理和信息自由流动。 NTIA的管理员David Redl在文章中指出:“我们希望有冒险精神的美国企业家能够带着其数字产品和服务进入全球市场,预计在未来几年中,我们的重点将越来越多地集中在人工智能,自动化劳动力,区块链技术等等。我们想要知道如何参与这些问题的国际讨论。”[2018/6/6]

API误解:出现此次问题的核心原因在于对Lotus链状态检查API使用不当,在多消息处理时与期待处理方式不同。误解LotusAPI的输出会导致记账系统将原始消息和替换消息都算作相同的发送者和接收者。目前为止只有一个交易所出现了该问题。

慧聪进军区块链领域,利用区块链解决中产阶级对于健康的需要:据了解,慧聪集团通过旗下兆信股份和慧嘉构建起“中国制造2025”数据引擎,通过清华大学、浙江大学产学研的力量,构建数据服务全产业链体系,并且与当下火热的区块链技术做结合,快速落地区块链应用场景。同时利用区块链产品“慧链”解决中产阶级的对于健康的渴望和需求,从食品、药品都是与健康息息相关的刚需高频消费场景帮助企业快速完成质检通关。[2018/4/25]

自媒体虚假报道:出现了该问题之后,有关“双花”的不正确的文章在自媒体中传播。大部分的报道已经被勘误,RPCAPI代码并不存在代码问题。

当前采取的行动

受影响交易所:发现错误的交易所立即采取措施对于API的错误使用,暂停了用户的充值、交易和转账。该错误被快速恢复,用户并没有资金损失。该交易所正在采取措施纠正对LotusAPI的使用。

预警:其他交易所受到此次事件的预警,并着手审查他们的代码逻辑,以确保不受此次错误的影响,目前还没有另外的交易所出现同样的错误。

Lotus团队:目前Lotus团队正在积极的与交易所沟通合作,以确保这一事件正确解决,并改进API文档。

社区和媒体:社区某些团队正在积极与媒体联系以消除这次错误事件的负面影响。

社区团队:社区成员提供可以帮助其他社区成员准确、周到地报告问题的方法,避免意外传播错误信息。

技术细节

相同信息:根据Lotus团队披露的消息,此次问题的根源在于有两条消息有相同的发送者/收到者详细信息、相同的nonce但拥有不同的Gas参数——被包含在同一tipset中。这样类似的信息非常常见,但这样的情况通常Filecoin都会安全且正常的处理,不会出现这次错误情况。一般其中一条信息被执行,另一条被忽略。

错误使用API:但这次根据人们对链的检查方式,呈现出了消息被处理两次的样子。具体来说,有关交易所使用了一种错误的处理链状态的方式——在tipset的每个块上调用ChainGetBlockMessages,然后在这些消息上调用StateGetReceipt。

错误的API期望:当StateGetReceipt被调用在两个相似的消息上,它将提供相同的结果给人感觉两种消息都被执行了。这诚然是一种违背直觉思维的行为,但却是有意为之。StateGetReceipt的主要应用场景是在Lotus矿工和处理交易过程中使用的事件处理程序(https://github.com/filecoin-project/lotus/blob/79a8ff04fd5362a367fd7d6469e5287a47baa571/chain/events/events_called.go#L586)中。在消息被替换的情况下,这些模块并不关心返回的信息是对应原始消息,还是对应替换的消息——它们只是想知道消息是否在链上成功执行。我们已经在这里的文档中增加了澄清:https://github.com/filecoin-project/lotus/pull/5838。

API的正确使用方式:大多数交易所都是正确使用了ChainGetParentMessages和ChainGetParentReceipts来记账,以计算出链上执行了什么消息、哪些消息成功。这些都是Lotus本身在链state计算过程中使用的API,以保证使用者能通过这种方式正确反映链状态。

对每一条消息执行StateReplay,可以得到完整的调用结果,这样使用者就可以将返回的InvocResult中的MsgCid与查询消息的CID进行比较。这是推荐交易所的正确检查链状态并保持内部报告系统同步的步骤。

来源:金色财经

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:15ms0-3:712ms