仮想通貨の頻繁に議論されている機能の1つスマートコントラクトはおそらくブロックチェーン技術の最も破壊的な構成要素です。
スマートコントラクトは、1994年に情報工学者ニック・スザボによって最初に提案されたもので、当初の紙ベースの前任者の機能強化であり、1人または複数の当事者が自己実現契約を実行するために必要なプロトコルと条件を含んでいます。
今日、スマートコントラクトは本質的にブロックチェーンを介して動作し、設定された条件が満たされたときに実行される命令を含むデジタル契約であり、ほぼすべての資産交換を自動化および分散化できます。

スマートコントラクトとは何か?

ブロックチェーン技術の多くの分野と同様、スマートコントラクトは誤解されることがよくあります。これらは、契約コードで指定された条件の下で、当事者間でデジタル通貨または関連資産を移転するために使用されます。スマートコントラクトは、2つ以上の当事者間の合意を形成し、第三者を必要とせず、法的裁定を必要とせずに分散型の方法でコンプライアンスを実施します。

スマートコントラクトは、信頼のない Escrow -エスクロー-である第三者としての働きにより、複数の当事者間で資産を移転することを可能にします。

たとえば、複数の個人からの支払いを受け入れるスマートコントラクトを作成し、その残高が臨界閾値に達すると、スマートコントラクトはこれらの個人の1つを無作為に選択して完全な残高を受け取ることになり、本質的に信頼性の低い検証可能な抽選システムを作成する。

スマートコントラクトが署名され、ブロックチェーンにアップロードされると、それは本質的に不変であり、契約に関与する者によって操作することはできません。この永続性とは、潜在的に悲惨な事故を防ぐために、下位のコードの問題を後で変更することはできず、巧妙に細工されたコードの重要性を強調します。

今日、ブロックチェーン仮想マシン上で動作するコードは、契約機能を持つかどうかにかかわらず、一般にスマートコントラクトと呼ばれています。

代表格はイーサリアム

イーサリアムは、2015年7月にリリースされたスマートコントラクト機能に関連する主要な仮想通貨であり、イーサリアムは独自のカスタム契約指向プログラミング言語Solinityを使用してスマート契約の開発を可能にしました。

それ以来、カルダノ、Waves、Qtumなどの他の多くの仮想通貨が同様の機能を提供し始めています。しかし、これらのどれも、イーサリアムが持つコミュニティを獲得することはできませんでした。

イーサリアムはスマートコントラクトの最も人気のあるブロックチェーンであり続けています。しかし、Solidityは比較的最近のものであり、その構文に堪能な開発者は殆どなく、専門家と呼べる開発者もほとんどいません。さらに、それはとても新しいので、その言語に利用できるリソースは非常に限られています。Solidityのドキュメントは広範囲に渡っていますが、プログラミングの背景を持つ人々に重点を置いており、同様の言語でプログラミングに関する知識が豊富でない人にとっては価値がありません。

これらの制限のため、Solidityで作成されたほとんどのスマートコントラクトは初歩的で、不必要にリソースを集中して実行するのに費用がかかるという批判がしばしばあります。これらの苦情は、イーサリアムのスマートコントラクト機能を向上させるためにいくつかの代替ブロックチェーンを開発する必要があります。

最近、RSKはビットコインベースのスマートコントラクトプロジェクトを開始しましたが、イーサリアムとは異なり、この機能はビットコインコアプロトコルの一部ではなく、ビットコインブロックチェーンに接続する相互運用可能なサイドチェーンに帰属しています。ビットコインのスマートコントラクトは、ネットワークへのアクセスが制限されているため、機能がはるかに制限されることが予想されます。

NEOにおけるスマートコントラクト

他のスマートコントラクト可能な仮想通貨とは異なり、NEOスマートコントラクト(またはNEOコントラクト)は複数の異なるプログラミング言語で開発することができ、開始に必要な学習曲線を大幅に削減します。現在、 NEOコントラクトは、近い将来Javascript、Golang、C ++のサポートを実装するNEOチームと共に、6つの異なる言語(C#、F#、VB.net、Java、Kotlin&Python)で開発することができます。

NEOはこれらの言語用のコンパイラを提供し、開発者がNEO Virtual Machine(NVM)によって理解され実行される命令にコードをコンパイルできるようにします。NEOコントラクトはスケーラビリティが高く、決定論的で再現性があり、スマートコントラクトの複雑なネットワークを作るために相互に呼び出すことができます。これらのスマートコントラクトはNEO仮想マシン上で実行され、機能の一部として分散型アプリケーションによってアクセスされる可能性があります。

NEOは、元々、Antshares(ANS)という名前で2014年にリリースされ、2017年にNEOに改名されました。NEO チームは、スマートな契約技術にアクセスしやすくすることで、新しいスマートな経済を先導することを目指しています。NEOスマートコントラクトは、他のスマートコントラクト可能な仮想通貨と同様のスケーラビリティ問題を解決するように設計されています。それはそのプロトコルにおける並行性と動的割り当ての組み込みによってこれを行います。

並行性とは、結果に影響を与えずに、複数のスマートコントラクトをシーケンスに依存しない方法で同時に実行できることを意味します。

これは、静的呼び出し関係のすべてのスマートコントラクトがアクティブ化される前に決定されるときに発生します。これらのうち、異なるデータで動作するものは同時に実行でき、同じレコードを変更するものは順次アクティブ化されます。さらに、NEO仮想マシンはプロセッサとメモリを特定の契約に動的に割り当てることができるため、複数のコンタクトを動的に分割して並列で実行できる数を最大限に活用できます。

現在のところ、並行処理と動的パーティショニングを利用しているNEOブロックチェーンは、現在約15tpsを管理しているイーサリアムとは異なり、約10,000トランザクション/秒(tps)を処理できます。NEOチームは、最大のtpsを10倍以上に増加させることが期待されるコアプロトコルにシャーディングを実装する作業を現在行っており、増加した要求にブロックチェーンを追いつけることができます。

シャーディングは、ブロックチェーンネットワークを「シャード」と呼ばれる小さなユニットに分割することによって機能し、これらのシャードはそれぞれネットワークの断片を並行して実行し、より多くのノードが含まれるようになります。

まとめ

効率と並列化のこれらの巨大な改良は、イーサリアムの最初の主要な競合相手としてNEOを位置づけます。過去に、イーサリアムブロックチェーンは、すぐに普及したゲームのcrypto kitties、イーサリアムブロックチェーン上で仮想の子猫が繁殖し、生まれ育つ中毒性のゲームによって過負荷になっていました。

そのピーク時に、crypto kittiesはネットワークの輻輳を引き起こし、現在はすべてのイーサリアムトラフィックの約20%を占めています。この混乱により、仮想通貨の世界ではスケーリングが依然として大きな問題として残っていることが明らかになりました。これは大量採用が行われる場合に解決する必要がある問題です。

この記事を読んだ人はこんな記事も読んでます