私はDuskの罰則メカニズムのドキュメントを翻訳していて、「うっかりミス」と「故意の悪事」を別々に、まったく異なる形で処理していることに気づきました。

多くのブロックチェーン・プロジェクトでは、検証者への罰は単純です——罰金を科す。軽ければ一部の担保を差し引き、重ければ担保をすべて没収します。でも@Dusk はそうではありません。

それは「ソフトなペナルティ(罰則による減点)」を用意していて、故意ではない失敗に対処する仕組みになっています。たとえば、ノードが落ちた、選ばれてブロックを生成したのにブロードキャストされなかった、ネットワークのポートが通らない、バージョンが更新されずチェーン上の最新の高さに追いついていない——これらは運用(オペレーション)レベルの問題であり、主観的な悪意ではありません。

処理は二段階です。第一段階は警告で、何も差し引きません。一度だけチャンスが与えられます。しかし再びやらかすと、出ブロック資格が1サイクル停止されます。停止期間中はブロックに選ばれず、投票にも参加できないため、当然ブロック報酬も受け取れません。さらに、連続してミスをすると、停止時間はどんどん長くなります。2回目は2サイクル、3回目は3サイクル、という具合です。

第二段階は「重み(ウェイト)の減算」です。毎回停止と同時に、あなたのアクティブ担保の一部がロック状態に移されます。1回目は10%、2回目は20%、そして累積されていきます。移された分のコインはあなたのものであり、破棄されるわけではありません。ノードが直った後にロック解除を申請すれば、取り戻せます。ただし、アクティブ担保が1,000コインの下限を下回った場合、ノードは完全に凍結されます。凍結を解除するには、いったん抹消してから再登録する必要があります。$DUSK

本当にコインを焼いてしまうのは「ハードなペナルティ(没収・破棄)」だけです。これは、明確に悪意のある行為——たとえば同じ高さで矛盾する2つのブロックに署名した場合、または衝突する票を投じた場合——といったケースを対象にしています。この場合に限って、担保金が本当に破棄(消滅)されます。

この設計は論理も明確で、同時にとても人間的です。運用ミスは誰にでも起こりうることであり、元本を失うべきではない。でも、何の代償もなく放置するのもよくありません。代償とは、投票の重みが下がり、ブロックに選ばれる確率が次第に下がっていくことです。その結果、収益も当然縮みます。連続して3回落ちると、有効な重みが元の4割程度まで減る可能性があり、収益もほぼその割合まで下がります。

私の見方では、これは完全な免責ではないものの、「一発アウトで即座に大打撃」というよりずっと穏やかです。特に、自宅でノードを回している人にとって、このような許容(リカバリー)の余地はとても重要です。#dusk