主催
会場
株式会社bitFlyer 本社
東京都港区赤坂 9‐7‐1 ミッドタウン・タワー 8F
全体の感想など
11/28 から 11/30 までの直近3日間だけで
と(良くも悪くも)話題に事欠かない日本最大の仮想通貨取引所を運営する bitFlyerの勉強会に参加してきました。
国内シェアが8割、テレビCM を大量投入するなど、ビットコイン・仮想通貨の取引所としてはノリにノッている bitFlyer ですが、全銀協が推薦する実証実験プラットフォームベンダーに選出されたとの発表もあったことから、取引所以外にブロックチェーン自体にも注力していこうという方向性が窺えます。 *4
現在は「miyabi」という自社製ブロックチェーンをゼロから作っているとのことです。開発言語は C# で、チームがまだ小さいということもあってかお披露目はまだ当分先のようです。 *5
あと、会場はこんな感じで(私の写真ではありません)、六本木ミッドタウンの新オフィスに引っ越して 1ヶ月とのことでフロアも雰囲気もピカピカなオフィスでした。社員も90名に急増したとのことで、さすがノリノリですね(よく見ると床に刻み海苔らしきものが散らばってましたが、前日のイベントでピザでも食べたのでしょうか。まさにノリノリ)。
なんとかミートアップに潜入していました pic.twitter.com/PIy7HCBbqe
— 黒ま (@kuromachart) 2017年11月30日
bitFlyerわず。 pic.twitter.com/vrKRW8D4qJ
— シュレック(倉田 隆成) (@amonspast13) 2017年11月30日
さて、LT の内容ですが、Hyperledger Sawtoothは今回初めて聞きました。PoET(Proof of Elapsed Time)も初耳です。
公式ドキュメントによると、Intel SGX のチップを使った Intel サーバ群を TEE(Trusted Execution Environments:信頼済み実行環境?)としたブロックチェーン上で、待ち時間をランダムに割り当てられたノードペアがブロックの承認をおこなうという仕様になっているようです(間違っていたらすいません)。
ただし PoET が動作するのは、Intel の分散台帳プラットフォーム「Sawtooth Lake」など限定的なブロックチェーン上のみのようで、実質 PoET はパブリックチェーンとしては利用できないということでしょうかね。
しかも、
実験用途にしか利用を推奨していない。
独自のコンセンサスアルゴリズムPoETを持つが、これは本来intelが提供するハードウェアを利用して行われるため完全版ではなく、オープンソース版ではシミュレータが用意されている。開発は続けられているが、正式なプロダクトへの採用を勧めていない為、選択肢にはならない。
とあるように、メインは実験用途とか。登壇者も「実務では使っていない」と言っていましたので、miyabi 開発のために他製品を調査してみたということなのかもしれません(実際、他の方も「社内勉強会の資料を外に出せるように手を入れた」と言っていました)。なお今回のデモは Docker のシミュレータ上で動作させるため、Intel SGX の TEE は利用しておらず、Mac でも問題なく動かせるというカラクリのようです。
また、(サンプルの ○✕ゲームの実装がそうなっているだけかもしれませんが、)Ether の Gas のようなトランザクション手数料の仕組みがないため、ノードのマイニングの報酬がなく、ノードを立てる経済インセンティブをどう設計するかについてはシステム上の懸念が残ります。
それはさておいて、(私が長年 Python を使ってきたということもあって)Python で任意のスクリプトを書けるのは面白いな、と思いました。
Python 製のブロックチェーンとしては他にも、
- HydraChain
- Ethereum の拡張版で、コンソーシアム型またはプライベート型のブロックチェーンを構築可能。Python でコントラクトを書けるのが特徴。
- BigchainDB
- DragonChain
などがありますが、Python で自由にコントラクトを記述できる有名どころとしては HydraChain が挙げられるでしょうか。ただし、ノードが最低限 6台必要ということで検証用途としては Hyperledger Sawtooth に軍配が上がるということなのかもしれません(実際試してみましたが、Docker 上でデモを動かすのは非常に簡単でした)。
WindowsのDocker環境でブロックチェーンを動かしてみる
越智 佳景 氏(ブロックチェーンエンジニア 株式会社 bitFlyer)
- Hyperledger
- PoW は参加者が限定されていない場合に有効
- Sawtooth トランザクション
- アプリ開発者が任意に設計できる
- Validator が Transaction Processor(ビットコインのスクリプトに相当)に問い合わせ
- ステートを変更する
- Sawtooth ブロック
- 代表ノードがブロックを作る
- Intel SGX のチップ、Intel のサーバを信用する??
- PoET(Proof of Elapsed Time:時間に応じてブロックを作れる可能性が高まる)
- 代表ノードがブロックを作る
- Docker
- 3月あたりにEE(Enterprise)とCE(Community)に分かれた
- 実行方法は二つ
- Dockerfile(docker build . で Imageを作って docker run)
- 複数コンテナをまとめて起動する場合は docker-compose.yaml(docker compose up でコンテナを起動)
なおブロックについては、チェーン内部にタイマーがあり、一定時間ごとに自動的にブロックが作られるようになっているとのこと。また State は、トランザクション外(メモリ上?)で管理されるということです。
*1:
*3: 超速報:bitFlyer FXで初のサーキットブレイク発動。10分で約30万円の下落を記録。約3000~4000BTC(33~45億円)がロスカットされた模様 #ビットコイン#Bitcoin#仮想通貨#ブロックチェーン#フィンテック$BTC#bitFlyer#ビットフライヤーpic.twitter.com/ocfJhXGYHj
*5:bitFlyerがブロックチェーン技術Miyabiを発表、新アルゴリズムとスマートコントラクト搭載 | TechCrunch Japan
*6:http://member.wide.ad.jp/tr/wide-tr-ideon-dlt2017-00.pdf
*7:ハイパーレッジャーとその他の分散レッジャー技術 / Hyperledger and Other Distributed Ledger Technology // Speaker Deck