Tezos Blockchain: 監査の観点からの詳細な分析 PlatoBlockchain Data Intelligence。 垂直検索。 あい。

Tezos ブロックチェーン: 監査の観点からの詳細な分析 

読み取り時間: 5

Tezos ブロックチェーン プロジェクトは、初期コイン オファリングで 232 億 20 万ドルを調達するという素晴らしいスタートを切り、XNUMX の最大の ICO の中で最大の資金を受け取り、XNUMX 位になりました。

Ethereum や Bitcoin などの最も人気のあるブロックチェーン ネットワークの中で、Tezos はどのように誇大広告を得ることができたのでしょうか? その答えを見つけるために、多くの支持者を魅了してきた Tezos の特徴的な属性を詳しく見てみましょう。 

その時代に出現したブロックチェーンはプルーフ・オブ・ワーク(PoW)コンセンサスに取り組んでいましたが、テゾスのブロックチェーンは革新的でした。 ステークフル・オブ・ステーク自己修正メカニズムとオンチェーン ガバナンスを備えた (PoS) ベースのコンセンサス。 

その結果、Tezos は、大幅に少ないエネルギーと低コストを必要とする環境に優しい DeFi アプリケーションを構築するための完璧な代替手段として脚光を浴びました。 では、Tezos インフラストラクチャは、アップグレードをはるかに簡単に実装できる柔軟性とどのように一致するのでしょうか?

これにより、Tezos に付加価値を与えるアーキテクチャのセットアップについて学ぶことができます。

Tezosのスマートコントラクト

スマート コントラクトは、どちらか一方が他方を信頼する必要なく、XNUMX 者間でトークンの交換を処理するようにプログラムされた実行可能なコントラクトです。 

Tezos に関しては、マイケルソン プログラミング言語を使用して独自に記述されています。 さらに、テゾスは正式な検証を採用してコードの正確性を保証し、より安全で信頼性の高いものにします。 

Tezos ブロックチェーンの詳細を列挙する

  テゾスのハイライト その構成と独自性をよりよく理解するために、ここに記載されています。 

自己修正

コンセンサス アルゴリズムで動作するブロックを検証する Tezos は、自己修正可能なメカニズムが組み込まれています。 異なるコンセンサスへの切り替え、報酬システムの変更、トランザクションの追加など、プロトコルの修正は、オンチェーン投票システムに基づいて実装されます。 

Tezos 経済プロトコルのマイナーからメジャーへの変更は、オンチェーンの投票手順によってトリガーされます。 この自己修正プロトコルは、コミュニティの分岐や分裂を回避する上で有利です。

オンチェーンガバナンス

Tezos は、ブロックチェーンの分割 (ビットコイン キャッシュとイーサリアム クラシック) につながった形式化されていないガバナンス システムに従ったビットコインとイーサリアムとは対照的です。 

Tezos のオンチェーン ガバナンスは、マイナーとも呼ばれる「ベイカー」がプロトコルのアップグレードを提案し、投票するのを容易にします。 Tezos のオンチェーン手法は、中央のディレクターを介さずに、基盤となるプロトコルのコードにアップグレードを自動的に実装するように設計されています。 

プルーフ・オブ・ステーク・コンセンサス: PoS 

Tezos の PoS コンセンサスでは、誰でも参加できます。 ブロックを検証し、コンセンサスの構築を可能にする Tezos ベーカーになるためには、ベーカーは XTZ (ネイティブ) トークンを最小限保持する必要があります。 

また、ユーザーがベイクに十分な余裕がない場合、Tez バンクロールが大きいベイカーに XTZ トークンを委任できる方法も採用しています。 次に、ベイカーが獲得した報酬は委任者に再分配されます。 

Tezos スマート コントラクトで見つかった根拠を悪用する

監査レポートの XNUMX つで、Tezos スマート コントラクトのメッセージ パッシング アーキテクチャのエラーが明らかになりました。 ここで解読します。 

メッセージ パッシング アーキテクチャ

関数の実行中に呼び出されるはずの外部コントラクトは、代わりに Tezos コントラクトで実行される呼び出しのリストにキューに入れられます。 

Tezos コントラクトにある注文は、 

  • a() を実行 # 次の呼び出し: [b, d]
  • b() を実行 # 次の呼び出し: [d, c]
  • d() を実行 # 次の呼び出し: [c]
  • c() を実行 # 次の呼び出し: []

ここで、コード d() がコード c() の前に実行されることがわかります。

このタイプの実行には、XNUMX 種類の脆弱性が発生する可能性があります。

コールバック承認バイパス 

Tezos のアーキテクチャは、コントラクトがコールバック関数を使用して外部呼び出しの戻り値を読み取らないように構築されています。 ただし、ここでは制限がないため、コールバックを使用するとアクセス制御の問題が発生する可能性があります。 

コール インジェクション

関数と生成された外部呼び出しの間に呼び出しを挿入することにより、攻撃者がコントラクトを侵害する可能性があります。 

関数の実行時に、生成された呼び出しは、実行される呼び出しのリストにキューに入れられます。 攻撃者は、自分の呼び出しをキューに配置し、実行された関数の最後と生成された呼び出しの間でコードを実行することで、優位に立つことができます。 

攻撃者の呼び出しが実行されると、コントラクトの残高またはコントラクトのメモリが無効な状態になり、攻撃者は呼び出しインジェクションを成功させます。 

Michelson を使用して Tezos スマート コントラクトをコーディングする際の注意事項

Michelson プログラミング言語は、データ漏洩や資金の盗難に強い安全なコントラクトを作成するための頼りになるオプションです。 プログラミング言語は非常に強力ですが、契約に現れる可能性のある間違いのリストがあります。 

よくある間違いと、エラーを除外する方法を理解しましょう。

契約リストへの払い戻し

これは、集団の資金が一度に払い戻される状態です。 悪意のあるユーザーがこのような問題を開始する任意の契約を受け入れると発生します。 

このエラーから発生する可能性のある問題は、コントラクトが一連のコールバックを通じてすべてのガスを飲み込むこと、すべての計算を停止する「FAIL」命令が呼び出されること、再入エラーなどです。 

解決策は何ですか?

デフォルトのアカウントはコードを実行しません。 したがって、上記の問題は、ユーザーのキーから既定のアカウントを作成することで解決できます。 また、ユーザーに個別に資金を引き出すようにプログラムすることもできます。 

転送前の状態を設定しない

再入可能性は、ブロックチェーンの一般的なハードルです。 コントラクトが転送を行うために別の外部コントラクトを呼び出す場合、各転送後に状態が更新されない場合、任意のものがさらに転送を行う際に優位に立つことができます。

これにより、契約から資金が複数回引き出されます。 

解決策は何ですか?

外部コントラクトを呼び出すときは注意し、それらの動作を変更できないことを確認してください。 再入を禁止するには、ストレージにフラグを立てて、正当な理由がない限りユーザーが再入室できないようにします。 

個人データの保存または転送

公開されたデータは、明示的に表示できます。 つまり、トランザクションがブロードキャストされると、個人情報が誰にでも見えるようになります。 これにより、システム内の悪意のあるノードが署名されていないトランザクションを遅延または変更して操作する機会が与えられます。 

解決策は何ですか?

機密情報を含むトランザクションに署名します。 カウンターを使用してトランザクションの注文を強制すると、問題を解決できます。 

Tezos スマート コントラクト監査を通じて、プロによる保護をプロジェクトに保証 

自己修正構造で構築された Tezos は、より優れたスケーラビリティと信頼性を提供しますが、セキュリティはブロックチェーン ベースのアプリケーションにとって常に問題になります。 最小の問題が最大の資金損失を引き起こす可能性があります。 

それはどこに クイルオーディッツ 悪者の手から資産を保護するために一歩前進します。 徹底的に実施することにより、これらの問題を認識して修正するため、契約を悪用する機会を彼らに与えません Tezos スマート コントラクト監査

当社の専門家と無料で相談して、当社の監査サービスについて学びましょう。 

2 ビュー

タイムスタンプ:

より多くの クイルハッシュ