DAML-スマートコントラクトの言語

この記事では、スマートコントラクトのオープンソース言語であるDAMLの包括的なビューを提供します。また、DAMLの利点と他の言語との比較についても学びます. 

ブロックチェーンテクノロジーが進化するにつれて、ユーザーが操作および対話するためのシステムを改善する必要があります。すでに、特にエンタープライズブロックチェーンが人気を博し続けているため、多くの改善が行われています。急速に変化するブロックチェーン環境における最新の開発の中には、DAMLがあります。.

インターネットの黎明期以来、データの不変性は多くの開発者を避けてきた特性です。そのため、オンラインエコシステム内の悪意のある人物は、さまざまな犯罪を犯すためにデータを変更する機能を利用しました.

ただし、従来の金融業界で発生するような中央のプレーヤーがいない環境で開発者がトランザクションを実行する機能を実証した場合、ブロックチェーンはより重要であることが証明されました。.

これらの公的台帳に加えて、民間の許可された台帳の大きな市場も離陸しました。法的に認可された中央関係者によって管理されているか、共通の目標を持つ相互に信頼できないアクターのコンソーシアムによって管理されているかにかかわらず、プライベート台帳は、データプライバシーを維持する追加機能を備えたパブリック台帳と同じ将来性と不変性を提供します.

特定の台帳がパブリックかプライベートかに関係なく、ブロックチェーンエコシステム内のピアがプライバシー保証と対話する機能を支えるのは、通常スマートコントラクトと呼ばれるアプリケーションのクラスです。.

この記事では、スマートコントラクトとは何か、およびDAMLのコンテキストにおけるそれらの重要性について後で詳しく説明します。.

今すぐ登録: エンタープライズブロックチェーン基礎コース

DAMLとは?

技術用語では、DAMLはデジタルアセットモデリング言語(DAMLフルフォーム)の略で、セマンティックWebのマークアップ言語です。ただし、専門用語は混乱を招く可能性があります。したがって、より単純なDAMLの意味については、スマートコントラクトのオープンソース言語と考えてください。.

基本的に、DAMLは、開発者がさまざまなブロックチェーン、DLT、さらには標準のデータベースアーキテクチャのマルチパーティ契約を正確にコーディングできるようにするスマートコントラクト言語です。.

Digital Assetが考案したこのアプリケーションのジャンル(スマートコントラクト)に新たな息吹を吹き込み、ピアが信頼できる環境で取引できるようにします。基本的に、これはHaskellからインスピレーションを得て、分散型ビジネスワークフローのスマートコントラクトの作成を容易にするプログラミング言語です。.

特に、この言語を使用すると、開発者は暗号化とブロックチェーンの要点を処理するために費やす時間を削減できます。代わりに、開発者はビジネスプロセス用のプログラミングソリューションの開発に時間を費やしています。.

DAML –スマートコントラクトの言語を簡単に説明 

DAMLのプロパティ

契約書を書くための手段を提供します

プログラマーがスマートコントラクトを作成するために使用する他の言語と同様に、DAMLを使用すると、ピアは合意を作成して尊重することができます。特に、この言語は、契約の形成プロセス、契約の主要な当事者、および契約に対する委任された権利を持つ当事者を説明しています。.

契約の形成プロセスを定義することに加えて、言語は、開発者がビジネスのロジックを処理するだけでよいという点で、契約、権利、当事者、承認、義務などのアイデアのエンコードを処理します。暗号化でのハッシュやコンセンサスアルゴリズムなどに関連する手間のかかる作業はすべて抽象化され、ランタイムによって処理されます.

母国語機能としてのコントラクト要素のこの直接表現は、DAMLアーキテクチャが開発サイクルの早い段階で自動的にシステムコードの問題をチェックできることを意味します。さらに、システムには、ビジネスロジックについて独自に推論する機能があります。.

オープンソースです

2019年4月4日、DAMLの背後にある会社であるDigital Assetは、プログラムのソースコードをすべての開発者が自由に利用できるようになると発表しました。このプロジェクトのオープンソース化により、さまざまな関係者がDAMLを使用して、ベンダーロックインを恐れることなくブロックチェーンテクノロジーを介して契約をモデル化および実行できるようになりました。.

発表によると、開発者やその他の利害関係者は、非常に寛容なApache 2.0ライセンスの下で、DAML言語、ソースコード、ソフトウェア開発キット(SDK)、およびランタイムにアクセスできるようになります。.

プライベート実行環境で使用可能

公的に分散された元帳の欠点の1つは、プラットフォーム上のすべてのノードがスマートコントラクトに存在するデータを表示できることです。そのため、取引の詳細を非公開にする必要があるピアは、パブリックブロックチェーンネットワークを介して取引することは不可能であると感じています.

特に、これはエンタープライズブロックチェーンの完全な採用を妨げている1つの大きな障害です。これが、前述のように、プライベートDLTの人気が急上昇した理由です。.

DAMLとプライベートDLTプラットフォームの組み合わせは、この場合の救済策を提供します。特に、この表現力豊かな言語の背後にあるチームは、プライベート実行環境で完全に機能するという点でDAMLを最適化しました。つまり、契約で運ばれる情報は非公開のままであり、許可された関係者だけがそれにアクセスできます。.

人間と機械で読める

DAMLは、1つ以上の意味で革新的です。特に、システムの設計は、機械と人間が契約に含まれる情報を理解できるようになっています.

この機能の意味は非常に大きいです。 DAMLは非常に人間に優しいので、契約の形成に関与する専門家は詳細を簡単に理解することができます。.

たとえば、弁護士は、契約のDAMLエンコーディングを読んで評価することにより、契約の意味を簡単に理解できます。同時に、DAMLは、開発者がキャッシュフロー、顧客のプロファイル、リスクエクスポージャーなどの契約の重要な側面を計算するための適切な程度の特異性を提供します。.

DAMLはどのように機能しますか?クイック機能DAMLチュートリアル

DAMLは、他のすべてのスマートコントラクト作成言語とほとんど同じように機能します。特に、言語は、言語自体とランタイムがある2つの主要なレベルで機能します.

言語はテクノロジーの主要部分のようなものです。これにより、開発者は契約書の作成とトランザクションの促進に関して必要なすべての作業を行うことができます。.

言語とランタイムの間には非常にクリーンで抽象化されたAPIがあるため、ランタイムはさまざまなブロックチェーン、DLT、およびその他のプラットフォームで実行するように適合させることができます。.

これにより、DAMLのサポートを提供するプラットフォーム間でDAMLアプリケーションを移植できる柔軟性が提供されます。これはJVMに類似しており、JVMをサポートする任意のプラットフォームでJavaアプリケーションを変更せずに実行できます。.

ソフトウェア開発キット(SDK)のインストール後、開発者はいくつかの特定のファイルを実行するだけで、デバイスを操作をサポートできる位置に置くことができます。.

データモデリング

スマートコントラクトを作成するときに実行する必要がある主で最も重要なタスクの1つは、そのコントラクトで使用されるデータのモデリングです。通常、データモデリング機能は複雑であり、契約の複雑さや関係者の数によっては、非常に複雑なデータ構造につながる可能性があります。.

他のスマートコントラクト言語とは異なり、DAMLを使用すると、開発者はデータスキーマをその場で指定し、コントラクトの実行言語に直接埋め込むことができます。これにより、データモデリングのタスクが大幅に簡素化され、データスキーマとアプリケーションロジックの不一致が原因でエラーが発生する可能性が低くなります。.

続きを読む: DAMLチュートリアル:DAML入門

テンプレートのアウトライン構造

DAML開発者は、「テンプレート」と呼ばれる単純で明確に定義された構造を通じて契約を指定します。これには、契約のデータモデルとパラメーターの両方が含まれます。.

パラメータには、たとえば、特定の契約への署名者(契約に対するアクションを承認する必要がある参加者)、およびオブザーバー(契約を確認するためにそこにいるだけで、契約の内容と承認されていない参加者)が含まれます。アクションを実行する)。テンプレート構造の別の側面には、基本的に契約の詳細と契約の内容の表現である契約が含まれます。.

テンプレートでは、契約の作成者が特定のしきい値に達した場合にのみ契約が作成されるようにする1つ以上の前提条件を指定できます。テンプレートのアウトライン構造の最後の要素は「選択肢」です。これは、契約の執行者が行使できる選択肢の範囲を定義します.

選択構造

テンプレート内の主要な構造は選択構造であり、テンプレートの性質の観点から契約当事者が選択できる選択肢を詳しく説明しています。.

選択構造は、選択を実行する責任があるコントローラーまたは当事者を識別します。この構造の他の要素には、消費可能性、名前、戻り値の型、選択引数、および選択本体が含まれます。.

続きを読む: DAMLトレーニングチュートリアル

DAMLとスマートコントラクトの比較

スマートコントラクトを理解する

前に説明したように、スマートコントラクトは分散型台帳テクノロジー(DLT)の重要なコンポーネントです。パブリックブロックチェーンでは、2つの匿名のパーティがスマートコントラクトを作成して特定のトランザクションを容易にすることができますが、データはパブリックレジャーに保存されたままになります。つまり、ネットワークのすべての参加者は、取引の詳細を表示して、その真正性を確認できます。そのため、信頼の強制が可能です.

プライベートまたは許可されたDLTでは、すべての関係者が知られていますが、特定のトランザクションに関与する関係者のみがそのトランザクションのデータにアクセスできます。信頼は、参加者がアクセスできるすべてのトランザクションを検証できるメカニズムを通じて引き続き維持されます。.

スマートコントラクトには、革新的な特徴を備えています。.

たとえば、スマートコントラクトには、設定された期限(トリガーイベントとも呼ばれます)からの合図で動作を開始する自己実行メカニズムを含めることができます。パブリックネットワークでは、利害関係者はスマートコントラクトのアクティビティを分析して、異常を特定できます。.

また、トレーダーはスマートコントラクトを使用して市場の動向を把握できます。これには、市場の傾向と不確実性を予測する機能が含まれます.

スマートコントラクトには、データの不変性を含む多くの利点があります。基本的に、不変性とは、元の状態からデータを変更できないことを指します。つまり、考えられるいかなる方法でもデータを消去または変更することはできません。.

データの不変性により、スマートコントラクトは常に正確になります。第三に、場合によっては、スマートコントラクトにより、ピアは仲介者を必要とせずに直接取引することができます。したがって、そのような取引は非常に安価であり、時には彼らはダイムを要しません.

スマートコントラクトのプロパティ

義務と権利の証明

スマートコントラクトが持つ必要のある重要な機能の1つは、プロセス全体に慣れずに取引する必要がないことです。本質的に、契約を結ぶことに同意することは完全に任意ですが、結果は強制的です。したがって、ユーザーは、サインオンする契約の将来の影響を確実かつ適切に考慮する必要があります。スマートコントラクトは、これが常に当てはまることを保証する必要があります。これは、正しく行うのが非常に難しい場合があります。.

トランザクションの有効性の検証

前に説明したように、契約の詳細に関する情報は元帳から簡単に追跡できます。したがって、これは契約の要件を満たし、それによって契約の信憑性と有効性を検証できます。.

続きを読む: スマートコントラクトのユースケース

DAMLとの比較

基本的に、前述のことから、DAMLが既存の言語の欠陥を修正できるという点でスマートコントラクトのサブセットを生成することは明らかです。前に説明したように、パブリックネットワーク上のスマートコントラクトがデータをパブリック台帳に保存するという事実は、スマートコントラクトを機密取引にとって魅力のないものにします.

ただし、DAMLをプライベートネットワークと組み合わせて使用​​すると、契約を承認する当事者と、詳細を表示するための委任された権限を持つ当事者のみが契約情報にアクセスできるようになります。これが、知識のあるオブザーバーが、この言語が金融機関や取引の機密性を必要とするその他の機関にとってキラー機能であると信じている理由の1つです。.

それにもかかわらず、スマートコントラクトの言語としてのDAMLは、書面による契約の共有に関しては、従来のスマートコントラクトとは異なります。 Solidityのようなスマートコントラクト言語は情報を公に共有するため、ネットワーク全体が詳細にアクセスできます。だからこそ、人々はDAMLと堅実性について議論しています.

それどころか、DAMLで書かれた契約は、知る必要がある場合にのみ利用できます。これは、望ましくない第三者が詳細にアクセスできないことを意味します。特に、この言語はセキュリティの追加レイヤーを利用しているため、望ましくない関係者もデータを利用できません。.

DAMLの利点

オープンソース

ブロックチェーンプラットフォームはたった10年しか経っていないかもしれませんが、急速に成長しています。今日、テクノロジーは前例のない速度で業界に革命をもたらしています。この急速な成長の理由は、ブロックチェーンがオープンソースであり、開発者なら誰でもそれをいじって特定の問題に対する最良の解決策を見つけることができるという事実です。.

興味深いことに、DAMLは2019年4月4日からオープンソースでもあります。つまり、開発者はDAMLコードを変更して、スマートコントラクトとブロックチェーンエコシステム全般に関して最も革新的なソリューションを作成することができます。.

続きを読む: ブロックチェーンは未来ですか?

プライベートトランザクションを有効にします

従来のスマートコントラクト言語には、契約を非公開にすることができる強力な制限のあるネイティブ機能が含まれていません。本質的に、契約の情報は、望ましくない第三者を含むすべての参加者がアクセスできます。.

ただし、前述のように、DAMLには、許可された関係者のみがそのような情報にアクセスできるセキュリティの追加レイヤーが組み込まれています。.

エンタープライズブロックチェーンの採用を加速

ブロックチェーンがエンタープライズユースケースに移行するにつれて、テクノロジーを妨げる問題の1つは、情報の分散性です。特に、前述のように、すべての参加者がエントリの前に許可を取得する必要があるプライベートブロックチェーンプラットフォームの作成などの取り組みがすでにあります.

しかし、企業は依然として競合他社が自社の戦略を見極めるという脅威に直面しています。ただし、DAMLのエントリは、その問題に対する潜在的な解決策です。特に、この言語では、契約データへのアクセスが許可されているノードのみに契約データが制限されており、契約に関する情報を他のユーザーが利用することはできません。そのため、企業には言い訳がなく、企業のブロックチェーンの可能性に飛び乗って活用するしかありません。.

続きを読む: ブロックチェーンテクノロジーを実装する企業

モデルの正確性を検証するための組み込みサポート

ブロックチェーンの複雑な性質を考えると、ほとんどの操作とモデルは実験的で斬新です。したがって、モデルの正確さを常に検証する必要があります。幸い、DAMLには、モデルの正確性の検証が自動的に行われるサポートが組み込まれています。.

ストレージの抽象化

DAMLランタイムは堅牢であり、言語を既存の代替言語よりも優れたものにするために重要な操作を実行します。たとえば、ランタイムは、開発者が契約のロジックに集中できるという点で、元帳の詳細を抽象化します。.

DAMLを他の代替スマートコントラクト言語と比較する

ブロックチェーンエコシステムはまだ成長しており、これは標準的な運用システムがないことを意味します。これはまた、スマートコントラクトの作成を支配する単一の言語がないことを意味します。そのため、DAML以外にも多くの選択肢があります.

DAMLとSolidity

Solidityは、人気を博したイーサリアムのスマートコントラクトを作成するための最初の言語の1つです。この人気は、Ethereumブロックチェーンプラットフォームがスマートコントラクトの優先ネットワークである結果でした。.

プログラミング言語として、SolidityはEthereumプラットフォームを支配しています。この言語は、JavaScriptに似た高レベルの構文とスクリプトを利用します。特に、この言語はイーサリアム仮想マシンの拡張に不可欠です。 Hyperledger BurrowやMonaxなどの他のいくつかのプライベートブロックチェーンは、一次開発にこの言語を使用しています.

さらに、イーサリアムの開発者はSolidityを使用してソフトウェアのバージョン0.4.0を作成しました。この言語の美しさは、ブロックチェーンネットワークの機能を壊さないことです.

さらに、この言語は、イーサリアム仮想マシン(EVM)で実行されるスマートコントラクトの作成に不可欠です。この言語は、スマートコントラクトに固有のビジネスロジックを自己強化するアプリケーションの機能を強化します。その結果、イーサリアムエコシステムの取引当事者は、検証可能性を促進するために取引の信頼できる記録を残します.

言語がHaskellの言語に似ているDAMLとは異なり、SolidityはECMAScriptに近い構文を利用します。ただし、Solidityには、可変個引数の戻り型や静的型付けなどの追加機能があります。また、Solidityで記述されたコントラクトは、C3線形化で容易になる多重継承をサポートします。.

Actulusモデリング言語

ブロックチェーンが企業の方向性を示し始めて以来、初期言語で特定されたいくつかの問題を解決するために、さまざまな金融ドメイン固有言語が登場しました.

DAMLとSolidityに加えて、Actulus Modeling Language(AML)は、年金および保険セクターの計算問題の解決に役立つようになりました。特に、AMLはEdlund A / SとIT大学コペンハーゲンを組み込んだマルチパーティベンチャーです。.

Javaのような言語や、さまざまな設定で一般的に適用できるC / C ++とは異なり、AMLはドメイン固有です。つまり、この言語は特定の目的に役立つか、特定のプラットフォームで実行されるアプリケーションを作成できます。そのため、この言語ではスタンドアロンのプログラム、インターフェイス、およびアプリケーションを作成できません。.

BOScoinトラスト契約

これは、Webオントロジー言語(WOL)を使用してスマートコントラクトを作成する別の代替ソリューションです。 BOScoinは、契約の信頼性と堅牢性を強化するために、常にTimed Automata Language(TAL)を採用しています。特に、この言語は、分散型アプリケーション(DApp)の作成を容易にする信頼契約を作成します。基本的に、スマートコントラクトはDAppの信頼できる性質を強調します.

もっと詳しく知る: dAppとは?

DAMLと同様に、BOScoinはチューリング完全ではありません。代わりに、言語は決定可能であり、イーサリアムスマートコントラクトのチューリング完全な性質とは異なります。イーサリアムのスマートコントラクトとは異なり、BOScoin Trust Contractsは、包括的でより詳細なオントロジー言語を使用します。特に、これは、開発者が信頼できる契約を考え出すことができるプラットフォームをチームが作成する必要があるためです。.

DAMLの将来はどうなるか?

現状では、ブロックチェーン環境はスマートコントラクト言語で溢れています。多くの言語により、ブロックチェーンアプリケーションの相互運用が困難になり、ブロックチェーンの大量採用が遅れています。.

興味深いことに、Hyperledgerプラットフォームだけでも、HyperledgerSawtoothでスマートコントラクトを作成するDAMLを含む6つ以上の言語を使用しています。.

ただし、DAMLランタイムの抽象化機能は、全面的に作成されたスマートコントラクトの多数のバグ問題を解決するのに役立ちます。また、DAMLアプリケーションを他のプラットフォームに移植できるようにします。 Digital Assetのプラットフォームに加えて、VMware BlockchainとSawtoothのDAMLサポートが発表されました。これは、他のプラットフォームがそれを採用する可能性があることを示しています。.

したがって、DAML言語は今後数十年でユニバーサルスマートコントラクト言語になる可能性があります.

ブロックチェーンテクノロジーに関する同様の基本的なトピックについて詳しく知りたい場合は、無料のエンタープライズブロックチェーンコースを確認してください。.