1. 近況について

引き続き、ブロックチェーンの話題に触れてゆきたいと思います。自らビットコインと「法律問題」と題しておきながら、法律エッセンスが(少)ないように感じていますが、気にせず今回も技術的なことについて書こうと思います。
 

その前に、近況でございますが、弊所も会員になっているブロックチェーン推進協会(BCCC)で、6月29日、会員数が60社を超えたとしてプレスリリースされました。プレスリリースは、以下のURLに記載されております。当初の予定を上回る勢いで会員数が増加しているとのことでございます。

http://bccc.global/ja/articles/297.html

また、昨日(630日)は、BCCCの第一回総会が開かれましたので、弊所からは私が参加してまいりました。様々な業界・規模の会員が参加されており、ブロックチェーンの関心の幅の広さが伺えます。


その他、最近のニュースとしては、ビットコイン採掘時の供給量が半減する「半減期」が間もなく迫っております(なお、この記事を書いているのが2016年7月1日です。)。そのためか、ビットコインの相場がかなり変動していますね。半減期をまたいで、どのように価格が推移してゆくかも興味深いです。


2.
 イーサリアム

さて、前回のメルマガ以降、私の方では、アゴラ研究所で開催されている、ブロックチェーンのセミナーに参加しております(全3回で、最終回は7月です。最終回には、池田信夫氏も登壇される予定です。)。ブロックチェーンの発展や、近時の応用事例などに触れられて、非常に勉強になります。


中でも、Ethereum(イーサリアム)の話は、特に印象に残りました。これは、ブロックチェーン技術を応用したソフトウェアで、その機能の一つとして、なんと、ブロックチェーン上でソフトウェアを動かすことができるのです!!


なんじゃそりゃ??という方も多いかと思います。簡単に言うと、

  ①専用の言語でプログラムを組む

  ②それをブロックチェーン上に載せる

  ③ブロックチェーン上でそのプログラムを動作させる

ということができるのです。

これの何が凄いかというと、(皆が参加する)ブロックチェーンネットワークは、基本的に、何があっても止まらないので、「止まらないプログラム」が実現できるのです。


具体的に言えば、サーバーなど、1つのPCで動かしているプログラムは、停電や、災害、人為的ミスなどで、稀に、止まることも考えられます。しかし、ブロックチェーン上のプログラムは、ネットワークに参加しているコンピューターがそれぞれコピーをもち、どれか一台が壊れても、ネットワークは維持されます。ブロックチェーンは、「電源の切れないPC」などとも例えられ、イーサリアムでは、その「電源の切れないPC」上で、ソフトウェアを動かせるのです。これは、個人的にかなり凄いことだと思います。


また、ブロックチェーンは、改ざんが困難です。そのため、ブロックチェーン上でソフトウェアを動かせるのであれば、そのソフトウェアの改ざんも困難だと思います。


さらに、イーサリアムは、ビットコインと同様、仮想通貨の機能も有しています。本日(7月1日)時点では1(ETH)=1370円前後で取引されています。
 

これは何を意味するかというと、先ほどのプログラムの面と、仮想通貨の面を合わせると、プログラムで容易に仮想通貨を操作することが可能になるのです。例えば、ある条件が成立した時に、仮想通貨を、誰々に移動する、といったことが可能になり、もっと言えば、管理者不要で、資金管理・移動を、自動化することができるのです。


もっとも、あまり良くないニュースも届いています。イーサリアム上で動くプログラムの脆弱性をついて、多くの仮想通貨が、意図せず流出してしまったというのです。これは、イーサリアム自体の脆弱性ではないと思いますが、課題として残された点だと思います。


今後の改善・発展に期待したいです。

3.
 番外編:エミュレーター上で、Solidityのプログラムを動かしてみる

ちなみに、イーサリアム上では、プログラムが動く、ということで、早速、プログラムの作り方を調べてみました。イーサリアム上で動くプログラム言語は、いくつかあるようですが、有名なものでは、「Solidity」という言語がございます。


文法を調べてみましたが、かなりC++ライクです(配列がポインタのような扱いになっていて、「C」っぽいな、と思いました。細かな文法も、かなり、CやC++っぽいです。)。


また、インターネット上に、ブラウザ上で動作する「Solidity」言語のエミュレーターがあったので、早速HelloWorldのコードを入力し、色々いじってみました。
試しにif文なんかを打ちこんでみましたが、普通に使えますね。


if (nData == 3){return "Hello T&P World!!";}

送金処理と組み合わせれば、特定の条件が満たされた場合に、お金を送金する、という処理も、ちょっとプログラムを勉強すれば、誰でも簡単に実現できるのではないでしょうか。