ブログ > 2018 > December > Marlowe:ブロックチェーンの金融コントラクト

Marlowe:ブロックチェーンの金融コントラクト

2018年 12月 11日 Prof Simon Thompson 5 分で読めます

Marlowe:ブロックチェーンの金融コントラクト

初期のコンピューターではプログラミングに「機械語」を使用していました。機械語はシステム間に互換性がなかったうえ、レベルが低く、表現も限られていました。プログラムは、ごく単純な指示を長く連ねたものであり、書いた本人以外には圧縮が不可能なものでした。今日システムのプログラミングには、C、Java、Haskellなど、機械語よりも高次の言語が使用されています。同じ言語が幅広い種類の機械に対応し、プログラムの構造はその動作を反映します。ブロックチェーンでは、SolidityやSimplicityといった言語がこれにあたります。こうした新しい高次の言語は、あらゆるタイプの問題をすべて解決するという一般的な目的を満たすものの、ここで言うところのソリューションがやはりプログラムである以上、これを使いこなすにはプログラミングのスキルが要求されます。 これとは対照的に、Marloweはドメイン固有言語(DSL)であり、プログラミングのスキルを持った者よりもむしろ、特定の分野、としてのMarloweの場合は金融契約の専門家が使用できるように設計されています。

DSLの利点は、プログラマーではない人々が利用できることだけではありません。

  • ある種の不正プログラムは、可能性を言語そのものから排除することにより、たとえ故意にせよ作成できないように設計されています。これにより、既存のブロックチェーンが抱えてきた想定外の不具合に対する防止策が可能となりました。

  • 必要な支払いが決して滞ることのないような金融契約を作成したいなど、プログラムが希望通りのプロパティになっているかどうか、より簡単に確認することができます。

  • DSLという性質上、該当する言語を使用したプログラム作成をサポートする、特殊用途のツールを構築することができます。Marloweに関しては、実際のシステム上で作動させる前に、契約がどのように作動するかエミュレートし、狙い通りの契約を作成できているか確認することができます。

Marloweは、研究者や、金融セクターにコントラクトソフトウェアを提供しているLexiFiといった企業が過去10年間に普及させてきた複数の金融契約DLSをモデルとしています。Marloweの開発にあたり、これらの言語をブロックチェーンに対応させました。MarloweはCardanoブロックチェーンのSL(Settlement Layer:決済層)に実装されますが、Ethereum/Solidityまたはその他のブロックチェーンプラットフォームにも同様に搭載可能です。この点において、JavaやC++等の現代プログラミング言語同様に、「プラットフォームに捉われない」汎用性を誇ります。オンラインエミュレーターツールMeadowにより、ソフトウェアを何らインストールすることなく、通常のウェブブラウザー上でMarloweコントラクトを実験、開発、操作することができます。

では、Marloweコントラクトはどのような形態をしているのでしょうか。Marloweコントラクトは、支払いを行う、「現実世界」に起こっていることを観察する、特定のコンディションになるまで待つ、などの条件を示すいくつかの構成ブロックを連結して構築しています。以前のアプローチとの違いは、いかに契約の履行を確実にするかという点です。これは単に「契約が確実に遵守されるようにする」というだけでなく、参加者が契約により支払いを済ませているにもかかわらず中途解約してしまうという状況を防ぐ、ということも意味します。このため、コミットメントとタイムアウトという2つのツールを使用しています。コミットメントは参加者に「お金をテーブルに置く」ことを求め、タイムアウトによりこのコミットメントが確実に時間内に実行されるか、救済措置が取られることを保証します。これらのツールを一緒に使用することにより、参加者が一旦締結した契約を継続する意欲を高めることができます。

我々は、2019年半ば、Cardano SLへの実装という形でのMarlowe完全版リリースに向けて邁進しています。本日より、Meadowを使ってMarloweを使ってみることができるようになります。また、オンラインで公開されている論文で詳細を確認することができます。今後6か月にわたり、我々は言語デザインそのものを洗練させるとともに、一般的な金融文書のテンプレートを開発します。また、公式な論理ツールを使用してMarloweコントラクトのプロパティを示すことで、ユーザーには、契約が狙い通りに動作することに対する最高レベルの保証を提供します。