post Image
EthereumやLightningNetwork等のBitcoin改的な取組みは普及するか、という非技術的な<考察> その1

※ 長文になるので、このエントリーは、”その1″とする。

ためらいながら、<考察>を開始

Fintechがバズってるらしい今日このごろ。本エントリーでは、EthereumやLightning Networkといった、改良版Bitcoin的な取り組み(better Bitcoin的な取り組み)は普及するか、というFintech絡みと言えるだろうが非技術的な事柄を、ややためらいながら考察していきたい。

犯罪組織やクラッカーなどとの結びつきなどで、一般的なニュースリソースでも、しばしば話題となっているBitcoinに対し、EthereumやLightning Networkの取り組みは、技術的なコンセプトとPoC(Proof of Concept)的な実装が、前面に出ている。こうしたコンセプトやその実装に対し、技術的な検証や考察はなしうる。加えて、そうした技術をウォッチする価値はあるのか、あるいは、数年後にこれらの取り組みはどうなっているのか、といった非技術的な考察もなしうる。
ただ、Ehtereumひとつとっても、相当に複雑な取り組みだ。<軽く考えてみる>にしても、達成感のある考察をするためには、仕様を把握し、ユースケースをチェックし…といったかなりの量の作業が必要とされる。多少なりともまともな考察をしたいと思うと、そのための作業量を想像し、ちょっとためらってしまう。ということで、本エントリー、あくまで予備的な考察ということで。SF好きな人とか、ミリオン超えのアニソンでもBGMにして、読んでくださいな(銀の弾丸…でなくて、”紅蓮の弓矢”が、まもなくYoutubeアニソン再生数のトップになるんだね…)

[参考] ブロックチェーンを用いた、改良版Bitcoin的な取り組みをとりあえず概観するには。

Ethereum入門というgit bookのブロックチェーン革命あたりから入ってみるのが良いかと思う。よく分からないタームは適宜ググる感じで。

cf. 相当量のコードがPoC目的でコミットされてきたEthereumのgithub

Ethereumの近況を軽く整理

スクリーンショット 2016-04-27 5.11.03.png

本家サイトで目につくのが、”Build unstoppable applications”というキャッチフレーズ。

日本語版Wikipediaでは、Ethereumは、「イーサリアム・プロジェクトにより開発が進められている、分散型アプリケーション(DApps)やスマート・コントラクトを構築するためのプラットフォームの名称、及び関連するオープンソース・ソフトウェア・プロジェクトの総称」と書かれている。停止することのない分散型アプリケーション等をビルドできるのが、Ethereumというわけだ。

…スマート・コントラクトの方への興味から、2年ちょい前の、Ethereumの最初期のProof of Concept(PoC-1)が出た頃に、関連ドキュメントや当時のコードを追いかけた思い出が。

Ethereumは、大手ITベンダー等による”ブロックチェーンバブル”(?)の立て役者のひとつであると思われる。例えば、マイクロソフトがブロックチェーンサービス「Ethereum Blockchain as a Service」を発表といったニュース :

引用 : Microsoftは米国時間11月9日、Ethereumブロックチェーンサービス「Ethereum Blockchain as a Service(EBaaS)」を発表した。Windows Azure上で展開するブロックチェーン開発環境となり、財務、金融分野を中心に開発者や企業は容易にクラウドベースのブロックチェーン開発環境を手に入れることができるとしている。

Azureのブログの方は、以下のような書き出し :

Microsoft and ConsenSys are partnering to offer Ethereum Blockchain as a Service (EBaaS) on Microsoft Azure so Enterprise clients and developers can have a single click cloud based blockchain developer environment. The initial offering contains two tools that allow for rapid development of SmartContract based applications: Ether.Camp – An integrated developer environment, and BlockApps – a private, semi-private Ethereum blockchain environment, can deploy into the public Ethereum environment.

マイクロソフトと、ConsenSysといういかにもな名前の組織が、パートナーを組んでEBaaSをエンタープライズな顧客や開発者に提供しますよ、スマート契約に基づくアプリが作れたりしますよ…というわけだ。

同時期に、Go言語版のEthereumクライエントをAzure上のUbuntu VMで簡単に実行するための解説が書かれ、コードもコミットされている:
https://azure.microsoft.com/en-us/documentation/templates/go-ethereum-on-ubuntu/
https://github.com/Azure/azure-quickstart-templates/tree/master/go-ethereum-on-ubuntu

Ethereumの内部通貨であるetherの取引価格は、この頃から上昇トレンドに乗ったとのこと。Bitcoinとは別に、独自のブロックチェーンを構築しているEthereumは、賛同プロジェクトの方もけっこう盛り上がっていて、それなりのエコシステムを作り始めている。

Lightning Networkとは?

スクリーンショット 2016-04-27 5.13.09.png

Bitcoin界隈の人々にとって、改良版Bitcoin的な取り組みを、独自のブロックチェーン上で展開すべきか、それとも、広く取引されているBitcoinのブロックチェーン上で展開すべきか、という議論は定番の話題の1つ。前者の典型はEthereumで、独自のブロックチェーンによるクリーンなエコシステムを作ろうとしている。Lightning Networkは後者の取り組みだ。

少し前まで、Bitcoin界隈では、ビットコインのスケーラビリティが、スキャンダラスな話題であった。Bitcoinをネット上の取引行為で広く用いようとしても、そのブロックチェーンは”素のまま”ではスケールしないであろうためだ。
1年ほど前の記事、ビットコイン、スケーラビリティ問題への対応は急を要するには以下のように書かれている:

ビットコインのスケーラビリティの問題は深刻だ。ビットコインは現在ブロックサイズの制限により、プロトコルレベルで7tps(取引/秒)までしか処理できず、これは一日で最大604,800取引までしか処理できないことを意味する。
VISAやMasterなどといった既存のトランザクション処理サービスは、最大で45,000tpsまで処理することができると言われている。通常状態ではおよそ10分の1の処理を行っており、一日にすると4億から5億程度のトランザクションを処理していることになる。ビットコインのトランザクションサイズは平均するとおよそ300bytesであり、仮に無制限のブロックサイズかつクレジットカードネットワークと同等のトランザクションを処理することになった場合、一日に129.6GBのブロックチェインデータが生成され、ビットコインに関連するサービス提供者やサーバー提供者ひとりあたり、年間47TBの容量を消費することになる。現在ビットコインのノードは6,300近く建てられているため、累計300PBの膨大なデータが毎年蓄積されていくことになる計算だ。

ペタバイトきたーっ (笑)

本記事では、 ビットコインのスケーラビリティの問題への処方箋として、Lightning Networkが登場してきたと書かれている:

Lightning Networkの提唱者であるジョセフ・プーンは、こういった多くの「懸念」に対して、ブロックチェイン外(off-blockchain)のトランザクションで実行することが望ましいと考えている。加え、彼は現在の主流である金融機関のトランザクション処理からヒントを得て、ユーザー間でHashed TimeLock Contract(HTLC:ハッシュ化されたタイムロック契約)を行うことでスケーラビリティの課題を解決しようと試みている。

Ethereumについてもqiita上で多くのエントリーしてくれている@hshimo氏は、HTLCの導入目的は『途中経路のルーティングをする第三者がビットコインを盗めないようにする』ことにあると書く(出典 : ビットコインの Lightning Network メモ)。

このエントリーに書かれているLightning Networkのルーティングについては、ライトニングネットワークの衝撃~ビットコインによる本当のマイクロペイメントがもたらすものという記事を先に読んでおいたほうが、導入意図が分かるだろう :

ライトニングネットワークとは、
少額支払いを可能にし、手数料を削減し、ビットコインをスケールさせるためのソリューションである。

ビットコインでは、少額支払いは無理で、決済に10分かかり、手数料が高いため、実用性がないという批判が多い。

ライトニングネットワークでは、

・ ミリ秒単位で何千のトランザクションが可能
・ 採掘コストは、チャネル作成時と、チャネルクローズ時のみ
・ 1satoshi以下(0.0001円)といった、超少額支払いが可能

ここまではペイメントチャネルと同じだが、多段階の支払いができるようになったのがライトニングネットワークだ。
支払いチャネルのネットワーク化である。

Lightning Networkの導入目的の1つが多量のトランザクション処理にあり、そのために支払いチャネルをネットワーク化する。ネットワーク化する、ということは、何らかのルーティング手段が必要になるよね、ということだ。

…私自身、トランザクション処理の実装とかに疎いし、Lightning Networkをまともに追いかけたこともないので、興味がある人は、本家サイトにアクセスして欲しい:
http://lightning.network/

Lightning Networkの参照実装はこちら

次回予告

EthereumやLightningNetworkの概観だけで長くなったので、続きは別エントリーにて。

軽く書きたいことを予告しておくと、Ethereumチームがかなり早い段階から言及を続けているDAO(Distributed Autonomous Organization)のユースケースを深入りして考えていきたい。

EthereumのDAOに馴染みがない人でも、horiemon.comのイーサリアムやべぇ。。。というブログは読んだことがあるかもしれない :

ビットコイン型のプロトコルで重要なのは一番長いブロックチェーンが正しいブロックチェーンだとネットワークの参加者が合意しているということなのだが、そのブロックチェーンにコインの金額や受取人などの取引情報ではなく、契約(スマートコントラクト)を記述してしまおうという仕組みがイーサリアムだ。

これはビットコインとは別のブロックチェーンが使われている。契約を記述できるので原理的には何でもできる。デジタルコンテンツやら株券やらクラウドストレージやらの所有権を中央集権的な仕組みでなく実現できる。移動のコストも最小限だ。

これってすごい。自治体とか国とか要らなくなる!だってこのネットワークに数千万人、いや億単位の人が参加して、その人達の合意のもとに色々な契約が最小コストで出来るようになるからだ。

改めて、公開鍵暗号方式とビットコイン型のブロックチェーン方式の認証システムのコンボの凄さを思い知ったよ。。。

ここに書かれている、”色々な契約が最小コストで出来るようになる”とかいったあたり、そして、商法(会社法)の契約と関わるあたりが、DAO(Distributed Autonomous Organization)のユースケースと関連する。

このユースケースを検討するためには、企業/会社と法規制についての概観が必要になる。興味ある人は、経済学者の岩井克人氏の会社はだれのものかなどの一連の書籍を読んでおけばいいのかなと思う。

ついでに、東洋経済オンラインの岩井克人氏へのインタビュー記事ビットコインはケインズの夢を叶えるか
「貨幣」から読み解く2014年の世界経済(下)
も、Ethereum登場当時の世界経済状況を知っておく意味でも読んでおくといいかも。


『 Bitcoin 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。