攻撃検知とRecoverabilityと99%攻撃耐性


#1

個人的にここ一番の衝撃

復帰力があれば抑止力が上がるのは当然で、じゃあどうやって復帰すべきタイミングを知るの?今攻撃されてるってどうやって知るの?というのが問題だと気付かされた。そしてビタリクはlight clientでそれができることをLamport先生の研究を引用して示したらしい(ソース不明)

メテルニッサさんのこの辺の議論から派生しての99%耐性という話題もあるのだけれど、formalにその機序を記述する能力が私にまだないので詳細は割愛。


stateless client, first-class witness data - paradigm
#2

ソースはこっちか
https://vitalik.ca/general/2018/08/07/99_fault_tolerant.html


#3

Multimodal なブロックチェーンについて

ブロックタイムの切りがいいときだけに誠実な参加者が必ずTxを必ず伝播させる「latency-dependent consensus」を想定したとき、それはsynchronousな設計なら51%攻撃耐性を持ち、asynchronousな設計なら33%攻撃耐性を持つ

一方で「threshold-dependent consensus」というブロックタイムを基準としないTx伝播[要出典]を採用するモデルもあり、light clientが全Txをリアルタイムに取得する前提において悪意あるノードを識別できる[要出典]と書いてあるように読めた

threshold-dependent consensusの仕様、threshold-dependent consensusにモードが切り変わる条件、そもそもモードの切り替えという解釈が正しいのか、ライトクライアントのオンライン性が必須かどうか

などを検証したい


#4

少なくともひとつのオブザーバー(たぶん常時オンラインのライトクライアント)が結託した多数のフルノードから “on-time” なTxを一つでも受け取れれば、そのオブザーバーを中継地点として普通ならそのTxをrejectする程度のレイテンシを要するはずだった誠実なフルノードにTxを届けることができるという意味なのだろうか。

不明点

  • T + k*D のkがかけられている意味
  • この議論内での「署名演算子 A:B」がなぜやたらと署名が重ねがけされたような表記なのか
  • オブザーバーのオンライン性
  • on−time に届いているけどビザンチンなメッセージなど関心にないのか?(TxだろうとBlockだろうと「ひとまずレイテンシ的に有効かどうか、受け入れるか否かの判断基準」についての議論なのだろうか)

#5

学び

  • 記事中の中継アルゴリズムはあるネットワーク(何ノード?ETHなら18000ノード?)の5%が誠実であるときに、そこから無作為に512ノードを選んだとき、選ばれたノードたちが全員ビザンチンになる確率が1兆分の1で、推定における誠実割合を10%に増やしたり処理時間を伸ばす(?)とよりよいらしい。その条件においてはネットワークが状態遷移の合意に成功する
  • latency-dependent consensusベースでやるが、ネットワークレイテンシがブロックタイムの半分以上になったらthreshold-dependent consensusに切り替える
  • レイテンシが回復したらlatency-dependentのほうに戻る
  • latency-dependent consensusはPoWが代表的で、threshold-dependent consensusはPoSが代表的らしい
  • 51%攻撃耐性と33%攻撃耐性を分ける抽象的なpropertyがsync/asyncだという説明は、そういう捉え方をしたことがなかったので目からウロコだった
  • 上記kはそのメッセージがk番目たる自分に届くまでのホップ数。Dはブロックタイムではなく1ホップの通信レイテンシと計算に必要な時間。ブロックタイムはkDを基準に決まると思われる
  • 署名連鎖はたくさんのノードでそれまでメッセージが署名されては転送されてきたことを示している

#6

議論の続きを発見した。検閲の発見に使えるとのこと