IELE (イエラ)とは?

カルダノ技術解説

IELEとは

IELE(イエラ)は、Cardanoブロックチェーンでスマートコントラクトを実行するための仮想マシンです。これによりDAppsDeFiなどの開発を行うエンジニアは複数のプログラミング言語を使って作業できるようになります。

いきなり何言ってんだこいつは!と大半の人が思ったと思います。恐らくこの文だけ見ても、理解しにくいと思うので嚙み砕いて説明します。

(ちなみにIELEとはルーマニア神話に登場する妖精のような生き物にちなむそうです)

スマートコントラクトとは

ブロックチェーン上で契約を自動的に実行する仕組みのことです。自動販売機のように利用者が硬貨を投入し、飲み物のボタンを選択した瞬間に売買契約が成立するイメージに似ています。

ブロックチェーン上でスマートコントラクトを利用すると、ブロックに契約の記録を残し、その記録を消失・改ざんする事が出来ないようにするので、第三者の保障無しでも契約が無効にならなくなります。今まで第三者を介さなければ契約できなかったものが、ユーザー同士で直接取引をできるようになり、今まで時間がかかっていた契約もすぐに完了することが可能となります。

仮想マシンとは

本来、物理的に必要なものを仮想的にあるようにして動かす仕組みのことです。Virtual Machin(VM)などと呼ばれたりもします。

DApps、DeFiとは

どちらも一言で表すなら、

Dapps : 分散型アプリケーション → 中央管理者無しで運営、管理できる

DeFi : 分散型金融 → 中央管理者のいない金融仲介アプリケーション

この二つを詳しく解説しているとものすごく長くなるので、今後これらを解説した記事を作成する予定です。

IELEの優れている点

次にIELEのどこが凄いのかについて見ていきましょう。

従来のVM(仮想マシン)の問題点を克服

従来のVMの問題点とは

これまでのVMの問題点は、非公式な仕様に基づいて人々が書いたものだということ、あるいは、VMが完成するまでに仕様書が作成されないことがよくあることです。

そのため、VMがすべきことと、実際にすべきことの間にズレが生じてしまいます。

ちなみに仕様とは、作っている最中は目指すもの、完成後は現状を表す(はずの)ものを言います。そして仕様書とはその仕様をまとめたものを言います。

IELEはどのようにその問題点を解決したのか

IELEは、先ほど述べた従来のVMのように開発されるのでははなく、異なる方法で開発することでその問題点を解決しました。

具体的な過程を言うと、まず仕様書を作成しそれをフォーマル(極めて正確)な言語で記述します。そして、人が実装するのではなく、Kフレームワークと呼ばれるツール群を使って、形式的な仕様から仮想マシンを生成するという風になります。

生成器のバグが仮想マシンのバグになる可能性はありますが、その可能性は人間が実装する場合に比べてはるかに低いです。

さらに、VMが何をすべきかを決める際のミス(つまり、仕様書のミス)の影響もはるかに小さくなります。対応するVMのコードを書き換えさせるのではなく、VM全体を再生成するだけです。

そのおかげで、イーサリアムのVMのような複雑さを持つ実用的な仮想マシンを作るための全労力は、わずか10人が1ヶ月の間だけ作業した程度で済むようです。

複数のプログラミング言語の使用が可能

なぜ複数の言語が使えるのか

なぜならIELEの仮想マシンの命令セットは、LLVMの命令セットをモデルにしているからです。

命令セットとは、コンピューターのハードウェアに対して命令を伝えるための言葉のことです。

LLVMとは

LLVMはオープンソースの技術で、Apple社のiPhoneやMacのアプリケーション開発ツールとして広く使われています。
LLVMが開発されてから18年の間に、多くの最適化技術や解析技術がLLVMの命令セットに適用されてきました。

今後、カルダノは新たな技術を開発するのではなく、それらの技術を応用することができます

ちなみにオープンソースとは、「好きに見ろ!」とソースコードが公開されていることを言います。

LLVMが対応しているプログラミング言語には、Python、C言語、Java、JavaScript などがあります。

また、IELEで使用できる言語としてはLLVMが対応しているプログラミング言語の他に、イーサリアムのSolidity、Plutusなどがあります。

図でイメージすると

IELEとLLVMの関係性がイメージしやすい図があったので引用しておきます。

画像

https://twitter.com/TheADAApe/status/1428071401097998341?s=20

IELEがLLVMの技術の恩恵を受けているので、Python、Java、C++、C#、JavaScriptなどの一般普及しているプログラミング言語がカルダノに応用できるというイメージです。

一般普及しているプログラミング言語が使えると何がいいのか

結論から言うと、スマートコントラクトに参入するために、新らしくプログラミング言語を取得する必要が無くなるからです。

スマートコントラクトに参入したい開発者は誰でも、自分の良く知っているプログラミング言語で作成することができるようになります。結果作成されたものは、言語に関係なく、IELEを装備したブロックチェーンで正常に実行されます。

開発者の中には、かつて一から新しいプログラミング言語を学ぶことを考えて、ブロックチェーン分野に入ることをあきらめた人もいるでしょう。そのような人たちにとってIELEはとても革命的なシステムになるはずです。

パフォーマンス向上とガスコスト削減

IELEでスマートコントラクトを作成すると、より安全で正確な検証が可能になります。その上、使いやすくて読みやすい言語構造となっているため、全体的なパフォーマンスを向上することができます。

また、ガスコストの正確な予測が可能になり、ガスコストの低減に繋がることが期待されています。

最後に

スマートコントラクトは正式に検証する必要があるため、指定どおりに実行され、バグや欠陥が無いようにしなければなりません。そうして初めて、何十億もの人々が信頼できる金融インフラとして広く採用されるようになります。

現在Cardanoの開発は活発に行われています。2021/09/13、遂にカルダノにスマートコントラクトが実装されました。今後のカルダノの開発がとても楽しみです。

コメント

タイトルとURLをコピーしました