ListiaのInk Protocol 監査結果

Tomohiro Tanaka
Quantstamp JAPAN
Published in
5 min readMar 21, 2018

過去数週間、Quantstampは、Listia Inc.によって開発されたInkプロトコルのトークンセールとdappのスマートコントラクトを監査してきました。

Inkプロトコルは、P2Pマーケットプレイスの専門知識をブロックチェーン上に乗せるListiaの取り組みを具体化し、マーケットプレイスが遵守すべきインターフェースと状態遷移システムを細かく規定します。複数のマーケットプレイスを導入することで、ユーザーの評判を集約して市場全体を把握することができます。重要な点は、Listiaは展開後に既存のマーケットプレイスでブロックチェーン中心のプロトコルを使用するので、すぐに何百万人ものユーザーがプロトコルに移行します。

私たちの監査は、Listiaチームと緊密に協力して行われました。審査中に提起された懸念事項は、チームによって解決され、トークンセールは既に正常に完了していることにご注意ください。

トークンセールのスマートコントラクト監査結果

  1. いくつかの余分なrequireステートメントと明示的な修飾子があり、コードをより安全で読みやすくすることができます。たとえば、addContributions()のたまの_maxパラメータは、ユーザーがセールで購入できる金額を制限します。しかし、_maxパラメータが0.1 Etherのグローバル最小寄与よりも低く設定されていると、ユーザーは決して購入することができません。 _maxが少なくともグローバル最小値に設定されるようにrequire文が追加されました。別のベストプラクティスとして、状態変数にはすべて明示的な修飾子が含まれている必要があります。これは “etherContributed”と “xnkPurchased”の場合のことではありません。
  2. 自動分析ツールをスマートコントラクトに実行しました。OnlyOwner関数でのcall.value()呼び出しのために軽微な警告しか検出されず、これは特に問題ではないと考えています。
  3. テストで偽の値(例えば、 “updateContributor”と “removeContributor”のif-conditionals)のために行使されないパス条件がいくつかありましたが、elseブランチが存在しないため、特に問題ではないと考えています。
  4. Pausableの標準的なスマートコントラクトの機能は、InkPublicPresale.solで効果的に再実装されました。これらの機能に関する問題はないようですが、Zeppelinの標準実装を使用することをお勧めします。

Ink Protocolのスマートコントラクト 監査の所見

インクプロトコルのスマートコントラクトは、P2Pトランザクションを容易にする状態遷移システムを効果的に実装しています。監査の焦点は、スマートコントラクトが状態遷移システムの意図されたセマンティックスを確実に順守しているかということでした。我々はこの点に関して何の問題も発見しませんでした。

興味深いことに、このプロトコルは、他の市場がインクを利用できるように設計されており、ユーザーの評判は市場全体で集計することができます。新しいマーケットプレイスでは、購入者と販売者の間の紛争を解決する取引メディエータなどのインクインターフェイスとその関連要素を実装することにより、インクプロトコルを利用できます。したがって、プロトコルを使用したいマーケットプレイスの成功は、潜在的にバグのある、または悪意のあるマーケットプレイスのユーザーの安全性と同様に、本質的にこれらの要素の実装に依存しています。したがって、Inkプロトコル スマートコントラクト自体が欠陥のあるマーケットプレイス スマートコントラクトの損害金を制限することができれば、市場のエンドユーザーに自信を与え、さらに、積極的なプロトコルの採用につながります。

以下は、我々の監査をListiaと議論した後に採択された変更です。インクプロトコルでトランザクションを実行する場合、特定の条件では外部メディエータのスマートコントラクトを呼び出す必要があります。このスマートコントラクトにより、買い手と売り手の間の紛争が解決され、仲介作業のための取引手数料を追加で請求する可能性があります。 1つの懸念は、これらの外部スマートコントラクトへの誤った呼び出しが、ある意味では、状態遷移システムを「ロックアップ」し、トランザクションが終了するのを永遠に止めてしまうかもしれないことでした。

しかし、プロトコルはメディエイターがどれだけの期間紛争を解決することを許されているか(取引手数料をロックすることを含む)などの確かな状態について期限を遵守させるため、仲介者の間違いが無期限に資金をロックすることはナイト判断されました。しかし、この懸念をさらに緩和するために、多くの外部スマートコントラクトのコールにガス制限が課され、そのような欠陥の場合でもプロトコルを進めることができ、インクプロトコルを実装している不完全なマーケットプレイスの影響を制限します。

結論

Listiaチームは、監査プロセス全体を通じて優れた協力者でした。 Quantstampチームは、Listiaが質の高いトークンセールとプロトコルのスマートコントラクトを書いたと思いました。 Quantstampチームによって提起された問題は、Listiaによって迅速に解決されました。 Quantstampは、スマートコントラクトのセキュリティ基準を強化するために、今後他のチームと協力することを楽しみにしています。

著者 Quantstamp CEO Richard Ma
執筆日 2018年2月27日
原文 https://medium.com/quantstamp/audit-results-of-listias-ink-protocol-6bd0e3cdfbcb

--

--