『進化するカルダノ・ベーシック』[#12]進化を遂げ無限の可能性を広げるカルダノ開発環境「(その3)Marloweの魅力とその将来性」
シリーズ連載『進化するカルダノ・ベーシック』は、カルダノについて初心者や、既に知っているが日々進化し続けるカルダノの現在進行形について知りたい方向けに、様々な視点と角度から、カルダノの基礎知識とその未来について、最新アップデート情報を交えてお伝えする企画(不定期)です。
前回は、第12回目の記事としてカルダノの独自な進化を支える「[#12]進化を遂げますます無限の可能性を広げるカルダノ開発環境「(その1)カルダノ・ブロックチェーンにおける開発環境の特徴とその能力」、「(その2)「カルダノのコア開発環境Plutusとは?」についてお届けしました。」
今回の第12回目はその3として、プログラミングなしで安全で堅牢なスマートコントラクトを作成するためのカルダノ開発環境であるMarloweの魅力とその将来性ついてお届けします。
Marloweとは何か?
カルダノの開発会社IOGは2023年7月初旬に、プログラミングのスキルがなくてもカルダノ(Cardano)ブロックチェーン上でスマートコントラクトや分散型アプリケーションを開発できるオープンソースのツールセットであるMarloweをリリースしました。Marloweの魅力は、その特徴と利点を知れば知るほど、将来のカルダノにとって非常に重要な要素の基盤となるだろうことが理解できるものです。
Marloweは、カルダノブロックチェーン上のスマートコントラクトのためのドメイン固有言語(DSL)です。これは、特に金融取引に関連するスマートコントラクトを作成および実行するための高レベルでユーザーフレンドリーなプラットフォームを目指しています。
Marloweはカルダノのネイティブスマートコントラクト言語であるPlutusの上に構築されており、広範なプログラミング経験を持たない人々が安全で堅牢なスマートコントラクトを作成するのを容易にすることを目的としています。
Marloweがもたらす利点
Marloweは、開発者とビルダーがDApp(分散型アプリ)とプラットフォーム内でカルダノのスマートコントラクトを直感的に作成、テスト、デプロイ、統合することを可能にします。さらに、スマートコントラクトのデプロイと実行のためのローコードツールを可能にするサードパーティプロバイダーとのパートナーシップにより、金融取引以外のスマートコントラクトの作成を可能にするなど、豊かな表現力を実現できる開発環境として、カルダノとブロックチェーンエコシステム全体に多くの価値をもたらします。具体的には下記のような利点をもたらします。
- 複雑性の削減: Marloweのドメイン固有の性質は、スマートコントラクト開発にしばしば関連する複雑性を単純化します。
- セキュリティの強化: スマートコントラクトを形式的に検証する能力と、Marlowe内の制限された操作セットは、脆弱性のリスクを減らします。
- 相互運用性: Marloweスマートコントラクトはカルダノブロックチェーン上の他のスマートコントラクトとシームレスに相互作用でき、高い柔軟性を提供します。
- 金融の民主化: 安全で信頼性のある金融スマートコントラクトを作成するのが容易になることで、Marloweは金融システムをより広い対象者に開放します。
- コミュニティとエコシステムのサポート: カルダノエコシステムの一部であるため、Marloweは大規模で活発なコミュニティ、および継続的な研究と開発の恩恵を受けます。
- 規制遵守: Marloweの構造化された性質は、スマートコントラクトが法的および規制要件に準拠していることを確認するのが容易になります。これは、特に金融部門で特に重要です。
Marloweの利点とその特徴を理解することは、コミュニティに貴重な洞察を提供する可能性があります。それは金融スマートコントラクトをよりアクセス可能で安全にするための重要なステップを代表しています。
それではMarloweの特徴について詳しく見ていきましょう。
Marloweの8つの特徴
Marloweはその可能性は広範囲にわたり、主に下記のような特徴を備えています。
1.ユーザーフレンドリー:プログラミングなしで開発可能なユーザーフレンドリーなインターフェースを提供
MarloweにはMarlowe PlaygroundというウェブベースのIDE(統合開発環境)が付属しており、ユーザーはコードを書かずにスマートコントラクトを作成、シミュレート、分析、テストできます。
ビジュアルプログラミングインターフェースを好む人々のためにBlocklyというモードも提供しています。Blocklyについては後述します。
もう少しわかりやすく例えを示しながら説明すると、Marlowe Playgroundはインターネット上でアクセスできる文字通り「遊び場」のようなものですが、この遊び場で作るのはスマートコントラクトです。この環境は特にユーザーフレンドリーに設計されており、下記のような方法でプログラミングの知識がない人でも簡単に使えます。
- コードを書かずにスマートコントラクトを作成: Marlowe Playgroundは、まるで「積み木」や「レゴ」のように、既に用意されたパーツ(ブロックやテンプレート)を組み合わせてスマートコントラクトを作ることができます。これは、ドラッグアンドドロップの簡単な操作で行えます。
- シミュレート: 作成したスマートコントラクトを「試運転」することができます。これにより、実際にブロックチェーンにデプロイ(公開)する前に、契約が期待通りに動作するか確認できます。
- 分析: Marlowe Playgroundには、作成したスマートコントラクトが安全かどうか、何か問題がないかをチェックする機能もあります。これは、まるで自動車の安全性チェックのようなものです。
このように、Marlowe Playgroundは、スマートコントラクトを作成する全過程を簡単かつ安全に行える「一緒に遊べる安全な遊び場」のようなものです。
補足説明
ウェブベースのIDE(統合開発環境)とは?
ウェブベースのIDE(統合開発環境)とは、インターネットブラウザを通じてアクセスできるプログラミングの作業環境です。従来のデスクトップアプリケーションとして動作するIDEとは異なり、ウェブベースのIDEはインターネット接続があれば、どのデバイスからでも使用することができます。
例えば、ウェブベースのIDEを使うと、オフィス、自宅、カフェなど、インターネットが使える場所ならどこでもプログラミングができます。それはまるで、オンラインでアクセスできる「仮想の作業机」のようなものです。この「仮想の作業机」には、コードを書いたり、テストしたり、プロジェクトを管理したりするための各種ツールが用意されています。
ウェブベースのIDE(統合開発環境)の主な特長を下記にまとめます。
- アクセシビリティ: どのデバイスからでもアクセスできるため、場所に縛られずに作業ができます。
- コラボレーション: オンラインで複数人が同時に作業できる機能が多くのウェブベースIDEに備わっています。
- 自動保存とバージョン管理: 多くのウェブベースのIDEは、作業内容を自動的に保存し、以前のバージョンに簡単に戻れるようにしています。
- 拡張性: 必要な機能を追加するためのプラグインや拡張機能が豊富に用意されています。
- 環境設定の簡易性: サーバーやライブラリ、依存関係などの環境設定がプリセットとして用意されている場合が多いです。
このように、ウェブベースのIDEはその便利さと柔軟性から、多くの開発者にとって有用なツールとなっています。
Blocklyとは?
Blocklyは、Googleが開発したビジュアルプログラミング言語の一つです。この言語は、テキストベースのコードを書く代わりに、色々な形と色をした「ブロック」をドラッグアンドドロップしてプログラムを作成します。各ブロックは特定のプログラミング命令や機能に対応しており、これらを組み合わせることで、複雑なプログラムも作成できます。
Blocklyを使うことは、パズルを解くようなものです。各パズルピース(ブロック)は一つ一つの命令や動作を表しています。これらのパズルピースを正しい順番と形で組み合わせることで、全体の「絵」(プログラム)が完成します。
例えば、繰り返し処理(ループ)を作りたい場合、繰り返しを表すブロックを選び、その中に他のブロック(例:数字を加算する、テキストを表示するなど)を挿入します。これで、繰り返し処理が含まれたプログラムが完成します。
Blocklyの特徴をまとめると次のようなものです。
- ユーザーフレンドリー: ドラッグアンドドロップのインターフェースは直感的で、プログラミング初心者や子供でも簡単に使えます。
- 教育用途: Blocklyは教育の場でもよく使用され、プログラミングの基本概念を視覚的に理解するのに役立ちます。
- 多言語対応: 作成したBlocklyのプログラムは、JavaScript、Python、Luaなどのテキストベースのプログラミング言語に変換することができます。
- 拡張性: 必要に応じて独自のブロックを作成し、機能を追加することができます。
MarloweがBlocklyを使用しているのは、このようなビジュアルプログラミングの利点を活かし、より多くの人々がスマートコントラクトを簡単に作成できるようにするためです。
2.安全性:高度な安全性を考慮して設計されているDSLとは?
Marloweはユーザーフレンドリーに使用できるだけでなく非常に高レベルな安全性を考慮して設計されています。ユーザーを事前に定義された一連の操作に制限するための金融契約専用に設計されたDSLであり、金融的損失を招く可能性のあるコーディングエラーのリスクを減らすことで、安全かつ理解しやすいスマートコントラクトを作成するのが容易です。
Marloweが「安全性を考慮して設計されている」というのは、このプラットフォームがユーザーが犯しやすいエラーや危険な操作を最小限に抑えるように作られているということを意味します。
Marloweは具体的には下記にような方法で安全性を提供しています。
- 事前に定義された一連の操作(DSL): Marloweは金融スマートコントラクトに特化した言語(DSL: ドメイン固有言語)でもあり、使用できる「操作」があらかじめ決められています。これは、まるで子供が使う塗り絵のようなもので、線の中に色を塗るルールがあります。このルールに従う限り、はみ出してしまうリスクは低くなります。
- 金融的損失を招く可能性のあるコーディングエラーのリスクを減らす: 通常のプログラミング言語では、少しのミスも大きな問題を引き起こす可能性があります。しかし、Marloweはそのようなリスクを減らすように設計されています。これは、運転初心者が自動車に乗る際に、速度制限や自動ブレーキなどの安全機能がついていると考えるとわかりやすいでしょう。
- 制限された操作範囲: Marloweでは、許された操作しか行えないため、誤って危険なコードを書いてしまう可能性が低くなります。これは、子供が遊ぶ遊び場で高いところに登ることができないように、安全な範囲が設定されていると考えると理解しやすいです。
このように、Marloweはユーザーが危険な操作をするリスクを最小限に抑えるように設計されています。そのため、プログラミングの経験が少ない人でも、安心してスマートコントラクトを作成できるのです。
補足説明
ドメイン固有言語(DSL:Domain-Specific Language)とは?
ドメイン固有言語(DSL:Domain-Specific Language)とは、特定のタスクや問題領域(ドメイン)に特化したプログラミング言語のことを指します。一般的なプログラミング言語(例:Python、Java)が多くの用途に適用可能なのに対し、DSLはある特定の目的や業界に特化して設計されています。
例:
- SQL(Structured Query Language)は、データベースの操作に特化したDSLです。
- HTML(HyperText Markup Language)は、ウェブページの構造を定義するためのDSLです。
- Marloweは、Cardanoブロックチェーン上で金融契約を作成するためのDSLです。
DSLを使うと、その特定の領域で必要な作業が簡単かつ効率的に行えます。例えば、レストランで注文をするときに専用のメニューがあるように、DSLはその「メニュー」です。このメニュー(DSL)を使うことで、特定の料理(タスクや問題)を簡単に注文(プログラム)できます。
利点:
- 効率性: 特定のタスクに特化しているため、その領域での作業が効率的に行えます。
- 簡易性: 専門的な用語や概念が簡単に表現できるため、プログラムが読みやすく、理解しやすい。
- 安全性: 限定された操作しか許されていないため、エラーやバグのリスクが低くなります。
このように、DSLは特定の目的に合わせて最適化されているため、その領域でのプログラミングが格段に容易になります。
3.形式的検証:Marloweが提供する形式的検証とその重要性
Marloweのスマートコントラクトは形式的に検証することができ、その正確性は数学的に証明できます。これは、エラーが非常に高価になる可能性がある金融スマートコントラクトにとってとても重要です。
「形式的に検証可能(Formal Verification)」とは、数学的な手法を用いてプログラムやシステムが特定の要件や仕様を満たしているかを証明するプロセスを指します。この手法は、特に金融や医療、航空など、エラーが重大な結果を招く可能性がある領域でよく用いられる手法で、設計された通りに確実に動作することが証明されるという意味を持ちます。具体的には、以下のような点が確認されます。
- 契約が正確に動作する: スマートコントラクトが設計通りに機能し、予期せぬエラーやバグが発生しないことが確認されます。
- セキュリティ: スマートコントラクトが安全であり、外部からの攻撃や不正な操作に対して堅牢であることが証明されます。
- コンプライアンス: スマートコントラクトが法的または規制上の要件を満たしているかも確認されます。
- ロジックの整合性: スマートコントラクト内のすべての条件やルールが矛盾しないように設計されているかが確認されます。
このような形式的検証によって、Marloweコントラクトは高度な信頼性と安全性を確保しています。特に金融取引においては、このような厳格な検証が非常に重要です。それにより、ユーザーは安心して金融スマートコントラクトをカルダノブロックチェーン上で実行することができます。
4.表現力:EUTXOの表現力をもたらすPlutusスマートコントラクトとの相互運用性
Plutusの上に構築されているため、Marloweのスマートコントラクトは他のPlutusスマートコントラクトと相互作用することができ、高度な柔軟性と相互運用性を提供します。
この意味は、MarloweがカルダノのEUTXO(Extended Unspent Transaction Output)会計モデルを活用することで得られる高い表現力を持っていることであり、これによってスマートコントラクトの設計と実行、拡張性において多くの利点をもたらします。
補足説明
EUTXO会計モデルとは?
EUTXOモデルは、カルダノ・ブロックチェーン特有の会計モデルであり、トランザクションの状態とロジックをより効率的に管理します。これにより、スマートコントラクトはより安全で、効率的で、柔軟な設計が可能になります。
高い表現力とは?
- 柔軟性: Marloweは、EUTXOモデルを活用することで、多様なビジネスロジックや条件を簡単に組み込むことができます。これにより、複雑な金融商品や契約も効率的に表現できます。
- 効率性: EUTXOモデルは計算効率が高く、これを活用したMarloweコントラクトは、高速で安全なトランザクションを保証します。
- 安全性: EUTXOモデルは、トランザクションの状態を厳密に管理するため、不正な操作やエラーからシステムを守ります。Marloweはこの安全性を継承し、信頼性の高いスマートコントラクトを作成できます。
- 拡張性: Marloweは、EUTXOのような高度な会計モデルに対応しているため、将来的に新しい機能や改善が加わった場合でも、容易に対応できます。
- 透明性: EUTXOモデルは透明性が高く、それによって作成されたスマートコントラクトもその透明性を継承します。これは、契約の参加者が各トランザクションの詳細を明確に理解できるという点で非常に有用です。
以上のように、MarloweはカルダノのEUTXO会計モデルをフルに活用することで、高い表現力と多様な機能を実現しています。これにより、Marloweは金融業界だけでなく、多くの産業で高度なスマートコントラクトの需要に応えられる強力なツールとなっています。
5.テンプレート:「金融取引のレシピ」を提供するテンプレート
Marloweは、エスクロー、スワップなどの一般的な金融操作のための事前定義された契約を提供し、そのようなスマートコントラクトを簡単にデプロイすることを容易にします。
Marloweが「エスクロー、オークション、スワップなど、一般的な金融取引のための事前定義されたテンプレートを提供している」というのは、これらのような特定の金融取引を簡単にセットアップできるように、あらかじめ設計された「型」または「ひな形」が用意されているという意味です。
例えば、あなたが料理をするときにレシピがあると便利ですよね。レシピには材料と手順が書かれていて、それに従うだけで目的の料理が作れます。Marloweの事前定義されたテンプレートも、このレシピに似ています。
- エスクロー(Escrow): お金や資産を一時的に第三者が預かる取引。この「レシピ」(テンプレート)を使えば、誰でも簡単にエスクロー契約を作成できます。
- オークション(Auction): 商品やサービスを最高入札者に売る取引。オークションのルールや時間制限などがあらかじめ設定されています。
- スワップ(Swap): 二者間で資産や通貨を交換する取引。スワップの条件やレートがテンプレートで定義されている場合があります。
これらのテンプレートを使うことで、特定の金融取引に必要な多くのプログラミング作業が省略され、より短時間で確実な契約を作成できます。また、これらのテンプレートは多くの場合、形式的に検証されているため、安全性も高いです。
簡単に言えば、Marloweのテンプレートは「金融取引のレシピ」のようなもので、それを使うことで誰でも簡単に、そして安全に、特定の金融取引を行うスマートコントラクトを作成できるのです。
6.マルチシグネチャ・コントラクト:高度なセキュリティと透明性
「マルチシグネチャコントラクト(Multi-Signature Contracts)」とは、複数の当事者(通常は2人以上)が一緒に署名しなければ実行できないスマートコントラクトの一種です。つまり、契約の条件が満たされるためには、指定された人数または割合の当事者がそれぞれ「承認」または「署名」をしなければならないという仕組みです。
マルチシグネチャ・コントラクトは、共有の金庫を想像すると理解しやすいかもしれません。この金庫を開けるには、持ち主が複数いて、それぞれが持っている特別な鍵が必要です。一人だけでは金庫を開けられません。全員または指定された数の人が鍵を使って同時に開錠しなければならないのです。
例えば、3人のビジネスパートナーがいて、重要な取引を行う場合、このマルチシグネチャ契約を使用すると、3人全員が合意して「署名」しないと取引が実行されません。これにより、一人のパートナーが単独で不正な操作をするリスクが減少します。主な利点をまとめると下記の通りです。
- セキュリティの強化: 複数の当事者が確認と承認をすることで、不正行為や誤操作のリスクが低くなります。
- 透明性: 全ての当事者が契約の実行に同意しなければならないため、透明性が高まります。
- 柔軟性: どの当事者が署名する必要があるのか、何人必要なのかなど、条件は柔軟に設定できます。
Marloweがマルチシグネチャ・スマートコントラクトをサポートしているということは、このような高度なセキュリティと透明性を要求する金融取引も、Marloweを使用して簡単かつ安全に設定できるということです。
7.コスト効率: コスト効率の良いスマートコントラクトの開発と実行を可能
スマートコントラクトの実行を最適化することで、Marloweはカルダノ・ブロックチェーン上のスマートコントラクトに関連する取引手数料を最小限に抑えることを目指しています。
Marloweがコスト効率が良いとされる主な理由は、以下のようなその設計とカルダノ・ブロックチェーンの特性に起因しています。
- 特化した言語: Marloweは金融スマートコントラクトに特化したドメイン固有言語(DSL)でもあります(それ以外の表現力も備えている)。これにより、不必要なコードや複雑な計算が省かれ、シンプルで効率的なスマートコントラクトが作成できます。
- 事前定義されたテンプレート: Marloweが提供する事前定義されたテンプレート(エスクロー、オークション、スワップなど)を使用すると、開発時間が短縮され、それに伴いコストも削減されます。
- 効率的なコンセンサスアルゴリズム: カルダノは、エネルギー効率が高く、取引手数料を低く抑えることができるOuroborosというコンセンサスアルゴリズムを使用しています。
- 最適化されたスマートコントラクト処理: カルダノブロックチェーンは、スマートコントラクトの処理に必要なリソースを最適化しています。これにより、取引手数料が低く抑えられます。
Marloweとカルダノの組み合わせは、まるで燃費の良い車に高速道路が整備されている状況に似ています。Marlowe(燃費の良い車)は効率的に動作し、Cardano(高速道路)はその車がスムーズに走れるように設計されています。その結果、目的地に行くのに必要な「燃料」(取引手数料)が最小限に抑えられるのです。
このように、Marloweはその設計とカルダノ・ブロックチェーンの効率性によって、コスト効率の良いスマートコントラクトの開発と実行を可能にしています。
8.オープンソース:コミュニティの貢献と精査で、より安全で効率的なシステムへ
カルダノ・エコシステムの他のコンポーネントと同様に、Marloweはオープンソースであり、コミュニティの貢献と精査が可能です。
「オープンソース」とは、プログラムのソースコード(設計図)が公開されていて、誰でも自由に閲覧、使用、修正、再配布することができるという意味です。Marloweもこのオープンソースの原則に基づいています。
オープンソースを理解するためには、料理のレシピに似ていると考えると良いでしょう。通常のレシピは、誰でも見ることができ、自分の家で料理を作ることができます。さらに、レシピを少しアレンジして、新しい料理を作ることもできます。このように、オープンソースは「公開されたレシピ」のようなもので、下記のように誰でも自由に使ったり、改良したりできます。
- 改善とアップデート: 誰でもMarloweのコードを見て、改善点や新しい機能を提案することができます。
- セキュリティ: 多くの人がコードをチェックするため、セキュリティの問題やバグ(エラー)が早く発見され、修正されます。
- 透明性: コードが公開されているため、そのプログラムがどのように動作するのかを確認することができます。これにより、信頼性が高まります。
- 共有と協力: 世界中の人々が同じプラットフォームを使って協力し、より良いシステムを作ることができます。
このように、Marloweがオープンソースであるということは、多くの人々が参加して改善や検証が行われ、その結果としてより安全で効率的なシステムが作られる可能性が高いということを意味します。
Marloweの使用例
Marloweは特に金融契約に焦点を当てて設計されていますが、その応用範囲は非常に広いと言えます。以下は、Marloweが適用できるいくつかの利用事例です。
金融スマートコントラクト
- エスクロー契約: 資金を第三者に一時的に預ける契約。条件が満たされた場合にのみ資金がリリースされます。
- スワップ契約: 二つの資産や金利、通貨などを交換する契約。
- ゼロクーポンボンド: 一定期間後に元本と利息を一括で返済する債券。
- オプション契約: 将来、特定の資産を特定の価格で購入または販売する権利を取得する契約。
その他のスマートコントラクト
- 供給契約: 商品やサービスの供給条件、価格、納期などを定めた契約。
- レンタル・リース契約: 物件や機器の使用権を一定期間貸し出す契約。
- ロイヤルティプログラム: 商品やサービスの購入に応じてポイントを付与し、それを特定の報酬と交換できるプログラム。
ソーシャル・コミュニティ
- 投票システム: コミュニティメンバーが特定の提案に投票するシステム。
- クラウドファンディング: プロジェクトや商品の開発資金を多くの人から募るシステム。
エンタープライズソリューション
- 自動支払いシステム: 条件に応じて自動的に支払いを行うシステム。
- 在庫管理: 在庫レベルが一定以下になったら自動で発注するシステム。
これらは一例であり、Marloweの柔軟性と拡張性によって、多くのカスタマイズと応用が可能です。特に、Marlowe Playgroundを使用することで、非プログラマーでも簡単にこれらのスマートコントラクトを作成できます。
Marloweツールセット
Marloweはカルダノ・ブロックチェーン上でスマートコントラクトを構築、実行するための特化した開発環境を提供しています。メインネットデプロイされたMarloweの主な機能は以下のものがあります。
- Marlowe言語(前述)
- Marlowe Playground
- Marlowe Runtime
- Marlowe Runtime API
- Marlowe CLI
- Marloweスターターキットリポジトリ(チュートリアル付き)
- Demeter Run統合
- 一新されたMarloweサイトに拡張および統合されたドキュメントサイト
では実際にどのように使用するのでしょうか?
- 開発者: Marlowe PlaygroundとRuntimeを使用してスマートコントラクトを作成、テスト、デプロイします。
- 非開発者: Blocklyビジュアルエディタや既製のテンプレートを使用してスマートコントラクトを作成します。
今後の展望としてローコードツールの導入、新しいユースケースとパートナーシップが計画されています。
Marloweは、カルダノ・エコシステムとブロックチェーン全体に多くの価値をもたらす強力なツールです。特に、金融スマートコントラクトに特化しているため、その領域での利用が期待されています。しかし、その設計は多様なタイプのコントラクト作成にも柔軟に対応できるようになっています。
以下では主なツールセットの個々の内容について見ていきます。
Marlowe Playground
Marlowe Playgroundは、Cardanoブロックチェーン上で金融契約を作成するためのオンライン環境です。このプラットフォームは、MarloweというHaskellに組み込まれたDSL(ドメイン固有言語)を使用しています。Marlowe Playgroundでは、JavaScript、Haskell、Blocklyなど、さまざまなプログラミング言語で直接作業が可能です。
コントラクトとテンプレート
Marlowe Playgroundでは、独自のテンプレートを作成して再利用することができます。これにより、同じ基本構造を持つ複数の契約を効率よく作成できます。Extended Marloweと呼ばれる拡張版を使用することで、より柔軟な契約作成が可能です。
パラメータとメタデータ
- SlotParam: タイムアウトを指定する際に使用します。
- ConstantParam: 値(Value)を指定する際に使用します。
これらのパラメータは、契約のシミュレーションを開始する前や、Marlowe Runでコントラクトをデプロイする前に、ユーザーによって設定されます。
メタデータのカスタマイズ
Marlowe Playgroundでは、各契約に関連するメタデータをカスタマイズすることができます。これには、契約のタイプ、名前、短い説明、詳しい説明などが含まれます。
シミュレーションとデプロイ
作成した契約は、シミュレーションを通じてテストすることができます。また、Marlowe Runを使用して実際のCardanoブロックチェーン上にデプロイすることも可能です。
その他の機能
- パラメータにはヒントを設定でき、これがユーザーインターフェース上で表示されます。
- メタデータタブで、契約で使用される各種パラメータやロール、選択肢に関する詳細を設定できます
Marlowe Playgroundは、金融契約の作成、テスト、デプロイを効率よく行える強力なツールです。特に、テンプレートとメタデータの機能により、同じ契約を異なる状況や条件で簡単に再利用できます。
Marlowe Runtime:カルダノ・ブロックチェーンでMarloweコントラクトを管理するためのバックエンドサービス
Marlowe Runtimeは、カルダノ・ブロックチェーン上で動作するMarloweスマートコントラクトを管理するための「裏方」のサービスです。簡単に言えば、これはスマートコントラクトが正しく動作するための「エンジン」のようなものです。
主な機能:
- オンチェーンコントラクトの管理: Marlowe Runtimeは、ブロックチェーン上にデプロイされたMarloweスマートコントラクトを検出し、照会(情報を取得)することができます。
- トランザクションの作成: Marlowe Runtimeを通じて、新しいスマートコントラクトトランザクションを作成できます。これにより、スマートコントラクトが期待通りに動作するかどうかを制御します。
- API提供: 高レベルのAPI(Application Programming Interface)が提供されており、開発者はこれを使用してMarloweスマートコントラクトと対話できます。
- マッピング機能: Marloweの概念モデルとCardanoの台帳(レジャー)モデルとの間で情報を双方向に変換(マッピング)します。これにより、MarloweコントラクトがCardanoブロックチェーン上でスムーズに動作します。
Marlowe Runtimeは以下の点で重要です。
- 効率性: Marlowe Runtimeがあることで、開発者は「配管」(基本的なバックエンドの設定や管理)に時間をかけずに、スマートコントラクトの開発に集中できます。
- 柔軟性: さまざまな展開オプションがあり、Docker経由、クラウドホスティング、手動展開など、プロジェクトのニーズに応じて選べます。
- ユーザーフレンドリー: 高レベルのAPIが提供されるため、開発者は簡単にMarloweと対話でき、エンタープライズやWeb3 DAppソリューションを構築できます。
Marlowe Runtimeは、スマートコントラクトを簡単かつ効率的に管理するための重要なコンポーネントです。これにより、開発者はより短い時間で、より安全なスマートコントラクトをCardanoブロックチェーン上にデプロイできます。
多言語対応: JavaScript、TypeScript、Haskellなどの一般的なプログラミング言語に対応しています。
多言語対応があるということは、JavaScript、TypeScript、Haskellなどの一般的なプログラミング言語でMarloweスマートコントラクトを作成、統合、デプロイできるということです。この特性が持つ主なメリットは以下の通りです:
アクセシビリティ(手軽さ)
- 多くの開発者にとって親しみやすい: 既にこれらの言語を使いこなしている開発者にとって、新しい言語を学ぶ必要がなく、すぐにスマートコントラクトの開発を始められます。
柔軟性
- 多様なプロジェクトに対応: それぞれの言語が得意とする領域が異なるため、多言語対応によって様々な種類のプロジェクトやアプリケーションに対応できます。
生産性
- 既存のコードやライブラリを再利用可能: これらの一般的なプログラミング言語で既に豊富なコードライブラリやフレームワークが存在するため、それらを活用して開発速度を上げることができます。
コミュニティとサポート
- 広いサポートネットワーク: これらの言語は広く使われているため、疑問や問題が生じた際には、既存のコミュニティからサポートを受けやすいです。
タレントプール
- 人材採用の容易さ: 一般的なプログラミング言語に対応しているため、特定のスキルセットを持つ人材を探しやすくなります。
総じて、多言語対応はMarloweをよりアクセシブルで柔軟なプラットフォームにしており、多くの開発者が容易に参加し、効率よくスマートコントラクトを開発できる環境を提供しています。
API:Marloweは高レベルのAPI(Application Programming Interface)が提供されており、開発者はこれを使用してMarloweスマートコントラクトと対話できます。
高レベルのAPI(Application Programming Interface)とは、プログラミングにおいて特定の機能やサービスを簡単に利用できるように設計されたインターフェースのことです。具体的には、複雑なプロセスや計算を抽象化して、開発者が簡単なコマンドや関数呼び出しでその機能を利用できるようにします。
Marloweの高レベルAPIが提供する主な利点は以下の通りです:
シンプリシティ(簡単さ)
- 短い学習曲線: 高レベルAPIは通常、非常に直感的で使いやすいため、開発者はMarloweの深い理解を必要とせずにすぐにスマートコントラクトと対話できます。
効率性
- 開発速度の向上: 高レベルAPIを使用することで、開発者は低レベルの詳細に気を取られることなく、目的に集中できます。これにより、開発プロセスが高速化します。
安全性
- エラーの削減: 高レベルAPIは、内部的には低レベルの操作を正確に行っているため、開発者が誤って不正確なコードを書くリスクが減ります。
柔軟性
- 多機能: 高レベルAPIは通常、多くの機能やオプションを提供しているため、開発者は自分のニーズに合わせてAPIを使い分けることができます。
再利用性
- コードの再利用: 高レベルAPIを使用することで、一度書いたコードを他のプロジェクトでも簡単に再利用できます。
総じて、Marloweの高レベルAPIは、開発者が効率よく、安全に、そして柔軟にスマートコントラクトと対話できるように設計されています。これにより、より多くの開発者がMarloweプラットフォームを容易に利用でき、ブロックチェーン技術をより広く普及させる一助となります。
補足説明
一般的にAPI(Application Programming Interface)とは?
API(Application Programming Interface)は、ソフトウェアやアプリケーションが他のソフトウェアやサービスと「会話」するための仕組みです。簡単に言えば、APIはメニューのようなもので、特定の操作やデータの取得、送信ができる一連の「指示」を提供します。
例を使って説明すると:
- レストランのメニュー: APIはレストランのメニューに似ています。メニューにはいろいろな料理があり、それを注文すると厨房(ソフトウェアの内部)で料理(データや機能)が作られます。客(他のソフトウェアやユーザー)はメニュー(API)を見て、何を注文するか決めます。
- 遠隔操作のテレビ: テレビのリモコンもAPIの一例です。リモコンのボタン(APIの関数やメソッド)を押すことで、テレビ(ソフトウェア)が特定の操作(チャンネル変更、音量調整など)を行います。
APIのメリット:
- 効率: 一度作成したAPIは何度も再利用できます。
- 安全性: APIを使うことで、ソフトウェアの内部構造を直接触らずに済むため、セキュリティが向上します。
- 柔軟性: 異なるソフトウェアやプラットフォーム間で簡単にデータをやり取りできます。
APIは、スマートフォンのアプリ、ウェブサービス、IoTデバイスなど、現代のテクノロジーにおいて非常に重要な役割を果たしています。
さらにAPI(Application Programming Interface)は、ソフトウェアアプリケーションやサービスが他のソフトウェアと通信するための規則やプロトコルの集合です。簡単に言えば、APIはソフトウェアコンポーネント間の「通信橋」のようなものです。
APIの主な特徴を以下にまとめます。
- 抽象化: APIは複雑な内部処理を隠蔽し、必要な機能だけを提供します。これにより、開発者は内部の詳細を気にせずにアプリケーションを開発できます。
- 再利用性: 一度開発されたAPIは、多くの異なるアプリケーションで再利用できます。これにより、開発時間とコストが削減されます。
- セキュリティ: APIを通じてのみアクセスできるようにすることで、システムの内部構造が外部から隠蔽され、セキュリティが向上します。
- 拡張性: APIは独立しているため、一方のシステムを変更しても、他方に影響を与えにくいです。これにより、システムは容易に拡張や改良ができます。
- 言語・プラットフォーム独立: 多くのAPIは言語非依存であり、異なるプログラミング言語やプラットフォームで利用できます。
APIの一般的な種類は下記のものがあります。
- Web API: インターネットを介してアクセスするAPI。RESTful APIやGraphQLなどがあります。
- ライブラリ & フレームワークのAPI: 特定のプログラミング言語やフレームワークで使用されるAPI。
- オペレーティングシステムAPI: OSレベルで提供されるAPI。ファイル操作、ウィンドウ管理など。
- データベースAPI: データベースとの通信を簡易化するAPI。SQL文の送信やデータの取得など。
- ハードウェアAPI: 特定のハードウェアと通信するためのAPI。プリンター、カメラ、センサーなど。
APIは現代のソフトウェア開発において、非常に重要な役割を果たしています。それは、異なるソフトウェアアプリケーションやサービスが効率的に連携し、より複雑なタスクを実現するための基盤となっています。
まとめ:Marloweの進化と未来
皆さんいかがだったでしょうか?まだリリースされたばかりですが、Marloweにはすでに多くの利点と、将来カルダノ・エコシステムを拡張するためのより良い特徴がたくさん詰まっており、今後のカルダノコミュニティにとってなくてはならない基盤となるでしょう。特にプログラミングを必要としない開発者を引き入れることが可能になるという意味は、カルダノの成長にとって欠かせないエンジンとなることでしょう。
カルダノの未来にとって次のような影響をもたらすと考えられます。
- 金融の民主化: Marloweの簡易性とアクセシビリティは、金融サービスをより多くの人々に開放します。これにより、未銀行層や低所得層も含めて、多くの人々が金融サービスを利用できるようになります。
- イノベーションの促進: Marloweの柔軟性と拡張性は、新しいビジネスモデルやサービスの開発を促進します。特に、分散型金融(DeFi)においては、より安全で効率的な金融商品が生まれる可能性があります。
- 透明性と信頼性の向上: Marloweがオープンソースであることと、Cardanoブロックチェーンのセキュリティと透明性は、ユーザーに高い信頼性を提供します。
- エンタープライズの採用: Marloweの高いセキュリティと低い取引コストは、大企業も含めた多くの組織がブロックチェーン技術を採用する障壁を下げます。
- 持続可能な開発: カルダノのエコフレンドリーな設計と組み合わせることで、Marloweは持続可能な金融エコシステムの構築に貢献できます。
総じて、Marloweはブロックチェーンと分散型金融の世界に多大な影響を与える力を持っています。それは、金融のアクセシビリティを高め、安全性を確保し、新しいビジネスモデルやイノベーションを促進する手段となるでしょう。
参考記事
これまでの記事「シリーズ連載:進化するカルダノ・ベーシック」はこちらをご覧ください。
もしこの記事が気に入っていただけましたら、SIPO、SIPO2、SIPO3への委任をどうぞよろしくお願いいたします!10ADA以上の少量からでもステーキングが可能です。ステーキングについて知りたい方は、下記の記事をご参考ください。
ステーキング(委任)とは?
カルダノ分散型台帳システムによるステーキングの魅力とその方法:2021版
Q&A:カルダノ、ステーキングに関する基本的な説明集
ダイダロスマニュアル
ヨロイウォレット Chromeブラウザ機能拡張版マニュアル
ニュース動向 in エポック437
エポックな日々 [シリーズ連載『進化するカルダノ・ベーシック』 [#12]進化を遂げますます無限の可能性を広げるカルダノ開発環境 「(その2)カルダノのコア開発環境[Plutus]とは?」
シリーズ連載『進化するカルダノ・ベーシック』は、カルダノについて初心者や、既に知っているが日々進化し続けるカルダノの現在進行形について知りたい方向けに、様々な視点と角度から、カルダノの基礎知識とその未来について、最新アップデート情報を交えてお伝えする企画(不定期)です。
前回は、第11回目の記事として「[#11]革新とコンプライアンスまで幅広い利点を提供するトークンロック機能」についてお届けしました。
今回の第12回目はカルダノの独自な進化を支える「カルダノの進化する開発環境」について、いくつかの記事に分けて解説していきたいと思います。まずその第一弾となる「カルダノ・ブロックチェーンにおける開発環境の特徴とその能力」ついてお届けします。
本記事では、カルダノ・ブロックチェーンにおける開発環境の現状と、それが開発者にどのような意義を持つのかを探ります。
Cardano(ADA)DeFiでUSDTが利用可能に:カルダノのステーブルコインのエコシステムが拡大
世界最大のステーブルコインであるUSDTが、Wanchain(WAN)による分散型クロスチェーンブリッジを介してCardano(ADA)のDeFiプラットフォームであるLiqwidで利用可能になりました。
CardanoSummit2023サミット
Fund10の投票結果が発表
Fund10では、1,467件の提案中192件の提案が資金提供され、総額50mの #ADA がプロジェクト間で分配されました。 Fund9からの投票数は12.48%(約409,000票)増加しました。