Selfish mining等の攻撃への対策を考える


#1

今回のモナコインへの攻撃を契機にセキュリティーやPoWの問題点が浮き彫りになっているこの時だからこそ、今からできること、今後やるべきことやPoWの改善方針などについて議論ができたらいいなと思います。

今回は特にほかのコインへの変換が可能という事実がselfish mining攻撃のインセンティブを与えてしまった事実を考えると、やはり取引所がなにがしかの対策を講じる必要があるのかなと思います。
取引所では承認数でそれぞれ安全ラインを決めてる思うので、この安全とする承認数を引き上げることが1つの解決策ではあるものの、それでは利便性とのトレードオフとなり、ほかの取引所との競争力に問題が出てくると思います。

今回は、取引所が安全と思っていた承認数を超える巻き戻りが起き、かつ子の攻撃を何度も許したのが一番の問題なのかなと個人的に思っています。

なので、まずは取引所は自身が設定した安全数を超えるブロックの巻き戻りが発生した場合は自動的に取引を停止するような仕組みを導入すべきかと思います。


#2

個人的に気になったツイート





#3

取引所の対応ですが、
承認の数が問題なのかどうか理解が追いついていません。

そもそも、いままで全くブロードキャストされなかったブロックがいきなりゾロゾロ回ってきたら検知できてもおかしくなさそうですが、どうでしょう?


#4

についてはこちらのブログで詳しくまとめてくれてます。
http://blockchain.gunosy.io/entry/2018/05/18/164219#Selfish-miningの研究について

これは検知できますね。ブロックが置き換わってるので。block hashを比べるなりで簡単に検知できると思います。nodeもログ吐いてたりしそうな気もする。


#5

ではブロックの正当性に関わらず、大量の新しいブロックのブロードキャストを検知してら承認ブロック数を引き上げるだけで、通常時のユーザービリティもセキュリティも両立するように思えますね。


#6

selfish miningの場合は過去のブロックが大量に書き換わるものなので承認ブロック数を引き上げる場合は基本的にユーザビリティーが下がります。
そのあともハッシュパワーが増加した状態が維持されたとしても、difficultyの調整が入るので、ブロック生成間隔は元にもどるため、やはり承認数を引き上げたままというのはユーザビリティの問題になると思います。


#7

はい。
つまり、承認数をブロードキャストの状態がおかしいときのみ引き上げるだけでユーザビリティの問題はないのでは?という意図です


#8

安定したら下げればよいですし。


#9

確かに。停止してしまうとインパクトが大きいですし、停止後に行える対応も現状承認数の引き上げしかないので、reorgが起きたブロック数+α分だけ自動で引き上げるぐらいでも十分な効果はありそうですね。


#10

取引所としては、reorg検知して承認数をあげることと、金額が相当大きい場合は承認ブロック数を変えるというのもアクションとして考えられるかなと思いました。

既存のクレジットカード決済でも、金額が多額になるとパスワードとサインを求められて手続きが保守的になったりしていて、そんなイメージです。