ぼろくそに言われたブロックチェーンを全力でフォローしてみる

Takanobu ()
元ネタはこちら。

日本取引所グループがブロックチェーンをぼろくそに言ってる
http://mitomemel.hatenablog.com/entry/20160901/1472703920

とりあえず、トピックだけ立ててみて私も勉強しつつ、おいおい追記していこうと思います。
まず最初に、ブロックチェーン技術は取引所そのものを破壊するパワーを持つ可能性がありますが、
取引所自体の運用には不向きかもしれませんね。

基本的にはご指摘お願いします調で進めたいと思います。


Tanugami ()
>先進国の上場株式市場で求められる処理性能は秒間数千〜数万件くらいだが、
>負荷テストの結果は秒間数十〜百件程度だった。
>ブロックチェーン実装の開発元のデモで示されてる数値はあてにならない

>各ノードのシステム時刻の差、外部データを取得する処理、
>乱数を用いた処理などの非決定的要因でノード間の差異が生じて認証に失敗する場合がある。
>これらの処理は証券取引には必須なので大問題。
>そういう処理を特定のノードだけにやらせるという手もあるが、そのノードが単一障害点となるので本末転倒

>可用性、データ復旧の容易さは良さげ。ただし前述の単一障害点の問題が無ければの話


この辺りはmijinでクリアしてそうですが、ワシはただのNEM好きな非技術者なので
Takanobu先生のご意見を伺いたいところですw

Takanobu ()
証券市場における「取引」では、その機能上の工夫のほとんどが、取引が成立する前のプレトレード処理におけ る「注文を如何に効率的にマッチングさせるか」にある。

例えば、太陽光発電を取引したいと考えると、家の屋根の数だけ電気を売りたい人が存在します。また、コンセ ントの数だけ電気を買いたい人(モノ)が存在します。
そのような環境の中では、効率的なマッチングはあまり重要ではありません。証券市場という囲い込まれた環境 が特定の組織に認められた会社だけのものではなく、
それこそ、ブロックチェーンで行動がしっかりと監視された企業が参加できるものにすれば、より広い範囲から の投資を受け付けることができるかもしれません。

Takanobu ()
過去の任意の時点における証券等の保有者・保有残高について、当該時点においてスナップショット情報の取得等の特段の対応をせずとも、遡及的に確認可能である。

これは、ブロックチェーンの特徴などではなく、テーブル設計次第だと思います。
例えば注文履歴テーブルなど、私が設計する場合、その時の購入金額なども書き出します。マスタテーブルとは別に。
そうしないと、金額がころころ変わる商品をキャンセルした時とか大変になりますね。

Takanobu ()
乱数発生を要する複雑な計算処理を行う場合、各ノードが独自に計算する事で異なる結果となる可能性がある

一つの解決策ですが、どのアカウントから乱数を発生させたのかをトランザクションIDで管理しておけば、ノード間伝播中にPBFTで淘汰されると思うのですが。
mijinでも同一アカウントからの複数トランザクションは排除される傾向にあります。勘定系システムでは運用上ありえないということなのでしょう。
逆に、IoT などで同一アカウントからの機械的に連続送金などを検討する場合は注意が必要です。

Takanobu ()
特に Hyperledger について、このハイトラフィックテスト時におけるシステム稼働状況について分析したところ、CPU 等のシステムリソースには余力がある状態であり、スマートコントラクトを 1 件ずつ直列実行していること等がボトルネックとなっていることが分かった

金額には線形性がありますが(足し算、引き算の順番が逆でも成り立つ。)
プログラムに線形性はないので、当然の現象ですね。
チューリング完全と言いつつもマルチスレッド対応していないということでしょうか。

上記理由のために数値計算のみにも直列実行しかできないとなると、そのテクノロジー自体に欠点があるようにも思います。

Takanobu ()
各金融機関が共通の台帳を保有しつつも、取引内容等について他社に対して情報を秘匿することが可能である。ただし、これらは Hyperledger を用いた環境でのみ実現できた内容であり、金融市場インフラへの適用において求められる秘匿性要件を満たせる DLT 規格は、現状では極めて限定的であると考えられる。

mijinにおいてもAPIレベルでアクセス制限が可能になりそうなので、これは実現可能でしょうか。

Takanobu ()
参考資料:
なぜ東証は処理時間を1ミリ秒縮めるコトにこだわるのか~arrowhead以前・以後で変わったもの
https://enterprisezine.jp/iti/detail/3199

fusan ()
初めましてfusanです。
漠然としてますが、ブロックチェーンの機能を最大化する設計が必要なんだろうなって思いました。現行のシステムとブロックチェーン中心に置いた一から作り直したシステムと比較してほしいなって。これは妄想ですが証 券界の全体の構造を変えることにもなるかもしれませんし全体として否定的な表現になりやすいのかなと感じま した。

積極的にブロックチェーンを取り入れた仕組みができてくることを楽しみしています。

さらなる、技術視点の論考を楽しみにしております。

BokujyuUmai ()
はじめまして墨汁うまいと言います。今日は忙しいので全てを把握するのに少し時間かかりそうですが、海外に拡散したいと思います。 それでは後日

tesseract ()
検証ノードを保有する各金融機関において、既存の一般的な金融 IT システムと同様にソフトウェアに対する不正・改ざんが適切に防止され、かつ暗号化された台帳 及びトランザクションについて、対応する秘密鍵なしに復号することは不可能であるとみなせる場合 19、これらの実装により、各金融機関が共通の台帳を保有しつつも、取引内容等について他社に対し て情報を秘匿することが可能である。

てことは、検証ノードを保有する各金融機関がソフトウェアに対する不正・改ざんを行ってしまえば他社の情報を抜き取り放題ってことですよね?そんな状態で秘匿できると言っていいんでしょうか?
 検証ノードはトランザクションの検証をする必要がある以上、データを復号する仕組みが必要。ソフトを解析して復号方法を見つけることを原理的にどうやっても防ぐことができない。つまり秘匿性がシビアに要求される分野ではブロックチェーンは採用不可能では?

各金融機関には検証ノードを置かず、金融市場インフラ運営者だけが検証ノードを運用するのなら、金融機関に他社の情報が流れることは無くなりますが、それってブロックチェーンの意味あるの?

tesseract ()
まず最初に、ブロックチェーン技術は取引所そのものを破壊するパワーを持つ可能性がありますが、
取引所自体の運用には不向きかもしれませんね。

パブリックのブロックチェーンはビットコインのように世界を多少変えるパワーがあるかもしれませんが
(とはいえ「サラリーマンも、銀行も、会社も、国家も絶滅させる」とか話盛りすぎだろとしか思えない)、
プライベートのビットコインに取引所そのものを破壊するパワーがあるんですかね?
ブロックチェーン推進する人でも従来のシステムよりも低コストになる程度のことしか言ってないと思うんですが。

ブロックチェーン推進の人はわざとか不注意なのかパブリックとプライベートを混同する人が多くて注意が必要だと思います。

LHJ ()
お久しぶりの LHJ さんです。LHJ さんの「上から目線」「下から目線」「ポエム」の所感を以下に記載します。

上から目線:
・このご時世で「新しいもの使って大丈夫なんやろか?」「COBOL言語でないと金融機関の基幹システムは 運用不能」な状態。
・主要シンクタンク&ベンダー(IBMを含む)の意見はやはり強い。詳しい方は沢山いらっしゃる。
・パブリックブロックチェーン技術を使うのは怖すぎ。そんなことは当たり前。1円でも間違ったらどえらい騒 ぎになる。通貨の運用管理とはそういうもの。

下から目線:
・Hyperledger はLinux財団がバックについているので安心感がある。だから検証対象の1つとした。The Internet における Linux財団の功績は計り知れない
・主要シンクタンクのコンサルタントは本当に一生懸命まとめたと思う。あの限られた時間での成果物としては 素晴らしい。
・成果物にはステークホルダー(利害関係)もあるので書けないところもあるはず。(これが世の中というもの )

ポエム:
・30年後になくなる業種の1つに「金融機関」が入っている。これは情報強者なら知っている。
・インターネットジャイアント(Google,Apple 等)の開発速度の速さ、買収先の正確性、サービス(マネタイズ)の巧みさで金融機関は圧倒的に劣っている。
・ここで言う金融機関は、国内外の金融機関、投資銀行及びヘッジファンドも含まれる。

・IoT, IoE の世界は、インターネットジャイアントとスタートアップが制する。
・彼らは R&D が活発で、確かなアルゴリズムを用いてコードを書き、ライブラリを 用意し、使いやすいような仕組みでサービスをリリースする。
・当然ながら、彼らは必ず決済手段を用意する。しかし、インターネットジャイアントやスタートアップは賢い ので複数の決済手段を提供する。
・それはクレジットカード、Paypal、電子マネー(Suica 等)、ApplePayである。Bitcoinなどの暗号通貨を加えて良いかはまだ発展途上である。
・となると、まずはキング・オブ・クリプトカレンシーである Bitcoin が IEEE , PCIDSS などの国際規格等の認定が必要である。
・国際規格等で認定されないと決済業者(金融機関を含む)が採用可否を行う場合、根拠不足で稟議が通らない 。大手になればなるほどこれが現実。

・Bitcoin を使える店舗がワールドワイドで広がることが必要。Bitcoin以外の暗号通貨は別セグメントとして整理 する。
・Bitcoin で寄付する文化がワールドワイドで広がることも必要。
・アフリカの小さな村にピンポイントで寄付できる世界をインターネットジャイアントが作ってくれるはずだ。
・facebookの創業者がアフリカにインターネットへ!のプロジェクトが失敗(ロケットの爆発)は痛手 だった。

・Bitcoin でトレードするのも良いが、店舗で使ったり、寄付したりする取り組みが大切。
・サービス(何をお客様に提供するのか?)が重要で、その裏で動いている技術(ブロックチェーン技術を含む )なんか一般の方にとっては関係ない。
・実際に我々が使っているATMの中身(技術)を知っているエンジニアがどれだけいるのだろうか?と思考し てみよう。
・ブロックチェーン技術を使えば既存システムを安価に運用できるといってもリプレースの問題がある。
・このリプレースにどれだけのプロジェクトコストと PM & IT エンジニアがダイブするのか心配である。
・だから、既存システムと新しいシステム(ブロックチェーン技術)のアダプタが必要だ。これは mijin を使って頑張っている企業がおられる。

まとめ:
・ブロックチェーン技術を使った IoT サービス(ユースケース)を見つけに EU諸国に行きたいから、LHJさんに寄付をしてください(そこかよ!)
・おそらく、面白いユースケースを世に出してくれるのはEU諸国のはず。シリコンバレーではない。彼らはA I / AR /VR に注力している。

Takanobu ()
Hyperledgerの仕様がよく解る内容ですね。

>負荷テストの結果は秒間数十〜百件程度だった。
mijin は地理的に分散された環境において秒間4桁を捌けるとの情報なので、「先進国の上場株式市場が求める」要件クリアはまだのようですね。

>ブロックチェーン実装の開発元のデモで示されてる数値はあてにならない
場当たり的なブラックボックステストだったのでしょうか。「測定に際しての前提が必ずしも明確ではない」など性能要件を開発元に明示していなかった可能性があります。

>各ノードのシステム時刻の差、外部データを取得する処理、
>乱数を用いた処理などの非決定的要因でノード間の差異が生じて認証に失敗する場合がある。

原文を読んでみると「満期処理等のタイムトリガーイベントの処理」についての話のようです。
トランザクション内にトリガーイベントを埋め込めるタイプのブロックチェーンのようで、分散環境それぞれに自律的に組み込んでいるようですね。
mijinではそういうことはできないので、エージェントサーバなどを作ってトランザクションIDで一括管理することになります。
ブロックチェーンの弱点ではなくて、単なる設計上のバグですね。

>そういう処理を特定のノードだけにやらせるという手もあるが、そのノードが単一障害点となるので本末 転倒
もちろん、mijin系で実装した場合もエージェントサーバがこければ、障害は発生するでしょう。
でも、勘定が狂うことはありません。これが本来ブロックチェーンが重要視する点だと思います。
mijinはその思想に忠実で余計な要素を極力排除しているように思います。

一方、プログラムの実行が改ざんされないような機能までブロックチェーンに持たせようとすると、
上記のように、分散環境においての時刻、ユニークIDの誤差などが問題となるのかもしれません。

>可用性、データ復旧の容易さは良さげ。ただし前述の単一障害点の問題が無ければの話
うーん、単一障害なしに、データ復旧が必要ってどんな時なのでしょうかね。

今のところ、こんな感想です。

Takanobu ()
fusan さん初めまして。

>ブロックチェーンの機能を最大化する設計が必要なんだろうなって思いました。
今回のレポートはその方向ではなかったようですね。ただ、あまりにも反響が大きく、レポートもあまり読まずに
「やっぱりブロックチェーンってダメか」みたいな声があちこちで聞かれるようになったのは少し残念でした。

ブロックチェーンを取り入れたら、こんなこともできる。的なレポートも期待したいですね。
今後ともよろしくお願いします。

Takanobu ()
墨汁うまいさん、はじめまして!
今後ともよろしくお願いします。

Takanobu ()
tesseract さんはじめまして。

すこし回りくどくてややこしい説明ですよね。
>既存の一般的な金融 IT システムと同様にソフトウェアに対する不正・改ざんが適切に防止され

他社の情報が「対応する秘密鍵なしに復号できない」ことは最新の暗号アルゴリズムであれば問題ないはずなので、
この秘密鍵を他社に漏らしてしまうようなソフトウェアの不正・改ざん被害を受けないことが前提条件、
と言いたいのだと思います。

つまり、ウィルスなどにより秘密鍵が漏れて外部に流出した場合、自社の情報が漏れることはあるが、
自社の検証ノードに不正を行っても、他社の情報が抜き取れるわけではない、という理解です。

今後ともよろしくお願いします。

tesseract ()
akanobuさんコメントありがとうございます。

「自社の検証ノードに不正を行っても、他社の情報が抜き取れるわけではない、という理解です。」というのは間違いです。
検証ノードは復号する方法を知っているわけです(でないと検証できない)。だから当然検証ノードは復号するための鍵をもっていて、
ウイルス感染なんかしなくてもソフトを解析すれば復号するための鍵はわかるはずです。難読化とかすれば障壁にはなるでしょうが、
原理的に情報の抜き取りを防ぐことは出来ません。ちなみに、情報を抜き取るためなら秘密鍵は必要ないのでは。

ゲームソフトの不正コピーによってどんなに損害をこうむっても、完璧なコピーガードソフトがつくれないのとおんなじです。

Takanobu ()
ご指摘ありがとうございます。

>検証ノードは復号する方法を知っているわけです
検証ノードは他社の秘密鍵も保有していて、メモリ解析などすれば容易に抽出可能ということですね。
了解しました。運用方法には課題が残りそうですね。

Takanobu ()
>ブロックチェーン推進の人はわざとか不注意なのかパブリックとプライベートを混同する人が多くて注意が必要 だと思います。

たしかに混同して説明してしまっている人が多いですね。私もそうかもしれません。
ただ、mijin と NEMに関して言うとプライベートに収まりきらない可能性を感じます。

mijinの実証実験においてもxemを使用しないようにとのコメントがありますが、
将来的にmijin上のxem はNEM上のxemと交換できるかもしれません。
(具体的にはNEMのxemを購入してmijinの流通を走らせるイメージ)

そうなると、プライベート上で処理されたトランザクション結果をパブリック上で記録していくことも可能になります。
開発途上ですが、今後の連携に期待したいところです。

Takanobu ()
>「サラリーマンも、銀行も、会社も、国家も絶滅させる」
この表現は非常に煽り感がありますよね。

国家がもつ物理的拘束力を、実体の存在しないデジタルのブロックチェーンにどう持たせるのか?
例えば10万年保管する必要のある放射能制御棒を、ブロックチェーンでどう管理するのか。
その鍵となるのが、自律分散組織です。

そこでは、制御棒を守るのはアルゴリズムになります。
そのアルゴリズムはドローンを自動制御し、装備されたマシンガンで侵入者を銃殺します。
このアルゴリズムに賛同する人は喜んでこのブロックチェーンに出資します。

そのドローン制御システムはIoT技術ですべての装置がネットワーク化されています。
ネットワークが遮断されていることもあるでしょう。ただ、そのネットワークを復旧した者には高額の報酬がブロックチェーンより支払われます。
弾薬補充、充電、センサ交換、クリティカルな障害に近づくほど高報酬となるように、
すべてメンテナンスにはスマートコントラクトによって報酬額が決定されています。

実現する日が来るのでしょうか。
夢のような話ですね。