イベントレポート
プライベートブロックチェーンmijin v.2でcatapultの機能を試すハンズオンに参加してみた
第3回mijinハンズオンセミナーでアグリゲート・トランザクションを学ぶ
2019年3月28日 06:00
テックビューロホールディングス株式会社(以下、テックビューロHD)は3月19日、東京都・大手町のFintech拠点「FINOLAB」にてNEM/mijinに興味のあるエンジニア向けに「第3回プライベートブロックチェーンmijinハンズオンセミナー」を開催した。第3回は、同社のプライベートブロックチェーン製品「mijin v.2(catapult)」の機能の解説に続き、実際にmijin v.2を利用してcatapultの機能「アグリゲート・トランザクション」を試すワークショップを体験する。今回は、好評だった第2回のハンズオンセミナーを逃してしまった人に向けての再講演、第2回と同様の内容となる。セミナーは、希望者は事前登録が必要だが、誰でもブロックチェーン開発の基礎を学ぶことができる。
ハンズオンセミナーの講師は、テックビューロHDパートナーである株式会社Opening Line・チーフエンジニアの松田晋一氏。Opening Line社は、歩数計と連動し歩くことでお店のサービスと交換可能なトークンを獲得できるNEMブロックチェーン活用のヘルスケアアプリ「FiFiC」の開発・提供を行うなど、ブロックチェーンに関する知見と実績を持つ会社。松田氏は、第1回のセミナーから講師を務めている。
mijin v.2(catapult)について
セミナーでは、ハンズオンを行う予備知識としてプライベートブロックチェーン「mijin v.2(catapult)」について、catapultの概要と機能を分かりやすく解説する。catapultは、NEMブロックチェーンのバージョン2として登場が待ち望まれている次世代ブロックチェーンと呼ばれているが、NEMブロックチェーンのプライベートチェーン版である「mijin v.2(catapult)」に先に導入されている。
catapultは、NEM/mijinの次期バージョン。バージョン2とも呼ばれていると、松田氏は解説する。現在、NEMのcatapultは鋭意開発中で、まもなくロードマップが発表され、公開時期も明らかになるという。「mijin v.2(catapult)」は、NEMに先立ち2018年5月に一般公開。現在、技術者向けにディベロッパープレビューを実施中だが、2019年にオープンソースとエンタープライズ・ライセンスのデュアルライセンスを提供開始予定だという。
NEM/mijinと比較して、catapultはそのトランザクション処理性能は大幅に向上している。パブリックチェーンであるNEMは1秒間に2トランザクション程度、プライベートチェーンのmijinは数百であった。catapultになることで、mijin v.2は4000トランザクション以上となる(NEM 2は未定)。
これまでコア部分はJava(プログラミング言語)で開発されていたものが、catapultになってC++へと変更されているほか、そのレイヤー構造も大きく変わっている。
mijin v.2(catapult)の機能について
具体的にmijin v.2でできる基本機能についても解説をする。mijin v.2には新機能として、以下の機能が追加されたという。
- マルチレベル・マルチシグネチャ
- アグリゲート・トランザクション
- クロスチェーン・トランザクション
マルチレベル・マルチシグネチャ
これまでもNEM/mijinはマルチシグネチャに対応しており、送金時に複数人の署名が必要となる機能を実装している。複数人の署名が必要になるためセキュリティを高めることができるという機能だ。それが、catapultではマルチレベル・マルチシグネチャ対応となり、最大3階層まで設定できるようになった。具体的にいうと、社員レベルで署名を行ったものに対して、その上のレベルで部長が承認し、さらにその上で社長が承認、決済をするといった使い方が可能になる。
アグリゲート・トランザクション
アグリゲート・トランザクションは、複数のトランザクションを1つにまとめて処理できる機能。たとえばお店のポイントシステムの場合、これまでは「利用者が代金を支払う」で1トランザクション、「お店がポイントを発行する」で1トランザクションと、1トランザクションずつステップを踏んで処理をしなければならなかったが、アグリゲート・トランザクションでは、互いの署名が揃った瞬間、同時に1トランザクションとして処理することができる機能だ。
アグリゲート・トランザクションを利用することで、複雑なトランザクションでも関係者の署名がそろった段階で同時に実行されるため、署名の途中でトランザクションが滞るようなことが避けられるという。すべて成功するか、すべて失敗するかとなるとのこと。また、1回のリクエストで複数のトランザクションを処理することができるため、ノードの負荷が抑えられるメリットもあるという。
これらをXEM(NEMが発行する仮想通貨)やmijin/NEM上で作成した他のモザイク(独自のトークン)も、SDKやAPIで呼び出して容易に利用可能だという。さらに、内部処理にて手数料代払いができるため、NEMのネットワークを利用する人が必ずしもXEMを保持する必要がなくなるため(サービス側が内部で肩代わりできる機能)、仮想通貨に疎いユーザーをブロックチェーンを用いたサービスに取り込むことが容易になるという。
また、アグリゲート・トランザクションにも課題はあるという。第1に、複雑なトランザクションを正しくわかりやすく組んだり、検証できるようなUI・UXにする必要があるという。複数人の署名が必要なトランザクションを作成する場合、一定のXEMを担保として預ける必要もあるとのこと。担保されたXEMは、制限時間内に署名が集まれば返されるが、集まらないと没収されハーベスト報酬(Bitcoinでいうマイニング報酬のようなもの)となるという。どうやって、署名対象者に署名を促させるかがポイントとなるそうだ。
ハンズオンで、mijin v.2を使ってアグリゲート・トランザクション
catapultの新機能について一通りの解説を聞き、ここからは、いよいよmijin v.2を使ってみる、セミナーのメインイベントとなる。
今回のセミナーでもまた第1回同様、参加者と講師の松田氏のコミュニケーションについては、ビジネスチャットアプリとも呼ばれる「Slack」を介して行われることになった。まずはハンズオン冒頭でSlackのワークスペースURLが提示された。
必要な情報や資料の場所などはセミナーのスライドでも紹介されるが、実際に自分のパソコンで操作するには不便なので、Slackにて情報が共有される。いちいちURLを打ち込んだりしていては時間がもったいなく、間違いも生じやすいので、コミュニケーションツールとしてSlackが使われた。
環境の準備
ハンズオンでは、Catapultを「NEM2-CLI」というプログラムで操作をする。ちなみに第1回で用意した以下の環境を、今回も先にノートパソコンに導入済みである。
- node.js
- nem-library
- typescript
- ts-node
今回は、NEM2-CLIをインストールする必要があるため「npm」が必要になる。筆者は、Windows環境なので、コマンドラインからnpmが実行できるようにあらかじめ用意しておいた。
実行するにあたり、nmpが入っていることを確認するために、バージョン情報を表示させてみた。入っていることを確認し、インストールを開始する。
無事に起動できることを確認。
環境が整ったところで、ハンズオンのスタート。今回は、アグリゲート・トランザクションを試す。まずはNEM2-CLIを使い、mijinのテストネットでアカウントのプロファイルを作る。作ったアカウント間で、XEMのやり取りをしながら、その機能を試してみた。その後、余裕のある人はプログラミングをしながら、アグリゲート・トランザクションに触れるという流れで、各自、チャレンジを行った。
このように(実行例はほんの一部)、セミナーでは実行方法と共に、ソースや結果についても解説が行われた。一通り実行したところで、1時間30分のセミナーは終了となった。
今回は短い時間でありながらも、catapultについて知る機会とアグリゲート・トランザクションに触れられたことが、技術者ではない筆者にとってもいい刺激となった。技術者ではあれば、きっと何かを作ってみたいというモチベーションがより高まるのではないだうか。第1回のセミナーでも感じたことだが、セミナーはNEM/mijinが初心者に優しいということと、会場では講師の松田氏のほかにも、わからないことがある場合に聞くことができる人がそばにいるということが大きい。NEM/mijinに興味がある人は、参加してみてはいかがだろうか。