本ブログでは、金融コントラクト用の新言語Marlowe(マーロウ)を紹介し、これがドメイン固有言語(DLS)であることの利点を説明します。Marloweはスマートコントラクト全般ではなく、DSLとして金融コントラクトのみに使用されます。この意味で、SolidityやBitcoin Scriptなど一般的な目的で使用されるブロックチェーン言語とは一線を画しています。
Marloweは業界規模です。Marloweコントラクトは屈指の金融スマートコントラクトプロジェクトであるAlgorithmic Contract Types Unified Standards(Actus)システムのサンプルを基に構築されました。現在、これらをはじめとするサンプルはMarlowe Playground(マーロウプレイグラウンド)で確認できます。これはブラウザーベースの環境で、ユーザーはここでインストールや何らの支払いも必要なしに、Marloweコントラクトの作成、編集、シミュレーション、解析を行うことができます。
Marloweはだれが使用するのでしょうか。Marloweは分散型金融(DeFi)用のプラットフォームで、直接的なP2P融資、差金決済取引(CFD)、その他の類似商品をサポートします。金融機関は、例えば顧客用にカスタマイズした商品の開発および展開に使用することができます。
Marloweは、Goguen(ゴーグエン)ロールアウトの一環としてCardanoに実装されます。ユーザーや組織はDeFiコントラクトを自分自身で作成、またはコントラクトリポジトリからダウンロードして実行し、コントラクトの条件に従って暗号資産を移動する機会が得られます。MarloweはまずCardanoブロックチェーン上で実行されますが、Cardanoに縛られるわけではなく、将来的には他のブロックチェーン上でも実行できるようになることが見込まれています。
Cardanoで実行されるスマートコントラクトは、ADAとビットコイン間の取引率など外部のデータ値にOracle経由でアクセスできるようになります。ある意味、Oracleは選択を行う参加者のようなもので、私たちはOracle値を実装の一部としてサポートし、コントラクトが株式市場の「ティッカー」やCoinbaseなどの一般的なデータフィードから直接値にアクセスできるようにすることを予定しています。
Marloweコントラクトはさまざまな方法で活用できます。例えばMarloweプログラムはブロックチェーン上で暗号通貨を取り引きする金融コントラクトの操作を自動化することができます。また、監査目的の場合、実世界でコントラクトが実施されているか、ユーザーの行動のコンプライアンスを記録するために使うこともできます。
Marloweはブロックチェーン上で実行されるDSLの一例にすぎませんが、CardanoプラットフォームでMarloweを設計、構築する経験を活用することで、サプライチェーン管理、保険、会計等をカバーする他のDSLを作成するための原型とすることができます。
Marloweは金融に特化したDSLということは強調しましたが、では、別の種のコントラクトを作成したい場合にはどうしたらいいでしょう。このために、Cardanoにはブロックチェーン上で実行されている汎用言語、Plutusがあります。Plutusコントラクトはあらゆる種類の暗号資産を扱うことができ、Marloweコントラクトの持つ制約がありません。例えば、有効期間に関する制約もなければ、関係者の数も制限されていません。実際に、MarloweコントラクトはすべてPlutusプログラムであるMarloweインタープリターによって実行されます。
DeFiドメイン固有言語としてのMarlowe
一般的な使用を目的としたものでなく、ドメイン固有であるということにはさまざまな利点があります。
コントラクトはブロックチェーンの言語ではなく、金融言語で書かれます。これはすなわち、ある種のエラーは書きようがないということを意味してます。ある種の不正確なコントラクトは完全に除外されます。例えば、すべてのMarloweコントラクトには有効期限があり、これを超えるとそれ以上のアクションは実行されません。そしてその時点でコントラクトに縛られていた資金は参加者に返金されます。これは資金がコントラクトに永久にロックされることはあり得ないことを意味します。
コントラクトを実行せずに、あらゆる環境でこれがどう行動するか、完全に自動で解析することが可能です。例えば、特定のコントラクトがある種のケースで支払い損ねるか否か、またはいかなる事態においても全額支払うことを保証するか否かを決定することが可能です。
コントラクトの行動はブラウザーでシミュレーションすることができるため、ユーザーは実際に資金を投入して実行する前に、コントラクトが取り得る行動についてさまざまに試みることができます。
ユーザーは自分のDeFiコントラクトをさまざまな方法で作成できます。テキストで書くこともできますが、ビジュアルプログラミングを使用して異なるコンポーネントを表すブロックを組み合わせながらスマートコントラクトを作成することもできます。また、幅広いテンプレートから選び、必要に応じてカスタマイズすることも可能です。
次のステップ - そしてプライズチャレンジ
現在MarloweコントラクトはHaskellまたはJavaScriptを使用して作成することもできれば、Marloweで直接作成することもでき、Marlowe Playgroundで視覚的に作成することもできます。ここではコントラクトのシミュレーションや解析も可能です。今後数か月にわたり、Playgroundでは操作性の修正および改良を続け、Actusプロジェクトからのサンプル実装も続けます。同時に、CardanoへのMarlowe実装を仕上げ、Marloweコントラクトをブロックチェーンそのもので実行できるようにします。準備が整い次第、こうした成果を皆さんと共有するのを心待ちにしています。
それまでの間は、Marlowe Playgroundをチェックしたり、今月行われているMarloweベースの2つのチャレンジのいずれかにご参加ください。国連のグローバル開発目標に取り組むための$10,000相当の暗号通貨による資金、そして、Wyoming Hackathonの賞金$5,000のActusイベントが実施されています。
最新の記事
Input | Output chief scientist receives prestigious Lovelace computing award 筆者: Fergie Miller
3 December 2024
Delivering change in Ethiopia: lessons and reflections 筆者: Staff Writer
28 November 2024
Applying formal methods at Input | Output: real-world examples 筆者: James Chapman
26 November 2024