ブロックチェーンの本質ってなんだろう?
どうも、ぺろりんです。
ブロックチェーンの本質的なことってなんでしょうか?
あたらしく出現した概念ですが、より本質的な特徴を残して抽象化しておくことは今後応用するにあたって非常に重要だと考えています。
ブロックチェーンの起源がBitcoinという仮想通貨(暗号通貨)であったことから、すぐに思いつく類題として種々の通貨という応用がなされてきました。
今はまだまだ黎明期ですが、ちょくちょく通貨以外のものにも応用されていたりします。
応用するにしても、どんな応用先なら「ブロックチェーンであること」が活きるのでしょうか?
「ブロックチェーンだからこそ」できること、「ブロックチェーンでないと」できないことってなんでしょうか?
ブロックチェーンの応用についての考えとして、イケダハヤトさんが
「『価値のある何か』の価値を可視化し、売買できるようにする。」
ということについて解説しておられ、これもなるほどなと思いました。
このようにブロックチェーンの応用を考えるうえで、「ブロックチェーン」という概念をより抽象化して特徴づけておくことが助けになったりします。
今回はこれについて考えてみようと思います。
以下のようなデータの集合を「ブロックチェーン」と呼ぶ。
(1)分散型ネットワークの中で
(2)データに順序がつけられていて、
(3)その順序はネットワーク参加者のみによって保証されている。
というのが、しばらく考えてみてわたしが至った結論です。
実はブロックチェーンの定義は、日本ブロックチェーン協会(JBA)という団体によって提案されています。
ここでは以下のように定義しています。
1)「ビザンチン障害を含む不特定多数のノードを用い、時間の経過とともにその時点の合意が覆る確率が0へ収束するプロトコル、またはその実装をブロックチェーンと呼ぶ。」
2)「電子署名とハッシュポインタを使用し改竄検出が容易なデータ構造を持ち、且つ、当該データをネットワーク上に分散する多数のノードに保持させることで、高可用性及びデータ同一性等を実現する技術を広義のブロックチェーンと呼ぶ。」
この定義ではデータ構造の他にも、合意が覆る可能性の収束性だったりいくつかのポイントを含めつつビザンチン障害やハッシュだとか具体的な言葉もいくつか入れられています。
個人的にはこれはまだ不満がありまして、できる限り少ない要素に言及することで本質的な部分を明らかにし、より応用範囲を広げるようなブロックチェーンのとらえ方をしたいところです。
この考えのもと要素を削ってみた結果として上記を提案したいわけです。
いくつかのHPだったり本だったりを参考に考えてみましたが、やはり
(1)分散型ネットワーク
(2)データの順序付け
(3)合意
というポイントははずせないかな、と感じました。
ただし上に挙げたわたしの考えでは、データが順序付けられている必要はありますが、それが時系列である必要はないですし(何の順番でもいい)、並べ方はハッシュを必ずしも使う必要はないと考えています。
データもべつに取引のようなやり取りのトランザクションである必要もないと考えています。
これくらい情報を落として抽象化しておくと、もっといろんな応用先が見つかるんじゃないかなと考えています。
あとはこのような特徴があるものは何か、このような特徴のデータを使う/使えるものは何か、ブロックチェーン技術により実装できるか、という観点から考えることで応用を考えていきたいところです。
(参考)
・「ブロックチェーンの定義」を公開しました(JBA)
・「ブロックチェーン 仕組みと理論 サンプルで学ぶFinTechのコア技術」
・なんでもかんでもブロックチェーン?何をもってブロックチェーン?ブロックチェーンの用語の混乱を整理してみる(議論たたき台)(ビットコイン研究所ブログ)
個人的には先ほどの議論をさらにすすめて、数学的な定式化をしておきたいと考えています。
現状わたしがたどり着いているのは以下のような内容です。
「データの集合Dと順序Hから成る全順序集合(D,H)をブロックチェーンと呼び、全順序Hにより順序を構成する手続きをコンセンサス・アルゴリズムと呼ぶ。」
このへんがブロックチェーンの数学的定式化になるのではないかなぁ、という感じです。
まだ不満はあって、分散型ネットワークの参加者により合意される(第三者を必要としない)ことをなんとか取り入れたい。。
ブロックチェーンにより改ざんが難しいことの数学的根拠なんかはググると出てくるんですが、ブロックチェーンを集合論的に、ちゃんと数学的に定義している議論がなかなか見つからない!
これを読んでいる方(が居るかわかりませんが)で、数学的な定義や定式化を見つけた方、ご存知の方がいらっしゃればぜひとも教えていただけると歓喜します。
ちなみに、数学的に定式化できると何がいいか?
もしブロックチェーンをきちんと数学的に定義できてこの定義が既知の定義に当てはまるものであれば、それはこれまで数学の研究の中で得られた(この定義から導かれる)既知の一見非自明な定理がすべて適用できるわけです。
これはブロックチェーンを応用する強力な助けになるはずです。
数学というのは考えの枠組みを作っているわけで、例えるなら、チャートシートを作っているわけです。
このチャートシートを使えば、
「あなたのいう〇〇は、定義Aにあてはまりますか?」→yes/no
みたいなことを続けることで、最終的に
「ではあなたのいう〇〇は、定理X、Y、Zという性質があります」
ということが一瞬でわかってしまいます。
このようなことから、わたしとしてはより応用範囲を広げられるような数学的なとらえ方をしておくことが重要だと考えています。
これができれば非自明な応用先が瞬時にわかるかも知れません。
応用範囲を広げるために、ブロックチェーンをより抽象化してとらえ、
(1)分散型ネットワークの中で
(2)データに順序がつけられていて、
(3)その順序はネットワーク参加者のみによって保証されている
ようなデータの集合、というくらいに考えるのがよいのではとわたしは考えています。
さらに進めて、数学という武器を使うためにもブロックチェーンという概念を数学的に定式化しておきたくて以下のように考えてみました。
「データの集合Dと順序Hから成る全順序集合(D,H)をブロックチェーンと呼び、全順序Hにより順序を構成する手続きをコンセンサス・アルゴリズムと呼ぶ。」
が、まだこの定義では不満が残る。。
というおはなしでした。
ブロックチェーンの本質的なことってなんでしょうか?
あたらしく出現した概念ですが、より本質的な特徴を残して抽象化しておくことは今後応用するにあたって非常に重要だと考えています。
ブロックチェーンの起源がBitcoinという仮想通貨(暗号通貨)であったことから、すぐに思いつく類題として種々の通貨という応用がなされてきました。
今はまだまだ黎明期ですが、ちょくちょく通貨以外のものにも応用されていたりします。
応用するにしても、どんな応用先なら「ブロックチェーンであること」が活きるのでしょうか?
「ブロックチェーンだからこそ」できること、「ブロックチェーンでないと」できないことってなんでしょうか?
ブロックチェーンの応用についての考えとして、イケダハヤトさんが
「『価値のある何か』の価値を可視化し、売買できるようにする。」
ということについて解説しておられ、これもなるほどなと思いました。
このようにブロックチェーンの応用を考えるうえで、「ブロックチェーン」という概念をより抽象化して特徴づけておくことが助けになったりします。
今回はこれについて考えてみようと思います。
ブロックチェーンの特徴づけ
以下のようなデータの集合を「ブロックチェーン」と呼ぶ。
(1)分散型ネットワークの中で
(2)データに順序がつけられていて、
(3)その順序はネットワーク参加者のみによって保証されている。
というのが、しばらく考えてみてわたしが至った結論です。
実はブロックチェーンの定義は、日本ブロックチェーン協会(JBA)という団体によって提案されています。
ここでは以下のように定義しています。
1)「ビザンチン障害を含む不特定多数のノードを用い、時間の経過とともにその時点の合意が覆る確率が0へ収束するプロトコル、またはその実装をブロックチェーンと呼ぶ。」
2)「電子署名とハッシュポインタを使用し改竄検出が容易なデータ構造を持ち、且つ、当該データをネットワーク上に分散する多数のノードに保持させることで、高可用性及びデータ同一性等を実現する技術を広義のブロックチェーンと呼ぶ。」
この定義ではデータ構造の他にも、合意が覆る可能性の収束性だったりいくつかのポイントを含めつつビザンチン障害やハッシュだとか具体的な言葉もいくつか入れられています。
個人的にはこれはまだ不満がありまして、できる限り少ない要素に言及することで本質的な部分を明らかにし、より応用範囲を広げるようなブロックチェーンのとらえ方をしたいところです。
この考えのもと要素を削ってみた結果として上記を提案したいわけです。
いくつかのHPだったり本だったりを参考に考えてみましたが、やはり
(1)分散型ネットワーク
(2)データの順序付け
(3)合意
というポイントははずせないかな、と感じました。
ただし上に挙げたわたしの考えでは、データが順序付けられている必要はありますが、それが時系列である必要はないですし(何の順番でもいい)、並べ方はハッシュを必ずしも使う必要はないと考えています。
データもべつに取引のようなやり取りのトランザクションである必要もないと考えています。
これくらい情報を落として抽象化しておくと、もっといろんな応用先が見つかるんじゃないかなと考えています。
あとはこのような特徴があるものは何か、このような特徴のデータを使う/使えるものは何か、ブロックチェーン技術により実装できるか、という観点から考えることで応用を考えていきたいところです。
(参考)
・「ブロックチェーンの定義」を公開しました(JBA)
・「ブロックチェーン 仕組みと理論 サンプルで学ぶFinTechのコア技術」
・なんでもかんでもブロックチェーン?何をもってブロックチェーン?ブロックチェーンの用語の混乱を整理してみる(議論たたき台)(ビットコイン研究所ブログ)
ブロックチェーンの数学的な定式化
個人的には先ほどの議論をさらにすすめて、数学的な定式化をしておきたいと考えています。
現状わたしがたどり着いているのは以下のような内容です。
「データの集合Dと順序Hから成る全順序集合(D,H)をブロックチェーンと呼び、全順序Hにより順序を構成する手続きをコンセンサス・アルゴリズムと呼ぶ。」
このへんがブロックチェーンの数学的定式化になるのではないかなぁ、という感じです。
まだ不満はあって、分散型ネットワークの参加者により合意される(第三者を必要としない)ことをなんとか取り入れたい。。
ブロックチェーンにより改ざんが難しいことの数学的根拠なんかはググると出てくるんですが、ブロックチェーンを集合論的に、ちゃんと数学的に定義している議論がなかなか見つからない!
これを読んでいる方(が居るかわかりませんが)で、数学的な定義や定式化を見つけた方、ご存知の方がいらっしゃればぜひとも教えていただけると歓喜します。
ちなみに、数学的に定式化できると何がいいか?
もしブロックチェーンをきちんと数学的に定義できてこの定義が既知の定義に当てはまるものであれば、それはこれまで数学の研究の中で得られた(この定義から導かれる)既知の一見非自明な定理がすべて適用できるわけです。
これはブロックチェーンを応用する強力な助けになるはずです。
数学というのは考えの枠組みを作っているわけで、例えるなら、チャートシートを作っているわけです。
このチャートシートを使えば、
「あなたのいう〇〇は、定義Aにあてはまりますか?」→yes/no
みたいなことを続けることで、最終的に
「ではあなたのいう〇〇は、定理X、Y、Zという性質があります」
ということが一瞬でわかってしまいます。
このようなことから、わたしとしてはより応用範囲を広げられるような数学的なとらえ方をしておくことが重要だと考えています。
これができれば非自明な応用先が瞬時にわかるかも知れません。
まとめ
応用範囲を広げるために、ブロックチェーンをより抽象化してとらえ、
(1)分散型ネットワークの中で
(2)データに順序がつけられていて、
(3)その順序はネットワーク参加者のみによって保証されている
ようなデータの集合、というくらいに考えるのがよいのではとわたしは考えています。
さらに進めて、数学という武器を使うためにもブロックチェーンという概念を数学的に定式化しておきたくて以下のように考えてみました。
「データの集合Dと順序Hから成る全順序集合(D,H)をブロックチェーンと呼び、全順序Hにより順序を構成する手続きをコンセンサス・アルゴリズムと呼ぶ。」
が、まだこの定義では不満が残る。。
というおはなしでした。