#0. はじめに
ブロックチェーン、それは現在最も注目を集める技術の1つであり、私が陶酔している技術の1つでもあります。
しかし、ブロックチェーンに興味を持ち、調べ始めた方の前に立ちはだかる壁があります。それは、
ブロックチェーン、多過ぎ問題
です。
ということで、今回は自分の頭を整理する意味も兼ねて、(独断と偏見で)私が推しているブロックチェーンベスト5を列挙してみました。
公式サイト: https://ethereum.org/
GitHub: https://github.com/ethereum
堂々の第1位はEthereumです。ヴィタリック・ブテリンによって考案され、2015年の7月30日に最初のバージョンであるFrontierがリリースされました。今やBitcoinに次ぐ第2位の時価総額を誇っています。
○ ここがスゴい!
【ワールドコンピュータの実現へ】
【スケーラビリティ問題解決のための技術】
Ethereumはビットコインと異なり、ペイメントだけでなく、開発者が任意のロジックを実装したアプリケーション(DApps)を開発するためのプラットフォームとなることを目指しています。
2017年はこのEthereum上で新しいトークンを発行して、プロジェクト開始のための資金調達を実施するICOが盛んに行われました。
この、ICOこそがEthereumを使った初めてのキラーアプリだったのではないでしょうか。
また、2017年の終わりに流行し、話題になったのが、Ethereum上で行うゲームcryptokittiesです。これ以降、たくさんのブロックチェーンゲームが作られるようになりました。
ブロックチェーンゲームのまとめ↓
https://blockchaingame.jp/
しかし、この超有望なブロックチェーンにもいくつかの欠点があります。その一つがスケーラビリティの問題です。
現在、この問題を解決するために新しい技術の開発が進んでいます。それが、PlasmaやShardingといった技術です。
・Plasma
Plasmaは一言で言うと、ブロックチェーンを階層化して、それぞれの用途に応じた子チェーンでトランザクションを実行し、その結果をEthereum本体である親チェーンに書き込もうというアイディアです。
ホワイトペーパーの日本語訳↓
https://qiita.com/coffee_and_code/items/a66cb228786fe57063da
Plasmaに関してはGunosyの松本さんの記事がわかりやすいです↓
OmiseGoのGitHubにリポジトリもあるので、触ってみたい方はこちら↓
https://github.com/omisego/plasma-cash
https://github.com/omisego/plasma-mvp
・Sharding
Shardingもスケーラビリティ問題解決のために開発されている技術です。
これは、トランザクションの検証作業をノード群ごとに役割分担し、検証作業を並列化することによって、スケーラビリティ問題を解決しようというものです。
ただし、コンセンサスがPoSでないと改ざんが容易になるリスクがあると言われているので、実装にはまだ時間がかかると思われます。
公式サイト: https://enigma.co/
GitHub: https://github.com/enigmampc
Enigmaは、MITで始まったプロジェクトで、全てのブロックチェーンが抱える、スケーラビリティとプライバシーの問題の解決を目指す、セカンドレイヤーのオフチェーンシステムです。
最大の特徴はそのプライバシーです。
○ここがスゴい!
【暗号化された状態でデータを計算する凖同型暗号を使ったコントラクトの実行】
ブロックチェーンは全てのデータがオープンになっています。それはそれで、透明性が高く、誰もがデータを検証できるというブロックチェーンのメリットにはなっているのですが、その反面、プライバシーが低いという問題があります。
EthereumのスマートコントラクトもEtherscanを見れば、ロジックを全て確認することができます。
そこで、Enigmaは暗号化された状態でコントラクトを実行して、プライバシーを確保しようとしています。(シークレットコントラクト)
ここで使われる暗号が凖同型暗号という技術です。
通常の暗号はデータを暗号化して、それを転送し、復号して計算したり、処理を実行したりします。しかし、この凖同型暗号を使うとデータを暗号化したまま、計算することができるようになります。つまり、復号して中身を見ることなく、データが正しいかどうか検証できるようになるということです。
...すごくないですか?これを初めて知った時はかなり衝撃を受けました。
ただ、暗号技術は私も全然素人なので、これから頑張って勉強しようと思います。
凖同型暗号についてはこちら↓
https://qiita.com/herumi/items/d8645efe2cc5be2e7ee3
Enigma Japanという非公式のサイトもあるので、情報収集にはこちらが重宝します。
http://enigmajapan.info/
公式サイト: https://www.zilliqa.com/
GitHub: https://github.com/Zilliqa
Zilliqaはシンガポール国立大学から始まったプロジェクトです。次世代の高スループットブロックチェーンの開発を目指しています。
○ここがスゴい!
【Ethereumが実装していないShardingを実装、高スループットを実現!】
Zilliqaの最大の特徴はなんといってもそのスループットの高さです。
それもそのはず、ZilliqaはEthereumがまだ実装していない技術であるShardingをすでに実装しているのです!
これにより、高スループットを実現し、現在稼働しているのはテストネットのみですが、公式サイトによると6シャード, 3,600ノードで2,488 TX/sを実現したということです。
ちなみに、Sharding実装時に問題になるのが、そのシャードをどうやって作るかということです。ノードを完全にランダムに選んでシャードを作る必要があります。そうしないと、シャードを構成したノードが結託して、悪意のある動きをして、ネットワーク全体として正しくないデータが記録されてしまうリスクがあるからです。
そのため、Zilliqaはシャードを作るときにハッシュ値計算を利用しています。
ハッシュ値によって、ランダムに選ばれたノード同士でシャードを作ることによって、悪意のあるシャードができるリスクを下げています。
また、Zilliqaは独自のスマートコントラクト言語「SCILLA」の開発も行なっています。
EthereumのSolidityに似せた言語らしいのですが、できることに制限があり、バグによる重大な事件(The DAO事件など)が起きることを防ごうという意図があるようです。
しかも、SolidityからSCILLAにコンパイルすることもできるようにする予定とのことです。
これは個人的にかなり嬉しいですね。コントラクト用の言語として、Solidityは圧倒的なので、それから変換できるというのはシェアを奪う気満々だなと感じました。
Zilliqaの詳細は以下の記事がわかりやすいです↓
https://magazine.ginco.io/post/dapps_zilliqa/
公式サイト: https://bitcoin.org/en/
GitHub: https://github.com/bitcoin
サトシナカモトにより考案された言わずと知れた世界初のブロックチェーンです。ビットコインはスケーラビリティ問題あるし、プライバシーはないし、スマートコントラクトもないし...
なんて声も聞こえてきそうですが、近年では新しい技術がどんどん開発されています。
○ここがスゴい!
【世界初のブロックチェーン、オフチェーン技術やプライバシーの発展も!】
まずスケーラビリティについてです。ビットコインではLightning Networkというオフチェーン技術が開発されています。
EthereumでもRaiden Networkというオフチェーン技術はありますが、まだまだ発展途上でメインネットで使えるようなものにはなっていません。
一方、Lightning Networkは最近になって、ようやく実ビジネスにも使える?くらいまで環境整備が進みました。
日本初!Lightning Networkの効果を体感できるECサイトがオープン
また、2017年にはSegWitが話題になりましたが、それ以外にも実装が進められている技術(シュノア署名やMAST)があり、これらが発展すればBitcoinはまだまだ進化するに違いありません。
シュノア署名がビットコインのスケーラビリティ問題に与える衝撃
P.S
初めて私が学んだブロックチェーンがBitcoinでしたが、UTXOというデータ構造を理解できたときはかなり興奮しました(笑)
#5. 第5位:Interledger(インターレッジャー)
公式サイト: https://interledger.org/
GitHub: https://github.com/interledger
第5位はInterledger(ILP)です。これはブロックチェーンというよりもプロトコルなのですが、将来性があるなと思ったので、挙げてみました。
○ここがスゴい!
【乱立するブロックチェーンの台帳を接続するプロトコル】
ILPは世界中に散らばっている異なる価値を高速で移動させることを目指しています。
例えば、ビットコインが記録されているブロックチェーンと日本円が記録されている銀行口座システムはそれぞれ規格が大きく異なる台帳ですが、ILPを使うことで規格の異なる台帳同士でスムーズに送金を行うことが可能になります。
ここで言う台帳というのは以下のようなものが想定されています。
- ビットコインなどのブロックチェーンネットワーク
- 銀行などの金融機関とのネットワーク
- クレジットカードネットワーク
- PayPalなどのモバイル決済ネットワーク
ブロックチェーンも含めて、現在は様々な台帳が存在しているので、それをまとめるのではなく、台帳は台帳のままで、それらをコネクトするILPは今後数年のトレンドになるのではないでしょうか。
(インターネットプロバイダーに対して、ILPプロバイダーみたいな)
qiitaにもILP実装に関する記事があったので今度試してみようと思います。
https://qiita.com/dora-gt/items/51774984953c82912b13
#6. 終わりに
以上、推しているブロックチェーンをまとめてみました。
余談ですが、今回の記事を書こうと思って、上記5つ以外にも様々なブロックチェーンプロジェクトを調べていましたが、どれもGitHubにソースが公開されていました。1つ2つくらいはソースが公開されていないものもあるだろうと思ってたので、驚きながらも、こういったOSS文化がブロックチェーンの発展スピードを高め、プロジェクトを魅力的にしているのかなと感じました。