Bitfinex LEO ERC20合同代码中发现欺诈行为
众所周知,智能合约可能会很棘手。非技术人员很容易根据炒作水平购买ERC20代币,而无需事先了解代币的质量和所购买代币的安全性.
业界最大的加密货币交易所之一Bitfinex已经发行了一个名为LEO的代币。该令牌允许控制它的实体打印或铸造无限的新令牌,还允许他们删除任何人的硬币,包括但不限于集中式或分散式交换,热或冷存储,硬件或软件钱包和/或纸或脑袋.
不要上当,购买ERC20并不意味着您的资产确实是您的!这不是我第一次公开这样的智能合约。就在上周,我们在Cointelligence上发布了有关允许相同功能的类似智能合约的报告,请查看有关WHEN智能合约的评论.
LEO ERC20合同是否使数十亿美元的欺诈和/或欺诈成为可能?
我们由您决定,现在让我们深入了解LEO令牌.
介绍
LEO是由iFinex Inc.在2019年5月10日推出的ERC20代币 他们的公告. 你可以找到 LEO白皮书 这里。尽管我们找不到GitHub存储库,但其令牌合同代码已在Etherscan上进行了验证。我们使用经过验证的LEO,LeoController和TokenFactory的Etherscan代码在Ropsten testnet中测试和部署此令牌的副本.
LEO代币 – iFinex Inc的子公司Unus Sed Leo Limited发行的ERC20代币.
控制器 – 控制器合同使所有者可以转让,批准,发布,刻录和更改控制器本身。另请注意,尽管“ 0xf17ebb3a24dc6d6b56d38adf0df499c1cd9e5672”合同目前“控制” LEO ERC20合同,但所有者可以随时轻松地将““控制器””升级或更改为任何地址,从而使他们几乎可以使用LEO令牌进行任何操作.
LEOController合同:所有者可以更改LEO ERC20合同的“控制器”
这 LEO控制器 合同所有者可以随时更改“控制人”,并将其设置为他们控制的任何钱包地址.
- 通过在第698行调用函数“ upgradeController”并输入他们选择的任何钱包地址.
- 确认上述交易后,输入的地址将成为LEO ERC20合同的新“控制人”.
LEO合同:所有者可以燃烧您的令牌并铸造无限的新令牌
LEO所有者如何永久保留铸币?
如前所述,一旦控制器地址更改为钱包地址(甚至是新的智能合约),他们就可以在第460行简单地调用函数“ generateTokens”.
参数
- _owner→将接收新铸造的LEO令牌的钱包.
- _amount→要“打印”的代币数量,该代币数量将到达上述地址.
笔记 – LEO白皮书没有提及最大的令牌供应量,该合同使他们能够继续铸造LEO令牌,因为我们能够使用其代码在测试网上“打印”四千万个LEO令牌。.
LEO所有者如何删除他人的令牌?
477上的功能“ destroyTokens”使LEO控制器钱包可以刻录任何人的LEO令牌,包括但不限于集中式或分散式交换,硬件或软件钱包,热或冷存储和/或纸张或大脑中存在的令牌。钱包。您的硬币在哪里都无所谓,如果愿意,他们可以删除您的硬币。就如此容易.
参数
- _owner→从中烧毁现有LEO令牌的钱包.
- _amount→要从上述钱包地址“删除”的代币数量.
进一步的证据
我们复制了LEO ERC20令牌,控制器和工厂的完全相同的代码,以将以下合同部署到 Ropsten测试网.
钱包/地址
- 发件人地址:0x58FA58089956c5cba21d9f61434B1902F8121b32
- 随机生成的地址:0xada183F6Ff6E7805EE5bDA701d40958858FeE548
首先,我们将控制器从发送者地址更改为“ LEOController”的副本,以查看是否可以使用函数“ upgradeController”将控制器再次更改为发送者地址。.
脚步
- 代币工厂 已部署
- LEO代币 已部署
- LEO控制器 已部署
- 检查谁实际上是LEO令牌合约的“控制人”:0x58FA58089956c5cba21d9f61434B1902F8121b32.
- 使用LEO合约上的功能“ changeController”将控制器更改为以前部署的控制器 “ LEOController”合同
- 确认控制器实际上已更改为智能合约地址.
至此,我们的测试网LEO合同在以下方面与LEO ERC20合同完全相似
现在,我们正在尝试确定:
- 如果我们可以通过先更改控制器来烧毁或销毁其他人的LEO令牌.
- 如果我们可以发行大量的LEO令牌以查看是否存在上限.
脚步
- 尽管目前我们知道所有者不可能使用“ changeController”功能更改“ LEO”合约上的控制器,但我们仍然有意发送该交易以使其恢复或失败. 失败的
- 我们转到“ LEOController”合同,并使用功能“ upgradeController”将受控智能合同的控制器(即LEO)再次更改为发件人地址。. 成功
笔记 – 我们将控制器从发件人更改为智能合约,然后又重新发送回发件人,因为我们想向您展示,我们很容易在测试网(主网中)中更改控制器.
发行代币
由于现在发件人再次成为LEO合同的控制者,因此它可以访问LEO合同功能“ generateTokens”和“ destroyTokens”。我们生成了一个随机的钱包地址“ 0xada183F6Ff6E7805EE5bDA701d40958858FeE548”以疯狂地发送一些 大量的LEO代币 1,000,000,000,000,000,000,000,000,000,000,000,000,000,000(十亿)LEO已转让.
燃烧令牌
我们想确定我们(发送方)是否可以从随机地址中删除或销毁令牌 我们先前产生的0xada183F6Ff6E7805EE5bDA701d40958858FeE548.
在上述交易中,我们成功地从他人的钱包或我们不拥有的地址中燃烧/删除/销毁了10,000,000,000(一百亿)个代币.
您可以看到地址“ 0xada183F6Ff6E7805EE5bDA701d40958858FeE548”现在的余额为999,999,999,999,999,999,999,999,999,990,000,000,000(九千九百九十,九百九十九,九百九十,九百九十,九百九十,九百九十,九百九十,九十九,990万亿,990万亿,990万亿,990万)仅测试网LEO代币.
合同比较 | |||
狮子座 | 原版的 | 测试网 | 差异 |
MiniMeTokenFactory | 原版的 | 测试网 | 差异 |
LEO控制器 | 原版的 | 测试网 | 差异 |
TLDR:这对我有何影响?
Pafine Ardoino,Bitfinex的首席技术官, 回复了我们的推文 概述了此问题,并指出:
“出于安全性和未来证明的原因,我们还保留了升级令牌合同的能力。对于可能使用多年的合同而言,这确实是一项关键功能。为Finex铸造更多令牌将毫无意义…就像开枪一样。 ”
我们不仅喜欢他的推文,还想公开感谢他的答复,因为我们相信这是我们可以追究责任并帮助引导该行业迈向更美好未来的方式.
现在,让我们重新开始吧!请注意,智能合约的设计是不可信任的。 Bitfinex通过在这里放置后门来打破信任,这使他们可以在需要的时候作弊,与您和我这样的人相比,这具有不公平的优势。在整篇文章中,我们反复指出的唯一事实是,他们有能力自行决定铸造任意数量(或数量不限)的LEO硬币,以及现在或将来删除任何钱包的硬币.
为非技术读者总结和简化所有内容,我们不会否认或质疑智能合约的可升级能力。这里的问题不是技术上的,而是哲学上的。如果您对Bitfinex能够使用LEO所做的事情感到满意,那么我们也理解这一点,并尊重您的观点。但是对于我们来说,LEO不能很好地与区块链的精神和哲学打交道,因为它们可以支配术语。同样,基于我们的错误和谦虚的理解,一种加密货币:
- 应该向所有人开放。您可以随心所欲来去。 ✓
- 应该是公平的。没有人比任何人都有任何不公平的优势。 ✘
- 应该是包容性的。它不应该局限于任何人,无论他们说什么,做什么或来自何处,而应该完全不理会 "谁" 他们是或 "什么" 他们可能会成为。 ✘
- 如果不是不受审查的,则应具有抗审查性。在任何给定的时间点都不应阻止任何人使用或访问任何功能。当涉及到区块链网络(在这种情况下为智能合约)时,即使是欺诈者,黑客和骗子之类的不良行为者也应以未经审查的方式对待-包容,平等,公开和公平。如果您无法审查比特币中的不良行为者,为什么您应该能够在LEO中做到这一点? “可升级性”不能证明口述术语的“能力”是正当的。 ✘
- 应该是一成不变的。无论发生了什么,都应该永远呆在那里,任何人都可以验证,同意或不同意。 ✓
- 网络应分散。不应有任何中央实体可以决定应该发生的事情。即使以太坊网络是分散的,LEO代币合约也不是因为它们可以支配条款。 ✘
- 应该分发。每个人都应该能够自己获取网络的历史记录并验证数据的真实性。 ✓
人们信任区块链,因为它是不信任的。区块链的可信赖的不信任性质使像您和我一样的人对这项惊人的技术产生了兴趣.
我们不会在个人层面上对Bitfinex怀有仇恨,但是当我们认为它们是错误的并且他们需要做正确的事情时,不要害怕将矛头指向它们。我们为Bitfinex提供了一种解决方案,以创建没有此类功能的新代币并将其与投资者交换。仅此一项措施就可能增强投资者对LEO代币的信心.
最后,这场辩论可以绕开圈子,因为Bitfinex认为他们需要“可升级性”(真的吗?),我们不会简单地接受一个事实,即即使不是我们的钱币,也可以删除其他人的钱币。在此,我们谨向您,我们的杰出读者,下定决心,看看您是否想信任LEO ERC20合同.