はじめに
本稿ではブロックチェーンプラットフォームSymbolにおける
ハイブリッド・チェーン
というチェーン展開について、解説・ユースケースを展開していきます。
そもそもNEM・Symbolって何?という方は以下を参考ください。
ハイブリッドチェーン – Symbolで実現する世界
概要
ハイブリッドチェーンとは、パブリックチェーンとプライベートチェーンを併用することで、お互いの長所を活かし、短所を補う、チェーンの展開方法です。
Symbolは企業向けシステム構築をターゲットとしており、パブリック・プライベート両方利用ができる点を強みとしている開発プラットフォームといえます。
パブリック・プライベートの使い分け
データ配置の基本方針
格納するデータをどのように保存するかの設計で、パブリック・プライベートを使い分ける必要があります。
ブロックチェーンの利点の1つとして非改ざん性であります。それはパブリックチェーン上のブロックに刻まれたトランザクションを、チェーン利用者に絶えず公開されている透明性を以て証明されます。
このような所在の証明という点でブロックチェーンは有用ですが、世の中のサービスには秘匿すべき情報、公開範囲を限定したい情報があるのが、むしろ通常です。
秘匿したいデータはプライベートチェーンで公開範囲を限定したり、オフチェーンで管理するのが基本的な手法となります。
観点 | プライベート | パブリック |
---|---|---|
公開・共有すべきデータ | 〇 | |
プライバシーを保護すべきデータ | 〇 |
処理速度を考慮した設計
パブリックチェーンとプライベートチェーンの利用において避けては通れない問題はトランザクション処理速度です。
上記のトレストさん「NEMの学校」情報からするとSymbolの想定トランザクション処理速度は100tpsと推測されます。
中央集権システムではありますが、グローバルなペイメントシステムとして機能しているVISAは、24,000tpsや56,000tpsの処理速度など各サイトで語られています。
海外送金基盤として期待されるリップル(XRP)においては1,500tpsという話もあります。
イーサリアムは20tpsほどといわれていますが、トランザクション処理速度を上げる「Plasma」の研究開発が進んでおり、将来的にはVISAと同様レベルまで引き上げることを目標としているようです。
トランザクション処理速度へのあくなき探求は続くと考えられます。
プラットフォーム | プライベート | パブリック |
---|---|---|
Symbol From NEM | 4,000tps | 100tps |
VISA | – | 24,000tps? 56,000tps? |
XRP | – | 1,500tps |
Ethereum | 20tps |
とはいえ、開発は今ある資源を以て進める必要があります。
企業システム・サービスとして、パブリックでのリアルタイムなトランザクションを膨大に処理するサービスを構築するためには、正直まだ道半ばであり、ブロックチェーンを採用すべきでないのかもしれません。
企業システムやコンソーシアム型のサービス構築における現実解としては、DApps開発の容易性がまず優先されるため、現段階においてはプライベートとパブリックの用途を使い分けつつ、処理速度を必要とするものはプライベートやオフチェーンで処理し、処理を取りまとめてからパブリックに公開するという使い方が一般的な手法となります。
コスト管理
公式でもうたわれているように、Symbolにおいてパブリック・プライベートの使い分けによるコスト管理が行えることが利点としています。
公式サイトによると、パブリックチェーンのトランザクション手数料は
トランザクションのサイズとブロックの手数料乗数を掛ける
となっており、主にトランザクションサイズと、ノードが設定する手数料乗数により求められます。詳しくは公式と以下記事をご参考ください。
メタデータに画像バイナリを詰め込むアグリゲートトランザクションで、手数料乗数を100に設定した際のテストネットでの手数料の興味深い実験があります。
サイズが大きいので手数料はかなりのものです。
とはいえアグリゲートトランザクションによりサイズが圧縮されています。
アグリゲートトランザクションによる手数料の節約の実験は以下が面白いです。
また、相当量のトランザクションサイズでは手数料はかなりのものになりますが、ノード運営における大量のトランザクション生成や、相当サイズのトランザクション発生による手数料の支払いは、ネットワーク貢献とみなされ、トランザクションスコアが高くなりインポータススコアがあがるため、ハーベスティング報酬を受け取る可能性があがることが考えられます。
以上から、Symbolにおいてはパブリックチェーンの手数料について平たく語ることができないこともあります。
しかしながら、やはり無料に勝てるものはなく、サービスの持続的な運営のためには、本稿の主題である「ハイブリッドチェーン」の構成をとり、手数料発生のないプライベートチェーンを最大限活用するコスト管理が求められます。
# | まとめ |
---|---|
算出式 | 主にトランザクションサイズとノードの手数料乗数により算出。 チェーン状況によりサイズ・手数料乗数が同じでも手数料は異なる。 |
節約方法 | アグリゲートトランザクションにより、 サイズ圧縮・回数削減して、手数料節約が可。 |
チェーン使い分けにおける整理
今までお話ししたチェーンの使い分けを整理すると以下のようになります。
DAppsサービス構築においては下記のような特性を鑑みて、パブリックか、プライベート利用か、またはブロックチェーンを利用しないのかを検討する必要があります。
# | オフチェーン | Private | Public |
---|---|---|---|
データのプライバシー保護 | ◎ | 〇 | × |
処理速度 | ◎ | 〇 | △ |
コスト管理 | 〇 | 〇 | △ |
非改ざんデータの公開 | × | 〇 | ◎ |
二重取引の防止 | △ | 〇 | ◎ |
また、本稿のテーマともいえる、各チェーンの長所・短所を使い分けるハイブリッドチェーンのシステム構築を試みるかを判断することになります。
ハイブリッドチェーン利用事例について考える
以下にハイブリッドチェーン利用事例をプラクティスベースで説明します。
プラクティス
企業やコミュニティなどの組織があり、属する利用者がいるケースを考えてみます。
組織はA・B・C・Dと4組織あり、それぞれに利用者がいる事にしましょう。
ユーザがもつ債権・債務につき、個別に組織に働きかけ、別組織に属する他ユーザに対しても取引可能なサービスを想像します。
日本の商取引ではあまり使われませんが小切手の振出と受取を題材にしましょう。
A・B・C・Dは銀行で、ユーザは各銀行に口座を持つ利用者、取引は小切手の振出を考えてみます。
課題
現状サービスにおける課題は以下が考えられます。
①A/B/C/Dでの取引別に、個別に小切手を処理するのは非効率で手数料が嵩む。
②上記課題の解消のため、各組織間の取引を一定期間とりまとめ、各行間の送金回数・額を最適化(つまりネッティング)する事が検討される。実業務を行うための取引所と中央集権システムが構築される。(ここまでは既存システムで対応可能)
しかし以下課題が発生することが考えられます。
さて、上記課題をどのように解消していきましょうか?
ブロックチェーン技術を用いた設計方針
プラクティスの課題を解決するためにブロックチェーンを利用しましょう。
Symbolプラットフォーム利用を想定に設計方針を組み立てます。
パブリックチェーンとプライベートチェーンを併用するハイブリッドチェーンにて課題全てに対して解決していきます。
パブリックチェーンにおける小切手交換の自動化を行う
・二重取引の排除
個別取引発生時に、該当小切手の有効性のステータスはパブリックチェーンで公開。
つまり該当の小切手が利用されたという事実を公開。
別の銀行で二重現金化はできない。
・手数料の最適化
定期時間枠で発生したトランザクションをとりまとめるネッティング処理を行う。
多数の個別取引の金額をとりまとめ、当該時間枠における各行別の最終結果(NET値)を求める。
A⇒B⇒C⇒Dの順に精算トランザクションをパブリックチェーンで発行する。
該当精算トランザクションは、アグリゲートトランザクションで行う。
⇒各行、ひいてはユーザへの手数料を節約される。
例)個別取引が8件発生したケースにおけるネッティング
# | A | B | C | D |
---|---|---|---|---|
1 | -50 | 50 | ||
2 | -40 | 40 | ||
3 | -50 | 50 | ||
4 | 60 | -60 | ||
5 | -10 | 10 | ||
6 | 40 | -40 | ||
7 | -60 | 60 | ||
8 | -30 | 30 | ||
NET | 40 | -80 | 60 | -20 |
上記において、ネッティングにより精算トランザクション数は以下3つになる。
- A行は、B行から40受取り
NET値40を受け取る - B行は、C行へ40を渡し
NET値-80であるが、既にA行に40渡しているため、Cに残額40を渡す。 - C行は、D行から20受取
NET値60であるが、既にB行から40受け取っており、残額をDから受け取る。
トランザクション回数は参加組織数-1回となり、トランザクションサイズが適正化されるため、当該システム系における手数料は最小化する。
(さらにSymbolビルドイン機能のアグリゲートトランザクションでトランザクションサイズを圧縮する方法が考えられる。その場合手数料の精算が必要になる)
・プライバシーの考慮
パブリックチェーンで個別取引の秘匿すべき振出人や受取人・金額などは管理しない。
上記のNET値から求めた精算トランザクションが刻まれれ公開されることになる。
個別取引の金額などプライバシー問題がクリアされる。
プライベートチェーン利用による取引情報の秘匿化
・プライバシーの考慮
個別取引の金額、振出人、受取人などの取引情報は、個別取引の関係者に公開範囲を絞る必要があるため、各行間を結ぶプライベートチェーンで管理する。
この時、パブリックにおける該当小切手のステータス変更と不可分に、プライベートチェーンの取引を行う。
下記図の#1の個別取引を例に整理しましょう。
A行のユーザが降り出した金額50の小切手が、B行のユーザが受取とったケースです。
A-B間のみに構成されるプライベートチェーン上で、
・小切手を発行人Aから受取人Bに移管
該当トランザクションには、発行人、受取人、小切手金額等が刻まれる。
ただし他行D・Cは取引の全容は把握できない。
# | A | B | C | D |
---|---|---|---|---|
1 | -50 | 50 | ||
2 | -40 | 40 | ||
3 | -50 | 50 | ||
4 | 60 | -60 | ||
5 | -10 | 10 | ||
6 | 40 | -40 | ||
7 | -60 | 60 | ||
8 | -30 | 30 | ||
NET | 40 | -80 | 60 | -20 |
上記の通り、ハイブリッドチェーンの展開により、既存の中央集権システムでは困難であった課題が解決することが期待でききます。
データの配置
データの配置としては以下の通り、組織間で公開すべき情報をパブリックに、
秘匿すべきプライバシーに関わる情報はプライベートに保管することになります。
# | Client | Public | Private |
---|---|---|---|
利用者 | 小切手の秘密鍵 小切手の公開鍵 | 小切手の公開鍵 小切手ステータス | 小切手の公開鍵 小切手の振出人 小切手の受取人 小切手の金額 など プライバシー情報 |
組織間 | ー | ネッティング情報 (精算結果) | ネッティング送金元 ネッティング受取先 ネッティング金額 |
おわりに
小切手のプラクティスは、日立さんの勉強会で例にでたものです。
イーサリアムベースのスマコンプラットフォームでデモも見せていただきました。
パブリックチェーンと、プライベートチェーンを駆使したハイブリットチェーンでのみ実装可能なシステム・サービスかと思います。
このように複雑な商取引が、ブロックチェーン上で、まずは半自動化され、業務効率という成果をあげる時代が訪れるでしょう。
ブロックチェーンに付きまとうパブリックチェーンによるDAOという崇高な目的も刺激的ですが、企業やコミュニティ、コンソーシアムなど組織体で扱われるシステムにおける、既存システムの課題を解決するためには、プライベートチェーンをベースに、パブリックの旨味を組み込んだブロックチェーン構築が不可欠になるでしょう。
この構築においては、システム/サービス開発会社が活躍することになるのです。
一部システム/サービス開発会社の営業は、ブロックチェーン開発におけるマネタイズが見いだせないとの話を平易に口に出す者もいますが、DAOに至るまでの長い期間、開発や導入支援のビジネスは事欠かないでしょう。
Symbolにおいては、あらかじめパブリックとプライベートを利用可能なハイブリットチェーンが提供されます。
まさに企業システム/サービス開発に欠かせぬプラットフォームとなるでしょう。