スマートコントラクトには注意が必要な場合があることはよく知られています。技術者以外の人は、トークンの品質や購入するトークンの安全性に関する事前の知識がなくても、誇大広告のレベルに基づいてERC20トークンを購入したくなるでしょう。.
業界最大の暗号通貨取引所の1つであるビットフィネックスは、LEOと呼ばれるトークンを発行しました。このトークンにより、それを制御するエンティティは、無制限の新しいトークンを印刷または作成できます。また、集中型または分散型の取引所、ホットまたはコールドストレージ、ハードウェアまたはソフトウェアウォレット、および/またはそれらに限定されない、誰のコインも削除できます。紙または脳の財布.
だまされてはいけません。ERC20を購入しても、あなたの資産が本当にあなたのものであるとは限りません。このようなスマートコントラクトを公開したのはこれが初めてではありません。先週、Cointelligenceで、同じ機能を許可する同様のスマートコントラクトに関するレポートを公開しました。スマートコントラクトの場合についてのレビューを確認してください.
LEO ERC20契約は、数十億ドルの詐欺や詐欺を可能にしますか?
決定はあなたに任されています。それでは、LEOトークンについて詳しく見ていきましょう。.
前書き
LEOは、2023年5月10日にiFinexInc。によって導入されたERC20トークンです。 彼らの発表. あなたは見つけることができます レオホワイトペーパー ここに。 GitHubリポジトリを見つけることができませんでしたが、トークンコントラクトコードはEtherscanで検証されました。 LEO、LeoController、およびTokenFactoryの検証済みEtherscanコードを使用して、このトークンのコピーをRopstenテストネットでテストおよびデプロイしました。.
LEOトークン – iFinexIncの子会社であるUnusSed LeoLimitedが発行したERC20トークン.
コントローラ – コントローラー契約により、所有者はコントローラー自体を転送、承認、発行、書き込み、および変更できます。また、「0xf17ebb3a24dc6d6b56d38adf0df499c1cd9e5672」コントラクトは現在LEO ERC20コントラクトを「制御」していますが、「コントローラー」は所有者がいつでも簡単にアップグレードまたは任意のアドレスに変更できるため、LEOトークンでほとんど何でもできることに注意してください。.
LEOController契約:所有者はLEOERC20契約の「コントローラー」を変更できます
ザ・ LEOController 契約所有者はいつでも「コントローラー」を変更し、これを自分が管理する任意のウォレットアドレスに設定できます.
- 698行目で関数「upgradeController」を呼び出し、任意のウォレットアドレスを入力する.
- 上記の取引が確認されると、入力されたアドレスがLEOERC20契約の新しい「コントローラー」になります。.
LEO契約:所有者はあなたのトークンを燃やし、無制限の新しいトークンをミントすることができます
LEOの所有者はどのようにしてトークンを永遠にミントし続けることができますか?
前に説明したように、コントローラーアドレスがウォレットアドレス(または新しいスマートコントラクト)に変更されると、460行目で関数「generateTokens」を呼び出すことができます。.
パラメーター
- _owner→新しく作成されたLEOトークンを受け取るウォレット.
- _amount→上記のアドレスに移動する「印刷」するトークンの量.
注意 – LEOホワイトペーパーには、トークンの最大供給量については記載されていません。この契約により、コードを使用してテストネットに数千兆のLEOトークンを「印刷」できたため、LEOトークンを引き続き作成できます。.
LEOの所有者はどのようにして他の誰かのトークンを削除できますか?
477の機能「destroyTokens」により、LEOコントローラーウォレットは、集中型または分散型の取引所に存在するもの、ハードウェアまたはソフトウェアウォレット、ホットまたはコールドストレージ、および/または紙または頭脳を含むがこれらに限定されない、誰のLEOトークンも書き込むことができます。財布。あなたのコインがどこにあるかは関係ありません、彼らが望むなら彼らはあなたのコインを削除することができます。それと同じくらい簡単.
パラメーター
- _owner→既存のLEOトークンが書き込まれるウォレット.
- _amount→上記のウォレットアドレスから「削除」するトークンの量.
さらなる証拠
LEO ERC20トークン、コントローラー、およびファクトリのまったく同じコードをコピーして、次のコントラクトを Ropsten testnet.
ウォレット/アドレス
- 送信者アドレス:0x58FA58089956c5cba21d9f61434B1902F8121b32
- ランダムに生成されたアドレス:0xada183F6Ff6E7805EE5bDA701d40958858FeE548
まず、コントローラーを送信者アドレスから「LEOController」のコピーに変更し、関数「upgradeController」を使用してコントローラーを送信者アドレスに戻すことができるかどうかを確認しました。.
ステップ
- トークンファクトリー 展開
- LEOトークン 展開
- LEOController 展開
- LEOトークンコントラクトの「コントローラー」が実際に誰であるかを確認:0x58FA58089956c5cba21d9f61434B1902F8121b32.
- LEOコントラクトの関数「changeController」を使用してコントローラーを以前にデプロイされたものに変更しました 「LEOController」契約
- コントローラが実際にスマートコントラクトアドレスに変更されたことを確認しました.
この時点で、テストネットLEO契約は、次の点でLEOERC20契約とまったく同じです。
今、私たちは決定しようとしています:
- 最初にコントローラーを変更して、他の誰かのLEOトークンを燃やしたり破壊したりできる場合.
- 非常に大量のLEOトークンを発行して、上限があるかどうかを確認できる場合.
ステップ
- この時点で、所有者が関数「changeController」を使用して「LEO」コントラクトのコントローラーを変更することはできないことはわかっていましたが、それでも意図的にそのトランザクションを送信して、元に戻すか失敗させました。. 失敗しました
- 「LEOController」コントラクトに移動し、関数「upgradeController」を使用して、制御されたスマートコントラクトのコントローラー(LEO)を送信者アドレスに再度変更しました. 成功
注意 – コントローラーをSenderからスマートコントラクトに変更してから、再びSenderに戻したのは、テストネット(およびメインネット)でコントローラーを変更するのが非常に簡単であることを示したかったからです。.
トークンの発行
Senderは再びLEOコントラクトのコントローラーになるため、LEOコントラクト関数「generateTokens」および「destroyTokens」にアクセスできます。ランダムなウォレットアドレス「0xada183F6Ff6E7805EE5bDA701d40958858FeE548」を生成して、めちゃくちゃに送信しました 大量のLEOトークン 1,000,000,000,000,000,000,000,000,000,000,000,000(1十兆)LEOが転送されました.
トークンの書き込み
私たち(送信者)がランダムアドレスからトークンを削除または破棄できるかどうかを判断したかった 以前に生成した0xada183F6Ff6E7805EE5bDA701d40958858FeE548.
上記のトランザクションでは、他の誰かのウォレットまたは所有していないアドレスから10,000,000,000(100億)のトークンを正常に焼き付け/削除/破棄しました.
アドレス「0xada183F6Ff6E7805EE5bDA701d40958858FeE548」の残高は、999,999,999,999,999,999,999,999,990,000,000,000(999億、999兆、99兆、999兆、999,999 、999兆、999兆、999兆、9990億)テストネットLEOトークンのみ.
契約の比較 | |||
レオ | 元の | テストネット | 差分 |
MiniMeTokenFactory | 元の | テストネット | 差分 |
LEOController | 元の | テストネット | 差分 |
TLDR:これは私にどのような影響を与えますか?
BitfinexのCTO、Paolo Ardoino, ツイートに返信しました これは、この問題の概要を示し、次のように述べています。
「セキュリティと将来の証拠のために、トークン契約をアップグレードする機能も残しました。これは、何年も続く可能性のある契約にとって本当に重要な機能です。より多くのトークンを作成することは、Finexにとって意味がありません…私たちの足を撃つように。 「「
私たちは彼のツイートが大好きだっただけでなく、彼の返事に公に感謝したいと思います。これが私たち自身に説明責任を負わせ、この業界をより良い未来に導くのに役立つと信じているからです。.
それでは、ビジネスに戻りましょう。スマートコントラクトは信頼できないように設計されていることに注意してください。ビットフィネックスは、ここにバックドアを置くことで信頼を失い、必要なときにいつでもチートするためのチケットを提供し、あなたや私のような人々よりも不当に有利になります。この記事全体を通して繰り返し、私たちが指摘した唯一の事実は、現在または将来、任意の数の(または無制限の)LEOコインを自分の裁量でミントし、ウォレットのコインを削除する能力です。.
技術者以外の読者のためにすべてを要約して簡素化するために、スマートコントラクトのアップグレード可能性を否定したり疑問視したりすることはありません。ここでの問題は技術的ではなく哲学的です。 BitfinexがLEOでできることを実行できることに問題がない場合は、それも理解しており、あなたの視点を尊重します。しかし、私たちにとって、LEOは用語を指示できるため、ブロックチェーンの精神と哲学とうまく連携していません。また、私たちの欠陥のある謙虚な理解に基づいて、暗号通貨:
- 誰にでも開かれている必要があります。あなたは好きなように行き来することができます。 ✓✓
- 公平でなければなりません。誰もが他の誰よりも不当な優位性を持つべきではありません。 ✘
- 包括的である必要があります。彼らが何を言ったか、何をしたか、どこから来たかに関係なく、それは誰にも制限されるべきではなく、代わりに完全に無関心であるべきです "WHO" 彼らはまたは "何" 彼らはおそらくなる可能性があります。 ✘
- 検閲がないわけではないにしても、検閲に強いはずです。いかなる時点においても、機能の使用またはアクセスを停止してはなりません。ブロックチェーンネットワーク(この場合はスマートコントラクト)に関しては、詐欺師、ハッカー、詐欺師などの悪意のある人物でさえ、包括的、平等、オープン、そして公正に無修正で扱われるべきです。ビットコインで悪役を検閲できないのなら、なぜレオで検閲できるのでしょうか? 「アップグレード可能性」は、用語を口述する「能力」を正当化するものではありません。 ✘
- 不変である必要があります。何が起こったとしても、誰もが誰もが検証、同意、または反対できるように、永遠にそこにとどまる必要があります。 ✓✓
- ネットワークは分散化する必要があります。何が起こるべきかについて条件を指示できる中央の実体があってはなりません。イーサリアムネットワークは分散化されていますが、LEOトークン契約は条件を決定できるためではありません。 ✘
- 配布する必要があります。誰もが自分でネットワークの履歴を取得し、データの信頼性を検証できる必要があります。 ✓✓
ブロックチェーンは信頼できないため、人々はブロックチェーンを信頼しています。ブロックチェーンの信頼できる信頼できない性質により、あなたや私のような人々はこの驚くべきテクノロジーに興味を持った.
私たちは個人レベルでビットフィネックスに恨みを抱いていませんが、彼らが間違っていると感じ、彼らが正しいことをする必要があると感じたときに、彼らに指を向けることを恐れません。そのような機能のない新しいトークンを作成し、投資家と交換するためのソリューションをビットフィネックスに提供します。この行動だけでも、LEOトークンに対する投資家の信頼を高める可能性があります.
最後に、ビットフィネックスは「アップグレード可能性」が必要であると主張し(本当にそうですか?)、他の誰かのコインが削除される可能性があるという事実を単純に受け入れないため、この議論は循環する可能性があります。私たちはここに私たちの素晴らしい読者であるあなたに私たちのケースを休ませて、あなた自身の決心をし、あなたがLEOERC20契約を信頼したいかどうかを確かめます.