IPFS资讯

讯链前景怎么样

作者:资讯 来源:链氪网 2021-01-17 我要评论( )

出现的问题不影响 SAND 或 LAND;它仅影响 ASSET 。首先,感谢您作为 The Sandbox 社区的一员。

出现的问题不影响 SAND 或 LAND;它仅影响 ASSET (NFT 资产)。

首先,感谢您作为 The Sandbox 社区的一员。请注意, 是次产生的问题不造成任何资金的损失,您也无需采取任何行动。我们会及时处理此问题,并确保我们的用户受到充分保护。

出现的问题 不影响 SAND (代币) 或 LAND (土地);它仅影响 ASSET (NFT 资产)。

如有疑问、意见和疑虑,请加入我们的微信群、Discord 或 Telegram 查询。

我们期待您的持续支持,并感谢您在我们致力解决问题期间的耐心配合。

概要

  • 一位从事安全研究的人员使我们意识到,The Sandbox 的 ASSET 智能合约由于复制问题而容易受到攻击。

  • 该问题导致任何 ASSET 持有人都可以通过简单的函数调用来复制其 ASSET。请注意该漏洞不允许用户从其他钱包盗窃 ASSET;仅复制用户已经拥有的资产。

  • 其他所有智能合约均不受影响;SAND 和 LAND 智能合约都没有风险。

  • 至今没有任何用户恶意利用此漏洞进行攻击。

  • 所有主要的 The Sandbox ASSET 交易平台都已在 2021 年 1 月 13 日收到通知,并已于协调世界时 2021 年 1 月 16 日 00:01 (北京时间早上 08:01) 暂停了 ASSET 的交易。

持续的行动

**
**

  • 我们已将 ASSET 重新分发给超过 2,684 名独特用户,这些用户拥有 87 个独特资产,一共 115,926 个副本(对用户不会产生任何费用)。

  • 我们预计分发将在协调世界时周一 18 号 00:00 之前完成。

最后,我们感谢所有合作伙伴和社区一直对 The Sandbox 正在进行的开发工作予以信任和支持。

总体概述

**
**

The Sandbox 智能合约已由两家顶级安全公司( Certik 和 Solidified )进行了广泛审核,并获得很高的安全评分。这些审核可以在我们的 Github 存储库中公开访问。ASSET 智能合约最初于 2019 年 9 月 4 日由 Solidified 审核,并由三名审核员进行为期 2 周的审核。

The Sandbox 智能合约 :https://github.com/thesandboxgame/sandbox-smart-contracts

Github 存储库 :https://github.com/thesandboxgame/sandbox-smart-contracts/tree/master/documentation/audits

稀缺性、美学和实用性是构成 NFT (ASSET)价值的三大支柱。如果不能将 NFT 的稀缺性保存完好或保证给持有者和创作者,那么对于用户、我们的社区、我们自己以及整个生态系统都是不利的。

因此,我们决定立即采取行动并解决问题,详情请参阅以下时间表。

时间表

**
**

  • 2021 年 1 月 4 日,Optimism 的安全研究员 Maurelian (Medium / Twitter @maurelian_)通知了我们该漏洞。

  • 2021 年 1 月 5 日,我们进行了内部测试,并确认该问题的可重复性为 100%。

  • 1 月 5 日至 14 日期间,修复工作顺利完成,并将其提交给 Solidified 安全审核员再次审核,以确认该修复程序没构成新的漏洞。

  • 2021 年 1 月 13 日,我们将新的智能合约地址通知了受影响的交易平台(OpenSea、Arkane Marketplace、Lootex、Playdapp 和 iNFT 等等)。

  • 2021 年 1 月 15 日,我们部署了新修复的智能合约。

  • 2021 年 1 月 16 日协调世界时间下午 12:00,我们进行了区块链快照。

  • 我们现在将 ASSET 副本重新分发给所有持有人。

发生了什么事

该错误类似于 https://bzx.network/blog/incident ,并在其他多个项目中出现,但仅存在于现在的两个项目中。

  • 它允许某人向自己发送代币,以人为地将代币余额增加相同的数量。

  • 仅当用户使用 batchTransfer 函数时才发生这种情况,该函数出于优化目的将传输结果存储在临时内存变量中。

  • 当写存储的时候,发生了以下情况:

_packedTokenBalance[from][bin] = balFrom;

_packedTokenBalance[to][bin] = balTo;

参照 : https://github.com/thesandboxgame/sandbox-smart-contracts/blob/88615d4c9cdde260b7157537eedadb4c7e0aa8f5/old_hide/Asset/ERC1155ERC721.sol#L452-L453 和 https://github.com/thesandboxgame/sandbox-smart-contracts/blob/88615d4c9cdde260b7157537eedadb4c7e0aa8f5/old_hide/Asset/ERC1155ERC721.sol#L471-L472

  • balFrom 是发件人的新建内存累积余额,基本上是初始余额减去已转帐的数量。balTo 是接收者的新建内存累积余额,基本上是初始余额加上已转移的数量。

  • 当 from == to 时,第一行将 balFrom 存储,从而减少了用户的余额。但是第二行用 balTo 覆盖了它,基本上将用户的余额增加了该数量。

  • 如果行间的顺序颠倒了,那么颠倒本来是正确的,并且用户在向自己发送代币时基本上会出现损失。

我们做了什么修复:

我们能想到的最简单、最安全的解决方法是:当 from == to 时,跳过存储操作。但是我们还必须确保 TransferBatch 不能简单地发出持有者不拥有的余额转移。

在此处查看更改:https://github.com/thesandboxgame/assetbug/compare/0e8428debf30cec3f2f575da9d8255daf71992f9...c5dd53e9475e795ad2a5325c61a91c45e3b343bf#diff-ef9a3adf44471d1ae2da4fcc6e72f5337855709851272cb9640274c77eb7b94f

该修复已由 Solidified 进行了审核,并且可以在我们的 Github 存储库中找到审核报告 — https://github.com/thesandboxgame/assetbug/raw/asset_bug/documentation/audits/Audit%20Report%20-%20Sandbox%20Asset%20Bug%20Fix%20%5B15.01.2020%5D.pdf

我们还利用 Open Zeppelin 合约使 ASSET 合约可升级。

做出这个决定并非轻描淡写,这些更改的主要原因是:

  • 发现漏洞时可以启用快速恢复(尽管我们认为 ASSET 合约中不存在任何剩余内容)。

  • ASSET 合约已经具有管理员功能,这将使 The Sandbox 的最高管理员(多重签名权限者)能够删除所有用户代币的所有权。

  • 当我们计划将来迁移到第 2 层解决方案时,我们希望有利于升级 ASSET 智能合约的能力。确实,我们目前使用主网作为铸造时间戳的来源,但是当我们迁移到第 2 层时,可能需要调整 ASSET 合约的行为方式。最后,我们无法保证不会再进行其他部署,但是增加可升级性可以减少对更复杂的部署过程的需求。

  • 我们计划在平台完全准备就绪且不再需要管理员操作时删除可升级性(以及当前的超级操作员权限)。

不过,智能合约修复只是解决方案的一半。我们必须收集受影响 ASSET 持有者的用户数据及其余额资料,然后使用该信息重新部署新的 ASSET 合约。现在,我们正在迁移所有数据,并且如上所述,我们将在 1 月 18 日星期一之前完成所有用户资产的恢复。

学了些什么和我们将来会做什么?

自从最初部署 ASSET 智能合约以来,我们已经大大改善了我们的工具。现在,我们使用 HardHat ( http://hardhat.org )及其插件生态系统,这有助于我们改进测试并确保良好的覆盖率。我们最近建立了一份测试覆盖率报告,并将很快全面启用。

值得注意的是,该错误本應通过测试被发现,并且尽管我们对该边沿进行了测试,仍然没有执行必要的检查。确实,测试覆盖率工具不能确保测试上捕获所有漏洞。虽然拥有覆盖率统计总比没有好得多,但是还有其他工具可以让我们检查并针对将来遇到的类似问题进行了实际优化。特别是一种工具:https://github.com/JoranHonig/vertigo 将通过修改合约代码并检查发生这种突变时的测试是否有效。我们希望协助这项目使我们的工具能兼容。

结语

再次感谢您的阅览,并作为 The Sandbox 社区的一员。

我们期待您的持续支持,并感谢您在我们致力解决问题期间的耐心配合。

祝您安康!

The Sandbox 团队

---

  • 如果内容有任何差异的地方,请以英文版本为准。

加入我们的社区

如果您在这里没有看到您的问题,可以加入我们的社交平台,我们的团队成员会为您提供帮助。

想了解更多信息,请访问 www.sandbox.game/cn/ 并关注以下我们定期更新的社交平台。

转载请注明出处。

合约,用户,余额

本文版权归原作者所有,发布此文仅为传递更多行业市场信息,不代表本站观点及立场。如涉及侵权问题请及时联系删稿。本站文章均不构成投资建议,请知悉!

相关文章
网友点评
0条 [查看全部]  相关评论
浏览记录清空