見出し画像

【プライベートブロックチェーンが未来を作る】ブロックチェーンに何を記録するか

ここからは、設計開発論を書いていく。

タイトルが「プライベートブロックチェーンが未来を作る」であることから、一般的にプライベート型に分類される、Hyperledger Fabricをベースに話を進めていく。

パフォーマンスチューニングの章で、一部Hyperledger Fabric固有の説明をするが、それ以外の部分は極力抽象化して、どのブロックチェーンプラットフォームにも適用できるように説明しようと思う。

データを厳選せよ!

ブロックチェーンにデータを記録するという行為は、オフチェーンにデータを記録するよりも圧倒的にコストが高い。

記録する際に各ノードの検証作業が必要になるため、一定の処理時間が必要になるし、一度記録したらデータは変更困難になる。
まったくもって開発者泣かせである。
そのため、ブロックチェーンに記録するデータは厳選する必要がある。

一般的にデータには、”状態を直接的に表現するもの”と、”それを補強するもの”の2種類がある。不動産を例にすると、土地権利証が状態を直接的に表現するデータであり、契約書がそれを補強するものである。

ブロックチェーンは、データの正当性を担保する技術だと言われるが、そのためにはこの2種類のデータが同時にブロックチェーンに記録されていなければならない。

ブロックチェーンに記録するデータを決めるには、この関係性を意識することが重要だ。この関係性を無視すると、データの正当性が揺らぐ。

トークンを生み出すという行為を例にとって説明しよう。

トークンの最小限の構成要素は「識別情報」「価値」「所有情報」である。この3つが表現できていればトークンとして使うことができる。

// トークン情報
{
    'docType': 'PaymentToken'
    'tokenCode': 'xToken',
    'amount': 100,
    'owner': 'hanako.yamada'
} 

ここまで表現できれば、トークンの現所有者と保有額は表現できる。しかし正当な所有者であることまでは証明できない。

そこで、そのトークンを所有するに至った経緯もブロックチェーンに記録する。そして、トークンと経緯情報をリンクさせる。

// 経緯情報
{
    'id': '0000000001',    
    'docType': 'SendRequest',
    'sender': 'taro.yamada',
    'receiver': 'hanako.yamada',
    'token': 'xToken',
    'amount': 100,
    'requestedDate': '2018-09-13 10:30:14',
    'requester': 'taro.yamada',
    'status': 'approved'
}

// トークン情報
{
    'docType': 'PaymentToken',    
    'tokenCode': 'xToken',
    'amount': 100,
    'owner': 'hanako.yamada',
    'refer': '0000000001'
} 

このような形で記録することによって、権利情報を補強することができる。この補強によって、データは確かなものとして扱えるのだ。

慶応大学の斉藤教授が進めているBBc-1の履歴交差という仕組みは、この補強データを他のトランザクションに含めることで、補強度合いをさらに強める仕組みである。
https://gihyo.jp/dev/serial/01/bbc1/0002

言い換えると、これ以外の情報はオフチェーンで管理したほうがよい。
AIを使った分析情報、日々送られてくるIoTデータなどは、ブロックチェーンに記録しないほうが良いと思う。

データを判断系の情報と執行系の情報に分けて考え、ブロックチェーンには執行系の情報のみ記録するとよい。執行系の情報であればデータ変更が起きる可能性は極めて低く、データ変更が困難なブロックチェーンでも取り扱うことができるからだ。

まとめ
1.ブロックチェーンにデータを記録するという行為はコストが高い
2.ブロックチェーンには執行情報のみ記録すること
3.所有に関するデータと補強データをセットで記録すること

いいなと思ったら応援しよう!