Web3.0を象徴するブロックチェーン技術は、暗号資産の取引のみならず、NFTやDeFi、メタバース、トレーサビリティをはじめとするコミュニティ内での情報共有システムなど、様々なシーンやサービスで活用の幅が広がっています。そしてこの動きは、今後ますます加速していくと考えられます。
言うまでもなく、すべてのブロックチェーンは何らかの開発言語を使って構築されており、開発プロセスでは、目的に応じて多くのフレームワークが活用されています。
そこで今回は、ブロックチェーンの開発言語やフレームワークについてまとめました。
ブロックチェーン使われる開発言語とは
ブロックチェーンは、2008年にサトシナカモトの名で発表された論文から誕生した従来にはない画期的な技術ゆえに、開発言語も特別なものと思われがちです。しかし実際はそうではありません。
むしろ一部の例外を除いては、馴染みのあるプログラミング言語ばかりで、特定の開発言語でなければブロックチェーンが作成できないということはないのです。具体的には、C++、JavaScript、Go言語などがそれに該当します。それぞれについて、詳しく見ていきましょう。
ブロックチェーン開発言語の例
C++
ブロックチェーンを一躍有名にしたのは、暗号資産第一号の「ビットコイン」です。このビットコイン開発に使われたのがC++です。C++は、C言語の拡張版としてリリースされた処理スピードが非常に高速な言語で、AmazonやChromeで利用されていることでも有名です。
ビットコインはオープンソースのプロジェクトで、GitHubなどに有志が集って複数のコミュニティ内で開発が進められてきました。現在も、より使いやすいシステムとして進化させるべく、彼ら有志によって、C++をベースとしてアップデートが繰り返されています。
Java Script
Java Scriptは、ブラウザを動かす言語の中で最もポピュラーといってよいでしょう。とくに汎用性の高さが群を抜いており、スマホアプリなら、iOSとAndroidに対応した開発環境が整っていますし、デスクトップ用アプリの開発にも多用されています。フロントエンドとサーバーサイド両方の開発が可能な点も人気の理由です。
ブロックチェーンの開発についても、Webページにブロックチェーンを実装する場合に利用されますが、ライブラリやサンプルソースが多彩で開発実績はトップを誇ります。
Go言語
Go言語は、Googleによって開発された、非常にコードが書きやすく、かつ高速処理が可能なプログラム言語です。有名なところでは、「YouTube」や「メルカリ」のシステムが、Go言語で作成されています。汎用性が高いのが特徴で、Webサービス、スマートフォンアプリ、ドローン開発などに幅広く活用されています。
さらに、イーサリアムが提供するクライアントソフトの「Go Ethereum」は、すべてGo言語によって実装されます。Go Ethereumは、イーサリアムの様々な操作を可能にし、スマートコントラクト、CPUによるマイニング、資金移動などの機能を搭載できるため、暗号資産やDappsなど、ブロックチェーンの構築にうってつけです。
Go言語の開発には、C言語の開発者が携わっており、C言語の構文に似たコードで書けるのも大きな特徴です。アップデートも頻繁に行われていているので、使い勝手やクオリティが確実に高まっていて、ブロックチェーンエンジニアの中でも、トップレベルの人気を誇る開発言語に成長しています。
Solidity
上記の3つの言語と性質をことにするのが、「Solidity」です。上述の言語はいずれもブロックチェーンが誕生す る前か、ほぼ同時期に実装されました。よって、必ずしもブロックチェーンの開発のために作りだされた言語ではありません。しかし、ことSolidityについては、イーサリアムブロックチェーンやイーサリアムを使用したDapps(分散型アプリケーション)などを開発するために作りだされた特殊なプログラミング言語です。
Solidityを活用すれば、スマートコントラクトを使ってブロックチェーンにさまざまな機能を搭載することができるようになります。代替性トークンや非代替性トークンのトランザクションが可能となるため、Defi(分散型金融)、DEX(分散型取引所)、DAO(分散型自律組織)、そしてNFTなど、様々なサービスやコンテンツの作成に寄与します。
ちなみにSolidityは、C++やJavaScriptを参考に作られたオブジェクト指向の高級言語ゆえ、とくにこれらの言語について知識がある人にとっては、比較的習得しやすいという特徴があります。
ブロックチェーン開発のフレームワークとは
ブロックチェーン開発には、さまざまな開発言語が活用されますが、何もないところからシステムを構築するのは至難の技です。というのも、ブロックチェーンは、開発言語の知識だけでは完成させることができないからです。少なくとも、「ハッシュ関数」「電子署名」「公開鍵暗号化方式」「疑似乱数生成」などに精通していなければ実装にこぎつけることはできません。よって、優秀なエンジニアを数多く抱えるIT企業ならまだしも、個人のエンジニアにとって、ブロックチェーンをゼロから作り上げるというのは、非常に困難といってよいでしょう。
そこで役に立つのが、あらかじめブロックチェーンの構築に必要な機能が用意されているフレームワークです。大手企業やそのコンソーシアムによって設計、開発されたフレームワークを利用すれば、ゼロから機能を用意する必要がないので、開発作業を格段に効率化することができます。その多くはオープンソースのため、中にはライセンス料が必要な場合があるものの、目的や用途に合わせて自由に利用できるのです。
ブロックチェーン開発に使えるフレームワークには多くの種類が存在し、いずれも何らかの開発言語がベースとなっていますが、中には開発言語の知識がなくともシステムやアプリが作成できるものもあります。よってフレームワークは、多くの企業や開発者の中で大変重宝されているのです。
ブロックチェーン開発に使われるフレームワークの例
ブロックチェーン開発に利用されるフレームワークをいくつかご紹介しましょう。
ブロックチェーンと一言にいっても、その機能や用途はさまざまです。よって、どの様なブロックチェーンを開発するかによって、当然活用するフレームワークも違ってきます。その決定に際しては、「暗号資産(またはトークン)が必要か否か」「秘匿性や処理速度が高いか否か」「パーミッション(許諾)タイプか否か」「スマートコントラクトが必要か否か」といった要素が基準となります。
Hyperledger Fabric(ハイパーレジャーファブリック)
「Hyperledger Fabric」は、企業向け(BtoB企業)ブロックチェーンフレームワークの中でもっともポピュラーで、医療データの共有と管理、製造業におけるサプライチェーンでのトレーサビリティ、その他銀行やIoTなど、幅広い業界で利用されています。
パーミッション型のため、特定の参加者で構成されるプラーベート型またはコンソーシアム型ブロックチェーンの構築に向いています。企業やチーム内で使用している開発言語をそのままスマートコントラクトのプログラムに使える点や機密性の高さが定評です。独自の暗号資産はありません。
Quorum(クオラム)
「Quorum」は、おもにゲーム開発を行うtoC企業向けに提供されることが多いフレームワークの「Ethereum」をtoB企業向けに開発し直したものです。Ethereumは、だれでも参加可能なパブック型で、暗号資産イーサリアムを利用しますが、Quorumは、パーミッション型で秘匿性が高く、独自の暗号資産がないのが特徴です。Ethereumがベースのため、もちろんスマートコントラクト機能を有します。さらにトランザクションのスピードが遅いことが問題視されていたEthereumの持つ課題を大きく改善した点も、Quorumの特筆すべき利点です。
Quorumの使用例として、世界的高級ブランド「ルイヴィトン」の真贋証明システムがあります。偽造品による被害が深刻な同社は、Quorumを使って、原材料、製造、流通と、販売されるまでの全情報をブロックチェーン上で共有しています。これにより、いつ、どこで、何を使って、誰が何を行ったのか、という作業プロセスが、関係者の間で明らかになるわけです。このネットワーク上に存在しない商品は、すべて偽物ということになるため、コピー品のつけ入るすきを与えない秀逸なシステムといえるでしょう。
Corda(コルダ)
「Corda」はtoB企業向けのフレームワークで、主に金融機関で利用することを目的に開発されました。パーミッション型で秘匿性と処理速度が極めて高いだけでなく、取引を行っている本人以外にトランザクションの存在が認識できない点が、最大の特徴です。よって、金融や保険サービスに極めて適しているだけでなく、コンソーシアムの中でも、利害がぶつかる相手とは情報を共有しないという使い方が可能になるのです。
さらに同じCordaを使って開発されたアプリケーション間のデータ連携がしやすいため、より高度かつ利便性の高いサービスが広範囲に渡って提供可能です。Cordaを運営するR3コンソーシアムには、みずほ銀行やバンク・オブ・アメリカといったメガバンクが参加している点からも、金融機関において今後さらにブロックチェーンの存在感が増すと予想されます。
Ripple(リップル)
Rippleは、銀行間取引に特化したブロックチェーンが構築できるフレームワークです。独自の暗号資産「リップル(XRP)」を使って、極めて速く、しかも安価な手数料での送金が可能です。ただし、パーミッションレス型で秘匿性については、あまり高いと言えません。
まとめ
ブロックチェーンを一からプログラミングして開発するのは、非常に困難です。そこで、多くの企業や開発者は、目的に応じたフレームワークを活用しながら効率よく実装にこぎつけています。
ただし、フレームワークに頼り過ぎると、修正が必要になった際に対応できないため、プログラム言語についての知識を持っている方が、望ましいでしょう。とくに今話題のNFTやDefiといったスマートコントラクトを搭載した管理者不在のブロックチェーンを構築するなら、Solidityがおすすめです。Solidityは、C++やJavaScriptを参考にして作られたオブジェクト指向の高級言語のため、比較的習得しやすいでしょう。
ただ、慣れない中で実効性や競争力に富んだブロックチェーンを開発するのは容易ではありません。その際は、レリパの経験豊富なエンジニアが、理想のブロックチェーンサービスの構築をお手伝いしますので、ぜひ気軽にお声掛けください。
出典:https://relipasoft.com/blog/blockchain-development-language/