ブロックチェーンに位置情報を作る FOAM の概要と仕組み
FOAMというプロジェクトがあります。
ものすごく簡単に言うと、位置情報を参照できる標準プロトコルを作る・世界地図を作る、というプロジェクトです。
後述する課題を解決するためのプロジェクトですが、簡単に表現すれば「分散型、プライバシー保護された、正確、検閲されない、GPSの代わりとなるような位置情報のインフラ」を提供することがゴールです。
現時点で日本ではあまり有名ではありませんが、1年以上計画していたものが最近(2018年9月13日)Ethereumのメインネットで地図として稼働し始めて少し話題になっています。
FOAMが解決する課題
- 位置情報の符号化
例えば「東京駅」という物理的な場所をアプリなどで参照するときに、「東京駅」は場所情報として符号化することでプログラム内で参照することができます。
現状の物理的な位置情報をエンコードする(符号化する)規格にはどれも課題がある、というのが彼らの主張です。
詳しくはホワイトペーパーにいくつか書いてありますが、かいつまんで説明します。
例えばGoogleなどある主体が位置情報を支配しているのが問題である、といっています。これは、サプライチェーン・運送・運転など、安全や料金を決める基準となる情報を1つの主体に左右されていいのか、という課題定義だと認識しています。
また1つの主体にまかせていては情報が集まらない地域もあり、未だに世界の70%の土地(その50%は都市部を含む)の情報が集まっていない・更新されていないという国連の調査情報を根拠にあげています。
それに対抗して出てきたオープンソースの位置情報の符号化方式(OpenStreetMap (OSM))もMapbox, Apple Maps, PokemonGO, Foursquareなどに使われて勢いを増してきていますが、間違っている情報があるかもしれないし、情報が正しいとみんなで同意するような仕組みになっていません。
単語3つで、ある場所の位置を示すというルールの「What3Words」もライセンス料金がかかり、ブロックチェーン時代にそぐっていないとしています。
(rocky.silver.fundedなど三文字で特定の場所を示します。)
- ユーザエクスペリエンス
これはブロックチェーンインフラと互換性がある地図ツールがまだなくスマートコントラクトが位置情報を参照するのに非常に使いにくいという開発側の視点です。
将来的にはサプライチェーン・エネルギーマーケット・不動産・モビリティ・位置ゲームなどでスマートコントラクトが位置情報を参照するのを見越し、それらのdAppsから参照できる位置情報や地図のツールが必要ということのようです。
- 位置情報の検証
情報が正しいか検証可能な位置情報というのは現在ないとしています。GPSでの位置情報もいくつも欠陥があります。例えば衛生からの信号をキャッチしにくい、屋内だと不可能、またGPS搭載のデバイスはバッテリーを消費しやすくIoT時代に実用的でない、というような点です。
FOMAの解決策
解決策1 クリプト空間座標(CSC)
これらの課題に対する解決策として、FOAMでは新しく位置情報のコード化の規格をつくります。これはCSC(Crypto-Spatial Coordinate)と彼らは呼んでいますが、日本語にすると、クリプト空間座標、という感じになります。
CSCは「ジオハッシュ+Ethereumのコントラクトアドレス」で構成されています。
図. CSCの構造 (ホワイトペーパーより)
ジオハッシュとはブロックチェーンの文脈とか関係なく使われているもので、緯度と経度のセット 例えば「57.64911,10.40744」 から「 u4pruydqqvj」 のような文字列が導き出されるハッシュ関数です。
上の図でいうと左上の文字列になります。それに加えて右上の文字列がEthereumのコントラクトアドレスです。この2つをインプットにしてハッシュ関数を通し、さらにbase58に符号化して、一番下の最終的な文字列が生成されます。これがCSCになります。
つまりFOAMの地図では、この文字列がある値を示すということになります。この形式でスマートコントラクトが位置情報を参照できるようになります。
またブロックチェーンを活用したアプリなどで視覚的に見れるようにしています。
そしてその2つを活用して、TCRを導入しています。
解決策2 Spatial Index and Visualizer(SIV)
またわかりにくい固有名詞を付けられていてわかりにくいですが、いわゆる地図です。以下のようになっています。
https://map.foam.space/#/at/?lng=-74.0053928&lat=40.7054488&zoom=10.82 1
将来的にdAppsで使われるようになることを想定しています。
しかし現状ではCSCの情報が足りないので、どんどん更新していく必要があります。そのための方法として以下のTCRをとっています。
解決策3 Proof of Location
これはProof of ○○といっても、PoWやPoSのようなコンセンサスアルゴリズムではありません。TCRの方式で場所をみんなで確かめながら更新していけるということです。そしてそのTCRが視覚化されて上にある地図になっています。
現状はトークンセールに参加した人だけがこの地図の作成を行うことができますが、トークンセールに参加した人は必ず持ち分の25%以上をデポジットをしなければならないことになっています。(大口は50%以上)。達成するまではトークンを送信できないようにしてあります。
こうすることで最初にある程度がデータが集まっていくようにしています。
ではどのように実現するかというTCRの部分を説明していきますが、続きはTokenLab内のリソースを参照としているため、ご興味のある方はTokenLabを購読して頂ければと思います。