スマートコントラクトは、If-Then条件付きコンピューターコードを使用して記述されたデジタルコントラクトであり、特定のルールとペナルティを使用して、ブロックチェーンに記録された2つ以上の当事者間の合意を定義します。契約当事者は匿名ですが、契約自体はパブリックレジャーにブロードキャストされます。行使価格の設定や有効期限の到来などのトリガーイベントは、スマートコントラクト内にコード化された契約条件に従って契約の実行を開始します.
スマートコントラクトは、仲介者による仲介の必要性を排除しながら、透明性、安全性、競合のない方法でお金、株式、資産、またはあらゆる形態の資産を交換するための手段です.
この記事全体を通して、さまざまなビジネスアプリケーションで効率的で信頼性が高いことが証明されている最も広く使用されているスマートコントラクトプラットフォームを確認します。あなたがしたい場合 スマートコントラクトについて学ぶ そしてそれらがどのように機能するか、私たちはそれらを詳細にカバーするCointelligenceAcademyクラスを持っています.
最も人気のあるスマートコントラクトプラットフォーム
イーサリアム(ETH)
イーサリアムは、スマートコントラクトを実行する分散型ブロックチェーンベースのプラットフォームであり、分散型アプリケーション(DApp)への扉も開きました。イーサリアム仮想マシン(EVM)は、すべてのスマートコントラクトを実行する仮想マシンです。 EVMは、チューリング完全な256ビット仮想マシンです。イーサリアムベースのスマートコントラクトは、コードステートメントのループと分岐のコーディングを可能にするチューリング完全プログラミング言語であるSolidityを使用してコーディングされます。 Solidity’s "チューリング完全性" イーサリアムを洗練されたロジックでスマートコントラクトをコーディングするのに理想的なものにします.
"ガス" イーサリアムのスマートコントラクトの燃料です。 EVMを介してスマートコントラクトを実行するために必要な計算能力の量を定量化します。スマートコントラクトを提出するときは、そのガス値を決定する必要があります。スマートコントラクトのコードに沿ったすべてのステップでは、所定量のガスを実行する必要があります.
イーサリアムのスマートコントラクトは次のことができます。
– として作用します "マルチシグニチャ" イーサリアムアカウント。所定の数のユーザーが同意した場合にのみコインが使用されます。
– イーサリアムのブロックチェーン上の他のスマートコントラクトにユーティリティを提供する
– 資産の所有権、ドメイン登録、メンバーシップ特権、アプリケーションの権利などに関する情報を記録します
– レンタル、ビジネスコラボレーション、保険など、複数の関係者間の契約を管理します
– クラウドファンディングに使用されるICOトークンなどのトークンを発行するようにコーディングされている。 ERC-20、ERC223、ERC77標準など、イーサリアムのプラットフォームでトークンを発行するために使用される複数のトークン標準があります。 ERC-20は、暗号業界ですでに数百万ドル相当の損失をもたらしている深刻なバグにもかかわらず、ICOの目的でトークンに発行するために最も一般的に使用される標準です.
ERC-20は、次の2つの方法のいずれかを介してトークントランザクションを実行します。
1- transfer():この関数は、特定のユーザーのアドレスへのトークンの送信を開始します.
2- approve()+ transferFrom():この関数は、事前定義されたスマートコントラクトへのトークンのデポジットを開始します.
ただし、transfer()関数を誤って使用してトークンをスマートコントラクトに送信した場合、トランザクションは正常に実行されますが、このトランザクションは受信者のスマートコントラクトアドレスによって認識されることはありません。このバグにより、開発者はERC223およびERC77標準を作成するようになりました。.
– ERC223:この標準は、transfer()関数を変更して、無効な転送に応答してエラーをスローし、トランザクションをキャンセルして資金が失われないようにすることで、ERC-20の重大なバグを軽減します。.
– ERC777:この標準は、トランザクション処理操作の欠如というERC20の問題を解決します.
イーサリアムはスマートコントラクトを作成するための一般的な選択肢ですが、プラットフォームのスケーラビリティの問題により、多くの実際のアプリケーションには不適切です。 Solidityには、最近のプログラミング言語で提供されているコーディングの柔軟性がありません。 Solidityは、入力パラメーターと出力パラメーターで多次元配列をサポートしていません。さらに、Solidityはスマートコントラクト機能内で16個のパラメーターのみをサポートします.
それにもかかわらず、イーサリアムに基づくスマートコントラクトはさまざまなアプリケーションで使用されています。例えば, PCHAIN イーサリアムスマートコントラクトのランタイム環境であるイーサリアム仮想マシン(EVM)を完全にサポートするネイティブのマルチチェーンシステムを作成した最初のブロックチェーンプロジェクトでした.
EOS
EOSはますます最も人気のあるスマートコントラクトプラットフォームの1つになりつつあります。プラットフォームは、無数の理由、すなわち、プラットフォーム上のトランザクションがほぼゼロの料金を必要とすること、および毎秒数百万のトランザクションを処理するプラットフォームの機能のために、暗号コミュニティの注目を集めています.
スマートコントラクトはC ++を使用してプログラミングされ、プログラミングの柔軟性が向上します。 EOSスマートコントラクトは、プリコンパイルされたWebアセンブリ(WASM)の形式でブロックチェーンに実装されます。これにより、イーサリアムベースのスマートコントラクトと比較して、コントラクトの実行が高速化されます。 WASMは、clangとLLVMを使用してC / C ++でコンパイルされます。開発者は、EOSのブロックチェーンでスマートコントラクトをコーディングできるようにするために、C / C ++の知識を持っている必要があります。 Cを使用してコントラクトを作成することもできますが、EOS.IO C ++ APIを使用することを強くお勧めします。これにより、コントラクトの安全性が強化され、コードが読みやすくなります。 EOSは、委任されたプルーフオブステーク(dPoS)コンセンサスメカニズムを利用します。これは、部分評価と並列実行で機能し、高レベルのスケーラビリティとほぼゼロのトランザクション料金を備えたスマートコントラクトプラットフォームを提供します。.
EOSはイーサリアムほど人気がありませんが、 "エアドロップ" イーサリアムのICOクラウドファンディングモデルの競争相手としてのモデル.
アイオン(AION):
Aionは、革新的な方法で異なるブロックチェーン間でトランザクションとメッセージをルーティングできるスマートコントラクトプラットフォームです。 "ブリッジング" プロトコル。 Aionは、次のコンポーネントで構成される多層ネットワークです。
– 橋
– ネットワークの接続
– チェーン間トランザクション
– 参加ネットワーク
Aionのブリッジにより、AIONブロックチェーンエコシステムを介して複数のブロックチェーン間でのトランザクション(チェーン間トランザクション)が可能になります。チェーン間トランザクションは、ブリッジと接続ネットワークを介して実行されます。接続ネットワークは、すべてのパブリックおよびプライベートブロックチェーンがAIONのブロックチェーンエコシステムと相互通信できるプロトコルを表しています。参加型ネットワークは、AIONのブロックチェーンエコシステムの一部になるための特別な一連の要件を満たしたネットワークです。参加しているネットワークは、アトミックトランザクションのブロードキャストをサポートし、次の状態に入るトランザクションをフリーズできるようにするロックタイムを実装する必要があります。 "ああホールド".
Aion Virtual Machine(AVM)は、スマートコントラクトの実行を可能にします。 AVMは、チェーンロジックを実行するように設計されたJVM実装です。 Aion言語は、AVMでスマートコントラクトをプログラムするために使用されるスクリプト言語です。現在、AionのカーネルはJavaで実行されているため、開発者はPythonやGroovyなどの言語を使用して、Aionのブロックチェーンでスマートコントラクトをコーディングする必要があります。ただし、プラットフォームは最終的にスマートコントラクトのスクリプトを作成するためにAion言語に依存します.
Aion-1は、他のブロックチェーンで作成されたスマートコントラクトの実行を可能にするAionのスタンドアロンプラットフォームです。現在、AionはEthereumのEVMに依存していますが、最終的にAion-1がアクティブ化され、開発者はEVMよりもはるかに安価で高速にEthereumベースのスマートコントラクトとDAppを実行できるようになります。.
NEM
NEMは、イーサリアムよりもスケーラブルなスマートコントラクトプラットフォームです。イーサリアムが1秒あたり15トランザクションを処理できるのに対し、NEMは1秒あたり数百トランザクションを処理できます。 NEMはより高速で安全であり、シンプルなスマートコントラクトテクノロジーを提供します。 NEMは、スマートコントラクトのプログラミングにオフブロックチェーンコードを利用します。これにより、NEMのブロックチェーンはイーサリアムよりも分散化されなくなりますが、セキュリティレベルが高くなり、トランザクションの確認が速くなり、プログラミングコードが軽くなります。マルチシグニチャやスマートアセットなどのNEMのオンチェーンセキュリティ機能がこの問題を解決します.
スマートアセットは、シンプルなプログラミングコードを使用してデータレコード、トークン、投票システム、新しいコインを作成するために利用できる独自のデータ管理アプリです。 NEMのブロックチェーンの極端な機能は、その強力なAPIを介して提供されます。これにより、任意のプログラミング言語(JS、Pythonなど)を使用してスマートコントラクトをコーディングできます。 NEMのAPIは開発に使用されます "オフチェーン契約", NEMのブロックチェーンと通信せずにいつでも更新できます.
ステラルーメン
Stellarは、トランザクションがイーサリアムのブロックチェーン上のトランザクションよりも安全で、高速で、安価なスマートコントラクトプラットフォームです。ステラスマートコントラクト(SSC)はチューリング完全ではなく、トランザクションによって実施される複数の当事者間のプログラムされた契約の形で展開されます。イーサリアムのブロックチェーンでトランザクションが確認されるまでに約3.5分かかりますが、Stellarのブロックチェーンでのトランザクションが確認されるのに必要な時間は約5秒です。取引手数料はごくわずかで、平均して約(0.0001 XLM〜 = $ 0.0000002)です。 SSCは、StellarのAPIを介して、Python、JS、PHP、Golangなどのプログラミング言語を使用してコーディングできます。 SSCは、マルチシグニチャ、バッチ処理/アトミック性、シーケンス、時間制限などの複数の制約を介して相互接続および実行されるトランザクションで構成されます。バッチ処理により、1つのトランザクション内に複数の操作を含めることができます。 Atomicityは、Stellarのネットワークに一連の操作を送信すると、単一の操作の実行に失敗した場合、トランザクション内のすべての操作が失敗することを保証します。シーケンスは、Stellarのブロックチェーンで紹介されているユニークなコンセプトです。 "シーケンス番号". シーケンス番号を使用すると、代替トランザクションが正常に実行されると、特定のトランザクションが失敗します。時間制限は、トランザクションの有効期間の制限を表します。時間境界を利用すると、SSCで期間を表現できます。.
Hyperledger Fabric(HLF)
Hyperledger Fabric(HLF)は、高度な柔軟性を備えて設計された許可されたブロックチェーンです。 HLFのスマートコントラクトは "チェーンコード". HLFはGoogleのオープンソースプログラミング言語であるGo言語で記述されているため、チェーンコードはこの言語も非常によくサポートしています。.
コーダ
Cordaは、金融契約の作成に理想的なスマートコントラクトプラットフォームです。コーダのスマートコントラクトは、入力状態と出力状態のそれぞれのスマートコントラクトによって受け入れられる必要がある有効なトランザクションです。スマートコントラクトは、JavaやKotlinなどのJVMプログラミング言語を使用してコーディングされています。スマートコントラクトの実行は決定論的であり、トランザクションの受け入れはトランザクションの内容にのみ依存します。場合によっては、トランザクションの有効性は、トークン価格などの外部情報に依存します。そのような場合、オラクルが必要です。ファクトは、トランザクションのコマンドの一部になるようにコーディングできます。オラクルは、コマンドの事実が真である場合にのみトランザクションを確認するサービスを表します.
CordaのDApp、またはCorDappsは、ブロックチェーンネットワーク自体ではなく、ネットワークノードのレベルでインストールされます。 CorDappsは、JavaまたはKotlinを使用してコーディングされています。 CorDappsは、Cordaのプラットフォームで実行するようにコーディングされています。これは、CordaノードオペレーターがRPC呼び出しを介して呼び出すことができるフローを定義することによって実現されます.
NEO
NEOは、効率的で低料金のスマートコントラクトを特徴とするスマートコントラクトプラットフォームです。スマートコントラクトは、C#、F#、Java、Python、VB.Net、Kotlinなどの無数のプログラミング言語を使用してコーディングできます。 NEOは、これらすべての言語用のプラグインとコンパイラを提供しています。将来的には、JS、Go言語、C、およびC ++のサポートが実装される予定です。.
NEOのスマートコントラクトは、軽量のNEO仮想マシン(NeoVM)を介して実行されます。 NeoVMを介したスマートコントラクトの実行は最小限のリソースを消費します。スマートコントラクトの静的コンパイルとホットスポットスマートコントラクトのキャッシュは、リアルタイムコンパイラJITを介して大幅に強化できます。現在、NEOのブロックチェーンは、複雑なデータ構造と配列のサポートを誇るスマートコントラクト2.0を備えています。また、Smart Contract 2.0は、動的パーティショニングと高い同時実行性を介したスケーラブルなアプローチを、低結合設計と組み合わせて提供します。スマートコントラクトの低結合手順はNeoVMで実行され、インタラクティブサービスレイヤーを介してオフチェーンシステムと対話します。そのため、スマートコントラクト機能のアップグレードのほとんどは、インタラクティブサービスレイヤーの特別なAPIを介して実現できます.
波
Wavesのスマートコントラクトは、RIDEONプログラミング言語を介してコーディングされています。 Wavesのスマートコントラクトの立ち上げは2つの段階に分かれています。第1段階は、昨年4月にすでに展開されており、テストネット上で非チューリング完全スマートコントラクトの開発が可能になっています。第一段階の非チューリング完全スマートコントラクトは、異なるブロックチェーンでのトークンの交換から共有予算管理の制御の有効化まで、複数のユースケースをカバーする無数のアカウント制御機能を可能にします。 Wavesの非チューリング完全スマートコントラクトの最も一般的なユースケースの1つは、マルチシグニチャアカウントです。また、トークンのフリーズを実装するために使用できます。これには、トークンをアドレスに送信し、事前定義された期間、トークンを使用できない、つまり転送できないようにすることが含まれます。これは、クラウドセールが終了した後、ICOの作成者にトークンの権利確定を実装するのに非常に役立ちます.
第1段階の非チューリング完全スマートコントラクトがWavesのメインネットで広範囲にテストおよびアクティブ化された後、第2段階のチューリング完全スマートコントラクトが開始されます.
ストラティス
Stratisは、人気のある.NETフレームワークを利用しています。スマートコントラクトは、C#プログラミング言語を介してコーディングされています。スマートコントラクトは決定論的に実行する必要があるため、C#のすべての機能や.NETのすべてのコアライブラリを利用することはできません。 Stratisはまた "ガス" イーサリアムのガスの概念と同じ概念.
カルダノ
Cardanoは、スマートコントラクトがコード化されたとおりに動作し、隠れた脆弱性がないことを保証することに重点を置いたスマートコントラクトプラットフォームです。スマートコントラクトは、SolidityまたはPlutusを使用してコーディングできます。 Cardanoは、言語フレームワークと正式に指定された仮想マシンの2つのレイヤーで構成されるCardano Computation Layer(CCL)を備えています。言語フレームワークは、人間が読めるスマートコントラクトコードの自動認証を容易にする、正式に指定されたプログラミング言語のセットを備えています.
テゾス
Tezosは、オンチェーンスマートコントラクトコードのフォーマル検証をサポートするスマートコントラクトプラットフォームです。スマートコントラクトは、セキュリティを強化するMichelsonと呼ばれる新しいプログラミング言語を使用してコーディングされています。 Solidityとは異なり、Michelsonのコードは何にもコンパイルされていません。代わりに、Tezos仮想マシンによって直接解釈される低レベルのストックベースのチューリング完全プログラミング言語を表します。ミシェルソンがプログラムしたスマートコントラクトは、セット、マップ、暗号化プリミティブ、ラムダ、およびコードをより人間が読めるようにするコントラクト固有の操作を含む高レベルの構成のコーディングを可能にします.
次へ(NXT)
次は、暗号通貨とスマートコントラクトプラットフォームです。 Nextのスマートコントラクトはチューリング完全ではありませんが、プラットフォームは、ユーザーがテンプレートのスマートコントラクトを簡単に作成できるようにする独自のチューリング完全スクリプトレイヤーを利用しています。ユーザーは、ニーズに最も適したテンプレートを選択し、そのパラメーターを変更して、独自のスマートコントラクトを作成できます。 Nextのプラットフォームの開発者は、これらのスマートコントラクトテンプレートは、コーディングと実装が簡単であることに加えて、ほぼすべてのビジネスアプリケーションをカバーしていると信じています。.
最終的な考え
Quorum、Wanchain、Aeternity、Zen、Counterparty、Rootstock、RChain、Qtum、Ark、Neblio、DFINITY、BOSCoin、Agoras Tauchain、Burst、iOlite、ByteBall、XTRABYTES、PolkaDotなどのスマートコントラクトプラットフォームの開発を可能にする他の暗号通貨がありますRadix、Exonum、Universa、Urbit、Soil、Expanse、Monax、そしておそらく他のもの。ただし、この記事で取り上げるプラットフォームは最も広く使用されており、さまざまなアプリケーションで信頼できることが証明されています。.