UPLC Linkが公開済みコードと照合してCardanoのコントラクトを検証

Cexplorerとの統合により、コントラクトの閲覧時にソース検証が可能になる一方、オンチェーンの記録が、開発者と監査人が検証を再現するために必要な詳細を保持する。

By SongMarketCap

Updated:

Cardano News - UPLC Linkが公開済みコードと照合してCardanoのコントラクトを検証

UPLC Linkは、Cardanoのユーザーが、デプロイ済みのスマートコントラクトが公開されたソースコードと一致するかどうかを確認できるようにする。オープンソースのプラットフォームがコントラクトを再ビルドし、その暗号学的フィンガープリントを比較する。Cexplorerを通じて、ユーザーは確認中のスクリプトに関連するリポジトリやビルド情報にアクセスできる。

CexplorerがCardanoのスクリプトとそのソースを結び付ける

Cexplorerの“Verify Source”オプションは、コントラクトの確認をUPLC Linkと連携させ、ソースリポジトリ、正確なコードのリビジョン、コンパイラのバージョン、コントラクトのパラメータへのアクセスを提供する。

Cardano FoundationのSenior Blockchain ArchitectであるGiovanni Gargiuloが、9月25日のDevelopers Office Hoursでそのワークフローを実演した。10月7日に公開されたセッションの要約は、その統合とコンパイラ対応拡張の計画を記録した。

このツールは、コードの公開と、オンチェーンで実際に動作しているものの特定との間にある隔たりに対処する。プロジェクトがソースを公開し監査を受けたとしても、ユーザーには、デプロイされたコントラクトがレビュー済みのバージョンに対応していることを確認する手段が依然として必要だ。

ADAやその他のCardano資産を扱うアプリケーションにとって、これは、検査可能なルールを、スワップや貸付、ロックされた資金を制御するスクリプトと結び付ける。ソースの検証がその結び付きを確立し、セキュリティ監査はコードの脆弱性を評価する。

コントラクトを再ビルドして検証可能な一致を得る

Cardanoのスマートコントラクトは、コンパイル済みのUntyped Plutus Core、すなわちUPLCとして実行される。スクリプトハッシュは、どのソースのリビジョンやビルド設定で生成されたかを明かすことなく、コンパイル済みプログラムを識別する。

UPLC Linkは、特定のGitHubのコミットとコンパイラのバージョンから開始する。ソースをビルドし、得られたスクリプトハッシュを計算して、想定されるオンチェーンの識別子と比較する。

このプラットフォームは、セットアップ時に与えられる値に最終形が依存するパラメータ化されたコントラクトにも対応する。開発者は、他のスクリプトへの参照を含め、それらの値をインターフェースから入力し、結果を再計算できる。

一致させるには、正しいソース、コンパイラ、パラメータが必要だ。

公開インターフェースは現在アルファと表示され、Aikenのコントラクトをサポートしている。発表では、Scalus、Plutarch、plu-tsへの対応に向けた作業と、コントラクト特性の自動形式検証のためのBlasterとの連携計画が説明された。

これらの拡張により、プラットフォームのカバレッジは現在のAikenワークフローを超えて広がるだろう。

オンチェーン記録が独立した検証を支援する

CIP-0171は、Cardanoのコントラクトビルドを再現するために必要な情報を記録する共有メタデータ形式を提案している。ソースリポジトリ、コードのリビジョン、コンパイラ、ビルド環境、パラメータを識別するために、取引メタデータラベル1984を使用する。

ソースはリポジトリに残り、ブロックチェーンはビルド手順を保持する。監査人や研究者は、元のデプロイヤーとは独立して記録を公開し、参照されたコードを再ビルドして得られたハッシュを確認することで検証できる。

この仕様は、公式のCIPレジストリでは依然として提案の段階にある。その形式は複数のコンパイラ系に対応しており、どれをサポートするかは各検証ツールが決定する。

UPLC Linkはすでに、署名済みのCardanoトランザクションを通じた登録を提供しており、ネットワーク手数料はADAで支払われる。バックエンドは、公開レジストリを通じて見つけられるよう提出された記録をインデックス化する。プロジェクトは他のサービス向けのAPIも提供し、プラットフォームをローカルで実行するための手順を公開している。

登録されたコントラクトについては、レビュアーがそのアドレスまたはスクリプトハッシュから開始し、記録されたビルドの詳細を取得して、ソースとの結び付きを自分で確認できる。アプリケーションチームは、コードや監査レポートと併せて、その再現可能な記録を提供できる。