結論からいうと、Cardanoにおける安全性は①研究において現実的前提で数学的に証明され②開発においてそれを正確に数学的にコードに反映しています。

【1】研究

徹底的かつ美しい、”安全性”と数学の追求

安全性の数学的”定義”

データベース/暗号通貨の観点からの安全性=Persistence(記録された取引は必ず確定する)+Liveness(正しい取引はいつか必ず記録される)

安全性の数学的”前提”

プールがちゃんとネットにつながってて、その中で半分以上ADAを持っている正直であれば安全

安全性の数学的”証明”

証明過程をこの世にある学会の上位4%の最高峰のランクの学会の専門家による査読

Ouroborosクラシック;Crypto17学会、OuroborosPraos; Eurocrypo18学会、OuroborosGenesis;CCS2018学会…いずれも最高峰A✴︎(上位4%以内)の学会で承認されていることを確認してください…

学会ランク格付ページ

なぜ”安全性”にこだわるのか…POSは 非常に繊細で安全な実装が難しいから

 

”なぜ時価総額1位のビットコインは、POWに対して多くの優位性を持つPOSをあえて採用しないのか?”

ビットコインはシンプルかつ安全な面を重視し複雑なPOSを採用しませんでした…POSは非常に繊細な仕組みでPOWにはない脆弱性も多くありました。

POS固有の脆弱性を根本的に克服し比類なき安全性を手に入れるにはどうしたらいいのか?その答えが”数学的学術研究による証明”でした。

各々の”攻撃”にフォーカスしてみましょう…

Ouroboros論文の定理5.5で「半分以上のステークが正直で、ネットも異常がない」ならば正常な取引は必ず記録されて記録は必ず不変となる
と証明されましたが、この「半分以上のステークが正直で、ネットも異常がない」を前提にします。

定理5.5 Fix parameters k, l, E, ε, σ, R, and L, where R ≥ 2k + 4l and L is an integer multiple of R. Consider an execution E of Π[πDPoS,πDLS] with lifetime L coupled with a (1/2 − ε)- initially-bounded adversary A with corruption delay D = 2R and environment Z exhibiting a stake- shift of σ over l slots. Then persistence, with parameter k, and liveness, with parameter u = 2(k+l), are violated with probability no more than
ε := L · [exp(−Ω(√k)) + O(exp(−2ε2l))] + εH + (L/R)εDLS + εDSIG .
Here εH denotes the probability of a collision occurring among the queries to H (including those of A), εDSIG is the distinguishing advantage of tance of the DSIG implementation. The above the digital probabilities signature implementation, εDLS is are in the conditional space ¬Badthe dis- 1/2−ε−σ.

すでに記録され確定した取引を、なかったことにするという攻撃です。
まず、私が、1億ADA払って、1000億円を受け取ったとします。
私がこの攻撃をして、1億ADA払わなかったことにできれば、1億ADA分私は丸儲けです。
これは定理5.5の前提では取引が必ず不変となるため、不可能です。

これはPOS固有の攻撃で、ステークに応じて「ランダム」に承認者になるのではなく、何らかの攻撃により自分だけ承認者に選ばれる可能性が上がるよう攻撃を行います。
Cardanoでは「コイントスプロトコル」より、生成されたランダム性に影響を与えることができず一様にランダムなのでこの攻撃は不可能です。

取引を確認させないようにする攻撃です。
例えば私が田中さんのダイダロスに入っているADAを狙っていたとします。
あと少しで田中さんのプライベートキーが書かれた紙を手にすることができるのですが、田中さんがダイダロスからヨロイにADAを動かす取引の記録を送りました。
そうされては不都合なので私は攻撃を行って、その取引が記録されないようにします…

これも定理5.5の元では必ず確認されることになっているので不可能です。

50%以上がネットにうまくつながらない状態を起こさせれば可能となりうる攻撃だが、そうならない前提の上では不可能。

ピアツーピアメッセージ配信メカニズムを破壊する攻撃で、前項同様の状況が起きたら攻撃されうる。

定理5.5の前提が成り立たない、敵対者のステークが半分以上大きくなった場合これがおきます。この状態になると、取引は確認できず、確認されたとしてそれは不変にならず、長期のフォークになる可能性があります。

これはむしろ、51%攻撃からどのように回復力を持つか?という点が重要で、OuroborosSlcatsがこれに取り組みます。

賄賂をステークプールに送って、悪い取引を承認させる攻撃です。(例えば二重支出を承認させるなど)
これに関しては、POSの場合、直感的には攻撃には大量のステークが必要ですが、攻撃がわかればステークの価値は下がり、攻撃のための損害(費用)があまりにも大きすぎると考えられます。
ただ、この賄賂攻撃に関しては正式にすべての攻撃を網羅してないため、現在、正式に研究を進めているそうです。

なお、POWの場合、ブロックを正直に生成するよりも、高い賄賂を提供すれば、参加するインセンティブが生まれるため、相対的にこの攻撃をしやすいと思えます。

POS固有の攻撃で、2重支出等を含む長いチェーンを人工的に作って攻撃する方法です。
これは2つの点から不可能です。
①たくさんのステークプールが参加していないとプロトコルはPOSに必要なデータを与えてくれない
②プロトコルはかなり前に作成されたチェーンは拒否する
人工的に作ったチェーンは、ステークのごく一部を制御する攻撃者にが作るもののため、①②から無効になります。

これもPOS固有の、かなり深刻な攻撃で、チェーンを人工的に作ってシステムに攻撃する方法です。
forkable stringsや古いチェーンは無視されることからこれも不可能です。

過去の大きなステーク保有者が悪さをする攻撃で、Nothing at stake attacksの特別版です。
実は定理5.5には巨大なステークの移動がないことが条件で、この場合、危険になり得ます。つまり、POSでは攻撃をするとき大量のステークが必要で、それはコストが大きいよね、という話でしたが、この場合、攻撃をする時点においてはステークを売り払っていれば極論ステークは必要ないため、その意味でのコストはかかりません。
これは恐ろしい話に聞こえますが、現実的には一体誰がそんなに巨大なステークを買ってくれるのか、しかも買った瞬間にすぐさま巨大な攻撃をかけられるのか、という根本的な疑問があります。ただ、理論的にはありうる攻撃になります。

自分に都合の良いようにブロックを承認したりしなかったりすることによって、自分に都合の良いようにブロックを作成し、さらにマイニング報酬をたくさんもらうという攻撃です。
Cardanoにおいてはブロックの承認権はステークの量に比例するため、ブロックをあえて承認しないとしたとしても報酬は高くならないため、意味のない攻撃になります。

※これは論文ではなくIOHKブログ上での情報を参照しています。
色々書かれてますが、Cardanoがこの攻撃の影響を受けない本質的な理由は、「ビットコインをコピーしていないから」です。

PoSv3を使用したビットコインをコピーした形でのPOSの26種類の通貨について、その偽ステーク攻撃の脆弱性があることが米国の研究チームより示されましたがその中にCardanoはありません。

これは幸運ではなく、Cardanoはビットコインをコピーせず、ゼロから考え抜かれて、極めてシンプルに構築されたシステムだからです。

※これは論文ではなくIOHKブログ上での情報を参照しています。
Sybilは多重人格者の女性の名前で、1人が複数のIDを使って攻撃する方法を言います。Cardanoでは1人が大量のステークプールを作ることが可能のため、1000のステークプールを作って、ステークを徐々に集めて攻撃を行うことも可能に思えます。

結論としてはこれは非効率的かつ非常に多くのステークが必要となり、成功しません。

・Cardanoはステーキングにあたりデポジットは不要ですが、デポジットを多く行うとわずかに収益性が上がります。つまり、たくさんのプールを分けて作成する場合、1つ1つのプールの魅力は低くなります。

・さらに、評判システムにも関連させる予定があります。よりコミュニティに貢献し信頼のおけるプールについては、収益性が向上し、相対的に、適当に大量作成したプールについては魅力が低くなります。

POSは時刻、スケジュールが非常に重要なので、「時計」への攻撃が考えられます。

OuroborosChronosがこれに”分散型クロック”を提供する形で取り組みます。

ワンショット署名より無効化する点を予定しています。

Ouroboros Crypsinousにより匿名性を強化する可能性があります。

匿名性は犯罪を助長する!という論調が多いですが、実は匿名性は安全性を強化します。

理由はシンプルで、

①攻撃対象が不明であれば、攻撃者が攻撃できない(しづらい)

②ノードが匿名だと政府や国連が取締ることができない(検閲耐性)

からです。

匿名性は規制とのトレードオフとして取り上げられやすいですが、安全性の観点からも考えなければなりません。

【2】開発

コアプロトコルに、4つのレベルから厳格な”数学”を取り入れます…

プロトタイピング

試作を繰り返して技術仕様を

技術仕様

機能性と動作の設定された技術仕様で、「理論」と「実装」の一致を確認

形式手法

飛行機、宇宙船、大手銀行といった絶対に間違いが許されない業界の開発手法採用

関数型プログラミングHaskell

他の言語より曖昧さがなく、数学的にテストが容易。

2つのアプリケーション構築環境(言語)で安全性を強化します

金融機関/大企業の開発者向けのエラーの可能性を極限まで抑えた厳密かつ高速なPlutus

曖昧さを回避/テスト簡易化した、関数型プログラミング言語Haskellを使用した、オフチェーンとオンチェーン両方同じコードを使える(他の言語では異なる場合が多い)、企業レベルの専用のプラットフォーム。エラー時に取り返しのつかない損失(60億円のETHが盗まれ通貨の分裂や歴史の巻き戻しまで起こしたTheDao事件)の反省から誕生。

非プログラマでも簡単設計可能のMarllowe

Plutus/Haskellベースの金融スマコン言語、事業家/業界専門家/金融アナリスト等のプログラミング経験ない非技術者用。Meadowエミュレーターでテストできます。このようにパズルのようにブロックを組み立てて誰でも簡単にスマコンを作成できます。 ※IELEでは、多言語を扱うことができ、イーサリアムと相互運用も可能にします。IELEテストネットにてテストできます。

※副次的効果:経済性/公平性

経済性

Cardanoは計算力ではなくステークの量によりデータベースのメンテナンス者を決めており大きな電力が必要ないため、安全性・高速性・分散性と両立する中で最も経済性が高いです(エコ)。①量的(小国に匹敵する電力消費量)にも②質的(それ自体に全く意味のない、何の価値も与えない計算・その計算機の開発費・その対策の開発費)にもエコではないPOWと対照的です。

公平性

Cardanoは論文で、完全な公平平等性(投資額に対する報酬の率が一定の状態)のあるシステムと、唯一定量化可能な報酬率によって、数学的に証明されました。したがって、一部の人がPOSは公平平等ではないと批判しているにもかかわらず、完全な公平性が数学的に証明されています。

例えば以下は、報酬率は1%なので完全に公平平等です。
・100億ADAを持つ人がステーキング報酬で1億ADAを手に入れる→報酬率1%
・100ADAを持つ人がステーキング報酬で1ADAを手に入れる→報酬率1%
上の例では1億倍の収入差があるため、多くの人は直感的に「少しずるい」と感じるかもしれませんが、その「ずるさ」を数学的に公平平等を報酬率以外で定義できません。例えば、100ADAを追加で投資した人が、5ADAを追加でもらえば、なんとなくちょっと公平でしょうか?だとすれば、5ADAはどう数学的に導けるでしょうか?それが4ADAや6ADA、4.99999ADAでは不平等不公平で、5ADAなら平等公平である数学的な根拠は何でしょうか?何の公式を用いて5ADAを導けば良いでしょうか?つまり、公平平等性は数学的には報酬率で判断するしかなく、Cardanoは完全に公平平等性を持つのです

©️ZZZ