読み取り時間: 5 分
暗号通貨トークンについて聞いたことがあるはずです。 そこにあるさまざまなトークンは、web3 エコシステムで重要な役割を果たします。 これらのトークンは、暗号通貨における所有権、富、信頼性、および権限を表しています。 面白いのは、暗号通貨のトークンを作成できることです。
これらのトークンは、転送、残高チェックなどのさまざまなアクションのためのさまざまな機能を含むスマート コントラクトです。スマート コントラクトを作成することで、トークンを作成できます。 それでも、トークンが安全であることを保証し、それに信頼感を与えるために、ERC 20 は スマートコントラクト標準 ERC 721 は、非代替トークン (NFT) の作成に使用されるスマート コントラクト標準です。
ERC 20 と ERC 721 は、トークン作成用のスマート コントラクト プロトコルとして広く受け入れられています。 それらは、トークンに安全で信頼できる環境を提供します。 そして、これらのプロトコルは改善され続け、改善され続けています。 その方向への一歩は、トークン用の新しい ERC 1155 スマート コントラクト プロトコルの作成につながります。 それが何であるか見てみましょう。
1. ERC 1155 とは?
20 や 721 などのすべての ERC は、NFT のさまざまな状況に適合するスマート コントラクトを作成するための単なる標準です。 ERC 721 があり、USDT や DAI などの代替トークンは ERC 20 規格に準拠しています。 ERC 1155 は、ERC 20 および ERC 721 の機能と特性を含む標準の XNUMX つです。
複数の商品を作成するプログラムを作成するとします。 たとえば、金という名前のトークン、銀という名前の別のトークン、および 3 人のキングを作成したい場合、ロジックでは、金と銀の数が多い方がキングになります。 王は一人しか存在できません。 これは単純なプロトコルですが、これを作成するには、資産のためだけに 721 つのコントラクトをデプロイする必要があります。XNUMX つはゴールド トークン用、もう XNUMX つはシルバー用、もう XNUMX つはキング用で、ERC XNUMX になります。それらすべての異なるトークンをリストする XNUMX つのコントラクト?
これは、ERC 1155 が解決するそのような問題の 1155 つです。 ブロックチェーンに必要なトークンごとにコントラクトをデプロイする必要はありません。 これはそのような ERC 3 コントラクトの例の 1155 つです。 いくつかの代替可能、いくつかの代替不可能な、複数のアセットを備えたこのタイプのシステムが必要な場所を推測してください。 答えは web3 ゲームです。 ERC XNUMX は、WebXNUMX ゲーム開発者にオンチェーン トランザクションのスケーラビリティとスムーズな開発を可能にします。
1.1 ERC 1155 のトークン ID
さまざまな ERC 20 トークンの残高を確認する方法を知っておく必要があります。 balanceOf(address _owner) 関数を使用すると、そのアドレスが保持するトークンの数を取得できます。 しかし、ERC 1155 はさまざまなトークンを扱うため、さまざまなトークンにさまざまな ID を提供する必要があります。 トークンに関連するほぼすべての関数は、tokenId (照会したい資産) と知りたいアドレスの少なくとも XNUMX つのパラメーターを取ります。
たとえば、コントラクトに金、銀、王の 3 つのトークンがあるとします。 特定のアドレスがそのプロトコルでどれだけのゴールドを持っているかを知るには、関数 balanceOf(住所 _オーナー、 単位256 _id) スマート コントラクト。 gold の tokenId が 1 に指定されているとします。 残高の(0x4Bf9DeCE75Bc7C4a9054d5b3BB13D53543eE4096、1).
2 スマート コントラクト ERC 1155 の監査ガイドライン
ERC 1155 はしばらく前から存在しており、一部の機能は通常の ERC 20 または ERC 721 プロトコルでは利用できません (バッチ転送など)。 また、ERC 1155 は市場空間であまり普及していないため、この分野は多くの開発者にとってあまり調査されていません。 QuillAudits は、ERC 1155 で BUIDL を検討しているプロトコルに関する重要な洞察を共有しているため、自らを保護することで、より安全な web3 エコシステムの作成を支援できます。
2.1 ERC 1155 受信機インターフェース
ERC 1155 コントラクトがアセットを他のコントラクトに転送する場合、これは一般に web3 ゲーム プロトコルの要件です。トークンのトランザクションを成功させるには、受信コントラクトに ERC1155Receiver インターフェイスを含めることが重要です。
ERC 1155 レシーバー インターフェイスに含まれる XNUMX つの機能は次のとおりです。
- onERC1155Received(オペレーター、送信元、ID、値、データ)
- onERC1155BatchReceived(オペレーター、送信元、ID、値、データ)
両方の関数はほとんど同じ機能を持っています。唯一の違いは、後者が一度に複数のトランザクションを処理する場合であるため、バッチという名前です。パラメータと戻り値にはわずかな違いがあります。 ただし、ここでは onERC1155Recieved についてのみ説明します。
この関数は、ミントまたは転送プロセスの外で呼び出してはなりません。 転送を受け入れるには、転送が許可されている場合、bytes4(keccak256(“onERC1155Received(address,address,uint256,uint256,bytes)”)) を返す必要があります。
パラメータを見る: -
- operator:- 転送を開始したアドレス (つまり、msg.sender)
- from:- 以前にトークンを所有していたアドレス
- id:- 転送されるトークンの ID
- value:- 転送されるトークンの数
- data:- 指定された形式のない追加データ
2.2 承認()関数がない?
ERC 20 または ERC 721 を使用したことがある場合は、承認されたトークンを所有者の残高から取得することを一部のアドレスに許可する、approve() 関数に出くわしたことでしょう。 たとえば、A が B が 100 トークンの DAI を取得することを承認したい場合、A は承認関数を呼び出して、B が 100 DAI トークンを受け取る資格があることを伝え、後で B がその金額で取引を行うことができます。
しかし、ERC 1155 には 承認する 単一トークンの関数。 私たちは setApprovalForAll(アドレス演算子、bool 承認済み) この関数は所有者によって呼び出され、使用者のアドレスまたはトークンを承認したいアドレスであるアドレス パラメーター演算子を受け取ります。 したがって、を呼び出すことはできません 承認する トークンの ERC 1155 リストから単一のトークンを機能または承認しますが、代わりに、すべてのトークン アクセスが一度に承認されます。 開発チームはこれを認識する必要があります。 これを無視すると、大規模な損失につながり、プロトコルが危険にさらされる可能性があります。
2.3 定期的なチェック
上記の 1155 つのセクションでは、ERC XNUMX 関連の固有のチェックのうちの XNUMX つを調査しました。 このセクションでは、あまり深い説明を必要としない定期的なチェックについて説明します。
- ID に注意してください:- ERC 1155 で動作するすべての外部関数またはインターフェイスは、トークン ID を入力として受け取るように指定する必要があります。
- Burn/Mint:- これらの関数が呼び出されるたびに、指定されたトークン ID の残高と totalSupply のみを変更する必要があります。
- ERC 20 の類似性:- 多くのプロパティは、ERC 20 トークン標準に似ています。 ERC 20 のセキュリティ ガイドラインを確認することも、この問題に役立ちます。
- 再入口:- 説明したように、ERC 1155 は転送ロジックでサポートされているインターフェイスをチェックします。 したがって、結果として生じる可能性のあるさまざまなシナリオが存在する可能性があります 再突入の脆弱性. 該当する関数に非再入可能ガード修飾子を保持することをお勧めします。
3. まとめ
Web3 エコシステムでは、セキュリティと機能を強化するために、通常の標準で継続的な開発が行われています。 ERC 1155 はその方向への一歩です。 しかし、新しい標準がリリースされると、プロトコルのあまり一般的ではない標準に関する知識のギャップが生じ、セキュリティ対策のためのサンプル スペースが小さくなるというリスクが伴います。 そんな時こそ、QuillAudits と専門家チームの出番です。 私たちは、プロトコルが侵害される可能性のあるさまざまな方法に取り組み、分析し、発見し、信じられないほどの結果でクライアントのプロトコルを保護します. 私たちの Web サイトにアクセスして、Web3 プロジェクトを保護してください!
17 ビュー
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- Platoblockchain。 Web3メタバースインテリジェンス。 知識の増幅。 こちらからアクセスしてください。
- 情報源: https://blog.quillhash.com/2023/02/20/security-analysis-of-the-erc-1155-nft-smart-contract/
- 1
- 100
- a
- 私たちについて
- 上記の.
- 同意
- アクセス
- 越えて
- 行動
- NEW
- 住所
- すべて
- 量
- 分析する
- 分析
- および
- 別の
- 回答
- 適用可能な
- 承認
- 承認する
- 承認された
- AREA
- 周りに
- 資産
- 資産
- アタッチ
- 監査
- 権威
- 利用できます
- さ
- より良いです
- の間に
- ブロックチェーン
- コール
- 呼ばれます
- 取得することができます
- 点検
- 小切手
- 状況
- 来ます
- 商品
- 妥協
- 損害を受けた
- 連続的な
- 縮小することはできません。
- 契約
- 作ります
- 作成します。
- 作成
- 創造
- 信頼性
- 重大な
- cryptocurrency
- DAI
- データ
- 取引
- 特価
- 深いです
- 展開します
- 開発者
- 開発
- 違い
- 異なります
- 方向
- 議論する
- 各
- エコシステム
- 力を与える
- 確保
- 環境
- 等
- EVER
- あらゆる
- 例
- 専門家
- 説明
- 調査済み
- 外部
- 特徴
- もう完成させ、ワークスペースに掲示しましたか?
- フィット
- 続いて
- から
- 楽しいです
- function
- 機能性
- 機能
- 置き換え可能な
- ゲーム
- Games
- ギャップ
- 一般に
- 取得する
- 受け
- Go
- 行く
- ゴールド
- 助成金
- ガード
- ガイドライン
- 聞いた
- 助けます
- こちら
- 保持している
- 認定条件
- HTTPS
- ID
- 重要
- 改善
- in
- 洞察
- を取得する必要がある者
- インタフェース
- IT
- 一つだけ
- キープ
- 神様です。
- 知っている
- 知識
- つながる
- リード
- リスト
- リスト
- 少し
- 探して
- 損失
- make
- 作成
- 多くの
- 市場
- 大規模な
- 問題
- 措置
- ミント
- 他には?
- の試合に
- 名
- 名前付き
- 必要
- ニーズ
- 新作
- NFT
- NFTs
- 代替不可能な
- 数
- オンチェーン
- ONE
- オペレータ
- その他
- 外側
- 所有している
- 所有者
- 所有権
- パラメーター
- パラメータ
- 部
- 特定の
- 画像
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- プレイ
- 流行している
- 前に
- 問題
- プロセス
- プログラム
- プロジェクト
- プロパティ
- プロトコル
- 提供します
- クイルハッシュ
- 受け入れ
- レギュラー
- 関連する
- リリース
- 表す
- 要件
- 結果
- 結果
- return
- リスク
- 職種
- 安全な
- より安全な
- 言う
- スケーラビリティ
- シナリオ
- セクション
- セクション
- 安全に
- セキュリティ
- 見て
- センス
- 株式
- シルバー
- 同様の
- 簡単な拡張で
- より小さい
- スマート
- スマート契約
- スマート契約
- So
- 解決する
- 一部
- スペース
- 指定の
- 標準
- 規格
- 手順
- まだ
- 成功した
- そのような
- サポート
- 取る
- 取り
- 取得
- Talk
- チーム
- 自分自身
- 介して
- 時間
- 〜へ
- トークン
- トークン
- トランザクション
- 取引
- 転送
- 転送
- 信頼
- 信頼できる
- 下
- ユニーク
- USDT
- 値
- 価値観
- さまざまな
- 極めて重要な
- 方法
- 富
- Web3
- Web3エコシステム
- ウェブ3ゲーム
- web3プロジェクト
- ウェブサイト
- この試験は
- 何ですか
- which
- 広く
- 意志
- 働いていました
- 作品
- でしょう
- You
- あなたの
- ゼファーネット