2016年4月24日
今回は、IoVのネットワークプロトコルであり、インターオペラブルな世界の基盤になることが期待されているILP(Inter Ledger Protocol)について概説します。
ILPについてまず初めに知っておくべきことは、このプロトコルがTCP/IP,HTTP等のインターネットプロコルに強い影響を受けており、モジュール分割・階層化されたプロトコルになっているということです。
GitHubのILPアーキテクチャの紹介ページには次のような一文があります。
The Interledger architecture is heavily inspired by the Internet architecture described in RFC 1122, RFC 1123 and RFC 1009
ILPのアーキテクチャは、RFC1122(TCP/IP等)、RFC1123(HTTP等)、RGC1009(インターネットゲートウェイ)に記載されているインターネットアーキテクチャーに強く影響を受けています。
ILPのアーキテクトは、なぜこのような形式を採用したのでしょうか。その答えは、かつてTCP/IPがインターネットの標準プロトコルとして採用された過程を知ることでわかります。
インターネット誕生の歴史から学べることとは?
インターネットの原型は、米国防総省のARPA(Advanced Research Projects Agency)によって1969年に構築したARPANETです。ご存知の人も多いと思いますが、このARPANETは軍事用のネットワークで、世界で初めて分散型のパケット交換方式を実装したコンピュータネットワークです。
しかし、1969年当時は、「TCP/IP」は存在していませんでした。
ARPANETは、大学などの研究機関が参加したことで年々接続拠点を増やしました。1978年には実験が正式に完了し、実験ネットワークから運用ネットワークへ移行したと言われています。
そのような中、1970年ごろに「UNIX」が誕生していました。UNIXは、1980年にOSとしては世界で初めてソースコードを公開し、オープンソースのOSとなりました。
また、1974年に「TCP/IP」と「Ethernet」がそれぞれ開発されました。
1970年代という時代は、世界に大きな影響を与えるコンピューティング技術が続々と生まれる時代だったのです。ブロックチェーン関連の技術が生まれた2010年代とどこか似ています。
さて、ARPANETは、当然ながらネットワーク処理に関する規定を定めていました。 Interface Message Processor(IMP)、Network Control Program(NCP)と呼ばれるものでした。しかし、それらよりも、より細かくモジュール化・階層化したTCP/IP※をベースに、ネットワークシステムの構成を刷新したのです。これは、柔軟性や拡張性を担保するためだったと言われています。(※ TCPは「端末間の接続」、IPは「通信経路の選択・転送」に機能を分割しています)
TCP/IPを採用したARPANETは、Ethernetとオープンソース化されたUNIXと結びつき、現在のインターネットの原型となりました。1980年代後半から、ARPANETは全米科学財団(NSF:National Science Foundation)の資金援助を受けNSFNETに継承され、1990年に正式に解散し、その役割を終えました。そして、1990年代に入ってから、商用インターネットが登場しました。
このようなインターネットの歴史から、ILPのアーキテクトは学びました。IoVのための分散ネットワークの中核技術は、新サービスや新技術への対応要請に応えやすいものであること、つまり機能が分割されて階層化されたプロトコルであることが望ましい、ということを見出したのです。
ILPが機能分割・階層化されたプロトコルである必要はあるのか?
ところで、ここで一つの疑問がわきます。インターネットのプロトコルがそうであったからと言って、ILPが本当に機能分割・階層化されたプロトコルである必要があるのかということです。
ここで、ILPを用いたインターオペラブルな世界が実現し始めた世界を単純化したイメージ図をご覧ください。
インターオペラブルな世界というのは、異なるサービスや事業が相互に利用しあえる世界です。上図で言えば、あるスマートコントラクトサービスが、ブロックチェーンや分散元帳やその他のインターネット上のネットワークを通して別のサービスを利用しているということです。
この世界では、異なるサービス同士でやりとりするデータの形式や手続きが共通化されている必要があります。これまでも業界ごとに送受信する電文形式や手続きが標準化され続けてきていますが、それがより広範囲になるイメージです。例えば、金融業界ではSWIFT ML、FIX、全銀ネットなど、それぞれの標準フォーマットが多くありますが、これらは、将来的にISO20022という国際標準に統一されていくものとみられています。ILPの誕生によって、このような動きが今後多くの業界で、世界規模でスピードアップしていくことが期待されます。
下図は、「スピーディでほぼ無料の送金/為替ネットワーク」の業界標準化が進み、ILPによってインターオペラブルになっている世界のイメージです。
上図では「FXと決済」というカテゴリーでひとつの標準化のイメージを記載しましたが、今後は業界の壁を超えてこのような新たな標準化が推進されていくでしょう。
当然、その過程においては現在存在していない新サービスや技術が生まれることも想像されます。そのためにも、ILPは機能分割されて、階層的であることで将来の変化に対応できるものになっていることが望ましいと考えられます。
ILPの機能とは?
それでは、最後にILPの機能を見てみましょう。
ILPは、4つの階層を持ち、それぞれの各階層にモジュールを保持できるように構成されています。
Application層 :送金元/送金先口座、送金額などのパラメータを指定する
Transport層 :エスクローによる送金保証の有無を指定する(TCPとUDPの違いに似ている)
Interledger層 :ILP packet を他のILPコネクターにルーティング・転送する
Ledger層 :ビットコイン等のブロックチェーン形式、ISO20022形式等の台帳更新手続きを指定する
上記のように、ILPは細かく階層的に機能を配置しており、様々な業界の標準化への対応が可能なように考慮されています。たしかに、インターネットの成り立ちが研究されているだけのことはあります。
今回の結論: 世界を変えたいなら、歴史に学ぶべし(それ、先人も同じように苦しんでましたから)