ブロックウィズホールディング:1 シェアでは見抜けない攻撃
ブロックになるはずのシェアだけを隠し、ほかは本物のシェアを送るマイナーがいます。その損失、誰が払うのか、なぜ行うのか、どう見つかるのかを説明します。
ブロック隠し攻撃とは何ですか?
普通のシェアはすべて送るのに、ブロックになるはずだったシェアだけを隠すマイナーのことです。プールはシェアに対して支払います。ブロックは届きません。
プールに送るシェアは、どれもブロックの目標値に届かなかった本物の解です。ブロックの目標値とは、ハッシュがブロックになるために越えなければならない、より厳しい基準です。ときどき解がその基準も越えることがあり、そのシェアは丸ごと 1 つのブロックになります。
そういうシェアも、プールが確認するまではほかのシェアと見分けがつきません。
攻撃者は正直に作業し、普通のシェアはすべて送ります。そしてブロックになるはずの 1 つだけをこっそり捨てます。プールはシェアを数えて支払います。受け取るはずだったブロックは届きません。
なぜ 1 つのシェアではわからないのですか?
どのシェアを見ても、攻撃者におかしなところはありません。ハードウェアは本物で、ハッシュレートも本物です。シェアは有効で、適切なペースで届きます。プールが 1 つのシェアを調べても、何も見えません。
欠けているのは「ないこと」であり、「ないこと」は時間をかけないと見えません。プールのハッシュレートのある割合を持つマイナーは、プールのブロックのほぼ同じ割合を見つけるはずです。
1 時間ではそこから何もわかりません。ブロックの発見はランダムで、静かな期間は普通にあります。十分に長い期間なら、多くのことがわかります。
損失はどれくらいで、誰が払うのですか?
プールは、本来得られたはずのブロック報酬を失います。しかし、その損失は実はプールにかかるわけではありません。どのプールでも、ここが理解しておく価値のある部分です。
- 比例配分の方式では、ほかの誰かがブロックを見つけるまでラウンドが続きます。そのラウンドの全員が、本来より長くかかったラウンドで作業したことになります。だから全員の作業あたりの稼ぎが少し減ります。損失は正直なマイナーたちに広く分散されます。
- PPS(pay per share)方式では、運営者にとってもっと悪くなります。プールはすべてのシェアにすでに自腹で支払っており、ブロックが届くことを当てにしています。攻撃が続けば、運営者から直接お金が流れ出ます。歴史的に、人々が最も心配してきたのはこのケースです。
なぜそんなことをする人がいるのですか?
攻撃者はブロック報酬も捨てています。一見すると、ただ自分を傷つけているだけです。プールからは見えないところで攻撃者が得をする場合にだけ、意味があります。
よくある動機は競争です。自分のプールを運営している人が、ハッシュレートを借りたり向けたりしてライバルに送り込み、その成績を下げることができます。すると比べたときに、自分のプールのほうが運が良く見えます。攻撃者がそれでも集めるシェアの報酬が、妨害の費用をまかないます。
より巧妙な形では、攻撃者はブロックを捨てずに手元に置いておきます。その上でこっそり掘り続け、自分に都合のよいタイミングで後から提出します。これは実行がより難しく、試す価値があるのは大きなハッシュレートを持つ場合だけです。
どうやって見つけるのですか?
ほかに手がかりがないので、検出は統計的に行います。ある参加者が見つけたブロックと、シェアの数から見て見つけるはずだったブロックを比べます。運の偏りが平均されるだけの長い期間で比べます。
難しいのは、その期間です。
- 短くすると、ただの不運が攻撃に見えます。正直なマイナーがいつも疑われてしまいます。
- 長くすると、本物の攻撃者は数字に表れるまでしばらく活動できます。
この両立しにくさをうまく避ける方法はありません。原因はランダムさであって、ソフトウェアではないからです。
だから、まともな検出の仕組みは自分で処置せず、人間に判断を委ねます。統計に基づく自動の BAN は、いつか単に運が悪かっただけの人を BAN してしまいます。正当なマイナーを止めてしまうのは、攻撃そのものより悪いことです。
正直なマイナーにとってはどんな意味がありますか?
ほとんど何もありません。これははっきり言っておく価値があります。
あなたのシェアは、どちらの場合も同じように数えられ、支払われます。運が悪いことは違反ではなく、違反になることもありません。どんな短い期間でも、ほとんどのマイナーは運が悪いものです。
自分がたくさん貢献したのにプールが何も見つけないラウンドが続くのは、普通のばらつきです。プールの統計にあるラック(運)の数字を見れば、それがどれくらい普通かわかります。
この攻撃は、プールが誰からハッシュレートを向けられているかを気にする理由の 1 つです。また、ブロックとラックを正直に公開しているプールが信頼しやすい理由でもあります。プールを確かめるのに必要なものは、すべてブロックページにあります。