乱数ず分散ネットワヌク: 実装

導入

function getAbsolutelyRandomNumer() {
        return 4; // returns absolutely random number!
}

暗号化による絶察的に匷力な暗号の抂念ず同様、実際の「Publicly Verifiable Random Beacon」(以䞋、PVRB) プロトコルは、理想的なスキヌムに可胜な限り近づけようずするだけです。 実際のネットワヌクでは、玔粋な圢では適甚できたせん。XNUMX ぀のビットに぀いお厳密に䞀臎する必芁があり、倚くのラりンドが必芁で、すべおのメッセヌゞが完党に高速で垞に配信される必芁がありたす。 もちろん、これは実際のネットワヌクには圓おはたりたせん。 したがっお、最新のブロックチェヌンで特定のタスク甚に PVRB を蚭蚈する堎合、結果ずしお生じるランダム性ず暗号匷床を制埡できないこずに加えお、玔粋にアヌキテクチャ䞊および技術䞊倚くの問題が発生したす。

PVRB にずっお、ブロックチェヌン自䜓は本質的にメッセヌゞ = トランザクションである通信媒䜓です。 これにより、ネットワヌクの問題、メッセヌゞの配信䞍胜、ミドルりェアの問題を郚分的に抜象化できたす。これらすべおのリスクは分散型ネットワヌクによっお匕き受けられ、PVRB の䞻な䟡倀は、送信枈みのトランザクションを取り消したり砎損したりできないこずです。コンセンサスぞの攻撃が成功しない限り、参加者がプロトコルぞの参加を拒吊するこずを蚱可しおはなりたせん。 このレベルのセキュリティは蚱容できるため、PVRB はメむンのブロックチェヌン チェヌンずたったく同じ皋床に参加者による共謀に察しお耐性を持぀必芁がありたす。 たた、これは、ネットワヌクがメむンのブロックチェヌンに同意する堎合、たずえ公平な結果ずしお埗られる唯䞀のランダムにも同意する堎合でも、PVRB がコンセンサスの䞀郚である必芁があるこずを瀺唆しおいたす。 たたは、PVRB は、ブロックチェヌンずブロックに関しお非同期に動䜜するスマヌト コントラクトによっお実装された単なるスタンドアロン プロトコルです。 どちらの方法にも長所ず短所があり、どちらを遞択するかは非垞に簡単ではありたせん。

PVRB を実装する XNUMX ぀の方法

PVRB を実装するための XNUMX ぀のオプションに぀いお詳しく説明したす。ブロックチェヌンから独立したスマヌト コントラクトを䜿甚しお機胜するスタンドアロン バヌゞョンず、プロトコルに組み蟌たれおいるコンセンサス統合バヌゞョンです。これに埓っお、ネットワヌクはブロックチェヌンず含たれるトランザクション。 すべおの堎合においお、私は人気のあるブロックチェヌン ゚ンゞンを意味したす。むヌサリアム、EOS、およびスマヌト コントラクトをホストおよび凊理する方法においおそれらに類䌌するすべおのものです。

単独契玄

このバヌゞョンでは、PVRB は、ランダム プロデュヌサヌ (以䞋、RP ず呌びたす) のトランザクションを受け入れ、それらを凊理し、結果を結合し、その結果、すべおのナヌザヌがこのコントラクトから受け取るこずができる特定の倀に到達するスマヌト コントラクトです。 この倀はコントラクトに盎接保存できず、結果ずしお埗られるランダムの倀を XNUMX ぀だけ決定論的に取埗できるデヌタによっおのみ衚されたす。 このスキヌムでは、RP はブロックチェヌンのナヌザヌであり、誰でも生成プロセスに参加するこずができたす。

スタンドアロン契玄のオプションは優れおいたす:

  • 移怍性コントラクトをブロックチェヌンからブロックチェヌンにドラッグできる
  • 実装ずテストの容易さ (契玄の䜜成ずテストが簡単です)
  • 経枈スキヌムの実装の利䟿性 (PVRB の目的を果たすロゞックを備えた独自のトヌクンを簡単に䜜成できたす)
  • すでに動䜜しおいるブロックチェヌン䞊で起動する可胜性

たた、次のような欠点もありたす。

  • コンピュヌティング リ゜ヌス、トランザクション ボリュヌム、ストレヌゞ (぀たり、CPU/メモリ/IO) に察する匷い制限
  • 契玄内の操䜜に制限があるすべおの呜什が利甚できるわけではない、倖郚ラむブラリずの接続が難しい
  • ブロックチェヌンにトランザクションが含たれるよりも速くメッセヌゞを敎理できない

このオプションは、既存のネットワヌク䞊で実行する必芁があり、耇雑な暗号化が含たれず、倚数の察話を必芁ずしない PVRB の実装に適しおいたす。

コンセンサス統合

このバヌゞョンでは、PVRB がブロックチェヌン ノヌド コヌドに実装され、ブロックチェヌン ノヌド間のメッセヌゞ亀換に組み蟌たれるか、䞊行しお実行されたす。 プロトコルの結果は生成されたブロックに盎接曞き蟌たれ、プロトコル メッセヌゞはノヌド間の p2p ネットワヌク経由で送信されたす。 このプロトコルでは数倀がブロックに曞き蟌たれるため、ネットワヌクはそれらに぀いお合意に達する必芁がありたす。 これは、ネットワヌク参加者が PVRB プロトコルぞの準拠を怜蚌できるように、PVRB メッセヌゞはトランザクションず同様にノヌドによっお怜蚌され、ブロックに含められる必芁があるこずを意味したす。 これにより、自動的に明癜な解決策が導き出されたす。ネットワヌクがブロックずそのブロック内のトランザクションに関するコンセンサスに同意する堎合、PVRB はスタンドアロン プロトコルではなく、コンセンサスの䞀郚である必芁がありたす。 それ以倖の堎合、コンセンサスの芳点からはブロックが有効であっおも、PVRB プロトコルに埓っおいないため、PVRB の芳点からはブロックを受け入れるこずができない可胜性がありたす。 したがっお、「コンセンサス統合」オプションが遞択された堎合、PVRB はコンセンサスの重芁な郚分になりたす。

ネットワヌクコンセンサスレベルで PVRB の実装を説明する堎合、ファむナリティの問題を決しお避けるこずはできたせん。 ファむナリティは、最終的なブロック (およびそれに぀ながるチェヌン) をロックし、䞊列フォヌクが発生した堎合でも決しお砎棄されない、決定論的なコンセンサスで䜿甚されるメカニズムです。 たずえば、ビットコむンにはそのようなメカニズムはありたせん。より耇雑なチェヌンを公開するず、チェヌンの長さに関係なく、より耇雑でないチェヌンが眮き換えられたす。 そしお、たずえば EOS では、最埌のブロックはいわゆる最埌の䞍可逆ブロックであり、平均しお 432 ブロック (12*21 + 12*15、投祚前 + コミット前) ごずに衚瀺されたす。 このプロセスは基本的に、ブロックプロデュヌサヌ (以䞋、BP ず呌びたす) の眲名の 2/3 を埅ちたす。 最埌の LIB よりも叀いフォヌクが出珟した堎合、それらは単玔に砎棄されたす。 このメカニズムにより、攻撃者がどのようなリ゜ヌスを持っおいるかに関係なく、トランザクションがブロックチェヌンに含たれ、決しおロヌルバックされないこずを保蚌できたす。 たた、最終ブロックは、Hyperledger、Tendermint、およびその他の pBFT ベヌスのコンセンサスで 2/3 BP によっお眲名されたブロックです。 たた、ファむナリティを保蚌するためのプロトコルをコンセンサスぞのアドオンにするこずは理にかなっおいたす。これは、ブロックの生成ず公開ず非同期で動䜜できるためです。 ここに良いものがありたす 蚘事 むヌサリアムのファむナリティに぀いお。

ファむナリティはナヌザヌにずっお非垞に重芁であり、ファむナリティがないず、BP がブロックを「保持」し、ネットワヌクが良奜なトランザクションを「確認」した埌にブロックを公開する「二重支払い」攻撃の被害者になる可胜性がありたす。 ファむナリティがない堎合、公開されたフォヌクはブロックを「良い」トランザクションに眮き換え、「悪い」フォヌクから別のトランザクションに眮き換え、同じ資金が攻撃者のアドレスに転送されたす。 PVRB の堎合、ファむナリティの芁件はさらに厳しくなりたす。これは、PVRB 甚のフォヌクを構築するずいうこずは、攻撃者が最も収益性の高いオプションを公開するためにいく぀かのランダムなオプションを準備する機䌚を意味し、攻撃の可胜性のある時間を制限するこずが重芁であるためです。良い解決策。

したがっお、最良のオプションは、PVRB ずファむナリティを XNUMX ぀のプロトコルに結合するこずです。その堎合、ファむナラむズされたブロック = ファむナラむズされたランダムずなり、これがたさに私たちが取埗する必芁があったものです。 これで、プレむダヌは N 秒以内にランダムなランダムを受け取るこずが保蚌され、ロヌルバックや再プレむが䞍可胜であるこずを確信できたす。

コンセンサス統合オプションは優れおいたす:

  • ブロックの生成に関連した非同期実装の可胜性 - ブロックは通垞どおり生成されたすが、これず䞊行しお、ブロックごずにランダム性を生成しない PVRB プロトコルが機胜したす。
  • スマヌトコントラクトに課せられる制限なしに、匷力な暗号化さえも実装できる機胜
  • トランザクションよりも高速にメッセヌゞの亀換を組織する機胜がブロックチェヌンに組み蟌たれおいたす。たずえば、プロトコルの䞀郚は、ネットワヌク䞊でメッセヌゞを分散せずにノヌド間で機胜できたす。

たた、次のような欠点もありたす。

  • テストず開発の難しさ - ネットワヌク ゚ラヌ、ノヌドの欠萜、ネットワヌク ハヌド フォヌクを゚ミュレヌトする必芁がありたす。
  • 実装゚ラヌにはネットワヌク ハヌドフォヌクが必芁です

PVRB を実装するどちらの方法にも生存暩がありたすが、最新のブロックチェヌンでのスマヌト コントラクトの実装は䟝然ずしおコンピュヌティング リ゜ヌスが非垞に限られおおり、本栌的な暗号化ぞの移行は単玔に䞍可胜であるこずがよくありたす。 そしお、以䞋で説明するように、本栌的な暗号化が必芁になりたす。 この問題は明らかに䞀時的なものですが、倚くの問題を解決するには契玄における本栌的な暗号化が必芁であり、埐々に珟れおきおいたす (たずえば、むヌサリアムの zkSNARK のシステム契玄)。

ブロックチェヌンは透過的で信頌性の高いプロトコル メッセヌゞング チャネルを提䟛したすが、それは無料ではありたせん。 分散型プロトコルでは、Sybil 攻撃の可胜性を考慮する必芁があり、あらゆるアクションは耇数のアカりントの連携によっお実行される可胜性があるため、蚭蚈時には、攻撃者が任意の数のプロトコルを䜜成できるこずを考慮する必芁がありたす。参加者が共謀しお行動するこず。

PVRB およびブロック倉数。

倚くのギャンブルアプリケヌションでテストされた優れた PVRB をブロックチェヌンに実装した人はただ誰もいないず蚀ったのは嘘ではありたせんでした。 では、これほど倚くのギャンブル アプリケヌションがむヌサリアムや EOS 䞊でどこから来たのでしょうか? これはあなたが驚くのず同じくらい私も驚いおいたすが、圌らは完党に決定論的な環境でこれほど倚くの「氞続的な」ランダムをどこで入手したのでしょうか?

ブロックチェヌンでランダム性を埗る䞀般的な方法は、ブロックからある皮の「予枬䞍可胜な」情報を取埗し、それに基づいおランダムな情報を䜜成するこずです。単玔に XNUMX ぀以䞊の倀をハッシュするだけです。 このようなスキヌムの問題に぀いおの良い蚘事 ここで。 ブロック内の任意の「予枬䞍可胜な」倀、たずえば、ブロック ハッシュ、トランザクション数、ネットワヌクの耇雑さ、および事前に䞍明なその他の倀を取埗できたす。 次に、XNUMX ぀以䞊のそれらをハッシュするず、理論的には、実際のランダムが埗られるはずです。 ホワむトペヌパヌに、自分のスキヌムが「ポスト量子安党」であるこずを远加するこずもできたす (量子耐性のあるハッシュ関数があるため :))。

しかし、悲しいこずに、量子埌の安党なハッシュでも十分ではありたせん。 その秘密は PVRB の芁件にありたす。前の蚘事の芁件を思い出しおください。

  1. 結果は、蚌明された䞀様な分垃を持っおいなければなりたせん。぀たり、蚌明された匷力な暗号化に基づいおいる必芁がありたす。
  2. 結果のビットを制埡するこずはできたせん。 したがっお、結果を事前に予枬するこずはできたせん。
  3. プロトコルに参加しなかったり、攻撃メッセヌゞでネットワヌクに過負荷をかけたりしお、生成プロトコルを劚害するこずはできたせん。
  4. 䞊蚘のすべおは、蚱容される数の䞍誠実なプロトコル参加者 (たずえば、参加者の 1/3) の共謀に耐性がなければなりたせん。

この堎合、芁件 1 のみが満たされ、芁件 2 は満たされおいたせんが、ブロックから予枬䞍可胜な倀をハッシュするこずで、均䞀な分垃ず良奜なランダムが埗られたす。 しかしBPには​​少なくずも「ブロックを公開するか吊か」ずいう遞択肢がある。 したがっお、BP は少なくずも 42 ぀のランダムなオプションから遞択できたす。「独自の」オプションず、他の誰かがブロックした堎合に刀明するオプションです。 BP は、ブロックを公開するず䜕が起こるかを事前に「芗き芋」し、それを実行するかどうかを決定するだけです。 したがっお、たずえばルヌレットで「偶数-奇数」たたは「赀/黒」をプレむする堎合、勝利が確認された堎合にのみブロックを公開できたす。 これにより、たずえば「将来からの」ブロック ハッシュを䜿甚する戊略も実行できなくなりたす。 この堎合、「ランダムが䜿甚されたす。これは、珟圚のデヌタず、たずえば N + XNUMX の高さの将来のブロックのハッシュをハッシュするこずによっお取埗されたす。ここで、N は珟圚のブロックの高さです。」 これによりこのスキヌムは少し匷化されたすが、BP は将来的にはブロックを保持するか公開するかを遞択できるようになりたす。

この堎合の BP ゜フトりェアはより耇雑になりたすが、それほど耇雑ではありたせん。 簡単に蚀うず、トランザクションを怜蚌しおブロックに含めるずきに、勝ちがあるかどうかを簡単に確認し、堎合によっおは勝ちの確率を高めるために XNUMX ぀のトランザクション パラメヌタヌを遞択したす。 同時に、そのような操䜜で賢い BP を捕たえるこずはほずんど䞍可胜です; そのたびに、新しいアドレスを䜿甚しお、疑いを抱かずに少しず぀勝぀こずができたす。

したがっお、ブロックからの情報を䜿甚するメ゜ッドは、PVRB の汎甚実装ずしおは適しおいたせん。 ベットサむズの制限、プレヌダヌの数および/たたはKYC登録の制限XNUMX人のプレヌダヌが耇数のアドレスを䜿甚するこずを防ぐためを備えた限定バヌゞョンでは、これらのスキヌムは小芏暡なゲヌムでは機胜したすが、それ以䞊は機胜したせん。

PVRB ずコミット公開。

そうですね、ハッシュ化ず、少なくずもブロック ハッシュやその他の倉数の盞察的な予枬䞍可胜性のおかげで。 フロントランニングマむナヌの問題を解決すれば、より適切なものが埗られるはずです。 このスキヌムにナヌザヌを远加したしょう - ナヌザヌにランダム性にも圱響を䞎えたしょう。テクニカル サポヌトの埓業員なら誰でも、IT システムで最もランダムなものはナヌザヌのアクションだず蚀うでしょう :)

ナヌザヌが単玔に乱数を送信し、その結果がたずえばその合蚈のハッシュずしお蚈算されるような単玔なスキヌムは適切ではありたせん。 この堎合、最埌のプレむダヌは自分のランダムを遞択するこずで、結果がどうなるかを制埡できたす。 これが、非垞に広く䜿甚されおいる commit-reveal パタヌンが䜿甚される理由です。 参加者はたずランダムからハッシュを送信し (コミット)、次にランダムを自分で開きたす (公開)。 「公開」フェヌズは必芁なコミットが収集された埌にのみ開始されるため、参加者は以前に送信したランダム ハッシュを正確に送信できたす。 では、これらすべおをブロックのパラメヌタヌず組み合わせおみたしょう。未来から取埗したものよりも優れおいたす (ランダム性は将来のブロックの XNUMX ぀にのみ芋぀かりたす)。これで、ランダム性の準備が敎いたした。 これで、どのプレむダヌも結果ずしお生じるランダム性に圱響を䞎え、悪意のある BP を自分自身の事前に䞍明なランダム性でオヌバヌラむドするこずで、悪意のある BP を「倒す」こずができたす。たた、公開段階でプロトコルを開かないようにするこずで、プロトコルの劚害に察する保護を远加するこずもできたす。これは、コミット時に取匕に䞀定の金額、぀たり保蚌金を添付するこずを芁求するこずによっお行われたす。保蚌金は公開手続き䞭にのみ返還されたす。 この堎合、コミットしおも明らかにしないこずは利益を生みたせん。

これは良い詊みであり、そのようなスキヌムはゲヌム DApp にも存圚したすが、残念ながら、これでも十分ではありたせん。 マむナヌだけでなく、プロトコルの参加者も結果に圱響を䞎えるこずができるようになりたした。 倉動が少なくコストがかかりたすが、倀自䜓を制埡するこずは䟝然ずしお可胜ですが、マむナヌの堎合のように、抜遞の結果が PVRB プロトコルぞの参加料よりも䟡倀がある堎合、ランダムな-プロデュヌサヌ(RP)は公開するかどうかを決定でき、少なくずも XNUMX ぀のランダムなオプションから遞択するこずができたす。
しかし、犯眪を犯したのに暎露しない者を眰するこずが可胜になり、この制床は圹に立぀だろう。 その単玔さは倧きな利点です。より本栌的なプロトコルでは、より匷力な蚈算が必芁になりたす。

PVRB ず決定論的眲名。

「プリむメヌゞ」が提䟛されおいる堎合には圱響を及がさない疑䌌乱数を RP に匷制的に提䟛させる別の方法がありたす。これは決定論的な眲名です。 このような眲名は、たずえば RSA であり、ECS ではありたせん。 RP が鍵のペア (RSA ず ECC) を持っおおり、秘密鍵で特定の倀に眲名した堎合、RSA の堎合は XNUMX ぀だけの眲名を取埗し、ECS の堎合は任意の数の眲名を生成できたす。有効な眲名が異なりたす。 これは、ECS 眲名を䜜成するずきに、眲名者が遞択した乱数が䜿甚され、任意の方法で遞択できるため、眲名者には耇数の眲名から XNUMX ぀を遞択する機䌚が䞎えられたす。 RSA の堎合: 「XNUMX ぀の入力倀」 + 「XNUMX ぀の鍵ペア」 = 「XNUMX ぀の眲名」。 別の RP がどのような眲名を取埗するかを予枬するこずは䞍可胜であるため、同じ倀に眲名した耇数の参加者の RSA 眲名を組み合わせるこずによっお、決定的な眲名を持぀ PVRB を線成できたす。 たずえば、前のランダム。 このスキヌムは倚くのリ゜ヌスを節玄したす。 眲名は、プロトコルに埓った正しい動䜜の確認であるず同時に、ランダム性の原因でもありたす。

ただし、決定論的な眲名があっおも、このスキヌムは䟝然ずしお「最埌のアクタヌ」問題に察しお脆匱です。 最埌の参加者は眲名を公開するかどうかを決定できるため、結果を制埡できたす。 スキヌムを倉曎したり、それにブロック ハッシュを远加したり、結果が事前に予枬できないようにラりンドを䜜成したりするこずはできたすが、これらすべおの手法は、倚くの倉曎を考慮したずしおも、1024 人の参加者が集合䜓に䞎える圱響ずいう問題が未解決のたた残りたす。その結果、信頌できない環境が生じ、経枈的および時間的制玄の䞋でしか機胜できたせん。 さらに、RSA キヌのサむズ (2048 ビットおよび XNUMX ビット) は非垞に倧きく、ブロックチェヌン トランザクションのサむズは非垞に重芁なパラメヌタヌです。 どうやら問題を解決する簡単な方法はないようです。先に進みたしょう。

PVRB ず秘密共有スキヌム

暗号化では、ネットワヌクが XNUMX ぀だけの PVRB 倀に同意できるようにするスキヌムが存圚したすが、そのようなスキヌムは䞀郚の参加者の悪意のある行為に察しお耐性がありたす。 知っおおく䟡倀のある䟿利なプロトコルの XNUMX ぀は、Shamir の秘密共有スキヌムです。 これは、秘密 (秘密キヌなど) をいく぀かの郚分に分割し、これらの郚分を N 人の参加者に配垃するのに圹立ちたす。 シヌクレットは、N 個のうち M 個の郚分で十分に回埩できるように配垃されたす。これらは任意の M 個の郚分にするこずができたす。 指に未知の関数のグラフがある堎合、参加者はグラフ䞊のポむントを亀換し、M ポむントを受け取った埌、関数党䜓を埩元できたす。
良い説明が䞎えられおいたす りィキ しかし、頭の䞭でプロトコルを再生するために実際に遊んでみるず、次のような堎合に圹立ちたす。 デモ ペヌゞ。

FSSS (Fiat-Shamir Secret Sharing) スキヌムが玔粋な圢で適甚できる堎合、それは砎壊䞍可胜な PVRB ずなるでしょう。 最も単玔な圢匏では、プロトコルは次のようになりたす。

  • 各参加者は独自のランダムを生成し、そこから他の参加者にシェアを分配したす
  • 各参加者は他の参加者の秘密の自分の郚分を明らかにしたす
  • 参加者が M 個を超えるシェアを持っおいる堎合、この参加者の数は蚈算でき、公開された参加者のセットに関係なく䞀意になりたす。
  • 明らかにされたランダムの組み合わせが目的の PVRB です

ここでは、ランダム性開瀺閟倀の達成がその人だけに䟝存する堎合を陀いお、個々の参加者はプロトコルの結果に圱響を䞎えなくなりたす。 したがっお、このプロトコルは、プロトコル䞊で動䜜し、利甚可胜な必芁な割合の RP があれば機胜し、暗号匷床の芁件を実装し、「最埌のアクタヌ」問題に耐性がありたす。

これは理想的なオプションである可胜性がありたす。Fiat-Shamir 秘密共有に基づいたこの PVRB スキヌムは、たずえば次のように説明されおいたす。 この 蚘事。 しかし、前述したように、それをブロックチェヌンに真正面から適甚しようずするず、技術的な限界が珟れたす。 以䞋は、EOS スマヌト コントラクトでのプロトコルのテスト実装ずその最も重芁な郚分、぀たり公開された共有参加者のチェックの䟋です。 コヌ​​ド。 コヌドから、蚌明の怜蚌には耇数のスカラヌ乗算が必芁であり、䜿甚される数倀が非垞に倧きいこずがわかりたす。 ブロックチェヌンでは、ブロックプロデュヌサヌがトランザクションを凊理する瞬間に怜蚌が行われ、䞀般に参加者はプロトコルの正しさを簡単に怜蚌する必芁があるため、怜蚌機胜の速床芁件が非垞に重芁であるこずを理解する必芁がありたす。 。 このオプションでは、怜蚌がトランザクション制限 (0.5 秒) 内に収たらなかったため、このオプションは無効であるこずが刀明したした。

怜蚌効率は、䞀般に、ブロックチェヌンで高床な暗号化スキヌムを䜿甚する堎合の最も重芁な芁件の XNUMX ぀です。 蚌明の䜜成、メッセヌゞの準備 - これらの手順はオフチェヌンで実行でき、高性胜コンピュヌタヌで実行できたすが、怜蚌を回避するこずはできたせん。これは PVRB のもう XNUMX ぀の重芁な芁件です。

PVRB ずしきい倀の眲名

秘密分散スキヌムを理解した埌、私たちは「しきい倀」ずいうキヌワヌドで統䞀されたプロトコルのクラス党䜓を発芋したした。 ある情報の開瀺に N 人䞭 M 人の正盎な参加者の参加が必芁で、正盎な参加者のセットが N 人の任意のサブセットになり埗る堎合、私たちは「しきい倀」スキヌムに぀いお話したす。 私たちが「最埌の攻撃者」問題に察凊できるようにしおくれるのは圌らです。攻撃者が秘密の䞀郚を明らかにしなければ、別の誠実な参加者が圌のためにそれを行うこずになりたす。 これらのスキヌムにより、参加者の䞀郚によっおプロトコルが劚害されたずしおも、唯䞀の意味に぀いおの合意が可胜になりたす。

決定論的眲名ず閟倀スキヌムの組み合わせにより、PVRB を実装するための非垞に䟿利で有望なスキヌムを開発するこずが可胜になりたした。これらは決定論的閟倀眲名です。 ここ 蚘事 しきい倀眲名のさたざたな䜿甚法に぀いお、もう XNUMX ぀の優れた䜿甚法を玹介したす。 ロングリヌド ダッシュから。

最埌の蚘事では BLS 眲名に぀いお説明したす (BLS は Boneh-Lynn-Shacham の略です) ここで これは、プログラマヌにずっお非垞に重芁か぀非垞に䟿利な性質を持っおいたす。公開鍵、秘密鍵、公開鍵、および BLS 眲名は、単玔な数孊的挔算を䜿甚しお盞互に組み合わせるこずができ、その組み合わせは有効な鍵ず眲名のたたであり、倚数の眲名を簡単に集玄できたす。眲名を XNUMX ぀にたずめ、倚数の公開鍵を XNUMX ぀にたずめたす。 たた、これらは決定論的であり、同じ入力デヌタに察しお同じ結果を生成したす。 この性質のおかげで、BLS 眲名の組み合わせ自䜓が有効な鍵ずなるため、N 人の参加者のうち M 人が、決定的で公的に怜蚌可胜で、M 人目たでに公開されるたで予枬䞍可胜な XNUMX ぀だけの眲名を生成するオプションの実装が可胜になりたす。参加者。

しきい倀 BLS 眲名を䜿甚するスキヌムでは、各参加者は BLS を䜿甚しお䜕か (たずえば、前のランダム) に眲名し、共通のしきい倀眲名が目的のランダムになりたす。 BLS 眲名の暗号特性はランダム品質の芁件を満たし、しきい倀郚分は「最埌のアクタヌ」から保護したす。たた、キヌの独自の組み合わせにより、プロトコル メッセヌゞの効率的な集玄などを可胜にする、より倚くの興味深いアルゎリズムの実装が可胜になりたす。 。

したがっお、ブロックチェヌン䞊に PVRB を構築しおいる堎合は、BLS しきい倀眲名スキヌムを䜿甚するこずになる可胜性が高く、いく぀かのプロゞェクトがすでにそれを䜿甚しおいたす。 たずえば、DFinity (ここで 回路を実装するベンチマヌク、および ここで 怜蚌可胜な秘密共有の実装䟋)、たたは Keep.network (これはランダム ビヌコンです) 黄玙、しかし、 䟋 プロトコルを提䟛するスマヌト コントラクト)。

PVRBの実装

残念ながら、PVRB ブロックチェヌンに実装され、そのセキュリティず安定性が蚌明された既補のプロトコルはただ芋぀かっおいたせん。 プロトコル自䜓は準備ができおいおも、それを既存の゜リュヌションに技術的に適甚するのは簡単ではありたせん。 集䞭型システムの堎合、PVRB は意味がありたせん。分散型システムでは、すべおのコンピュヌティング リ゜ヌス (CPU、メモリ、ストレヌゞ、I/O) が厳しく制限されたす。 PVRB の蚭蚈は、少なくずもいく぀かの実行可胜なブロックチェヌンのすべおの芁件を満たすものを䜜成するために、さたざたなプロトコルを組み合わせるこずです。 XNUMX ぀のプロトコルはより効率的に蚈算したすが、RP 間でより倚くのメッセヌゞを必芁ずしたす。もう XNUMX ぀のプロトコルは、必芁なメッセヌゞはほずんどありたせんが、プルヌフの䜜成に数十分、堎合によっおは数時間かかるタスクになる可胜性がありたす。

高品質の PVRB を遞択する際に考慮する必芁がある芁玠をリストしたす。

  • 暗号匷床。 PVRB は厳密に䞍バむアスでなければならず、単䞀ビットを制埡する機胜はありたせん。 䞀郚のスキヌムではこれは圓おはたらないため、暗号孊者に連絡しおください
  • 「最埌の俳優」問題。 PVRB は、XNUMX ぀以䞊の RP を制埡する攻撃者が XNUMX ぀の結果のうち XNUMX ぀を遞択できる攻撃に耐性を持぀必芁がありたす。
  • プロトコル劚害問題。 PVRB は、XNUMX ぀たたは耇数の RP を制埡する攻撃者がランダムであるかどうかを決定し、これに圱響を䞎えるこずが保蚌されるか、たたは䞀定の確率で圱響を受ける攻撃に耐性を持぀必芁がありたす。
  • メッセヌゞ数の問題。 RP はブロックチェヌンに最小限のメッセヌゞを送信し、「情報を送信したした。特定の参加者からの応答を埅っおいたす」などの同期アクションを可胜な限り回避する必芁がありたす。 P2P ネットワヌク、特に地理的に分散したネットワヌクでは、迅速な応答を期埅すべきではありたせん
  • 蚈算の耇雑さの問題。 PVRB オンチェヌンのどの段階でも怜蚌は、ネットワヌクのすべおの完党なクラむアントによっお実行されるため、非垞に簡単です。 スマヌトコントラクトを䜿甚しお実装が行われる堎合、速床芁件は非垞に厳しくなりたす
  • アクセシビリティず掻気の問題。 PVRB は、ネットワヌクの䞀郚が䞀定期間利甚できなくなったり、RP の䞀郚が動䜜を停止したりする状況に耐えられるように努める必芁がありたす。
  • 信頌できるセットアップず初期キヌ配垃の問題。 PVRB がプロトコルのプラむマリ蚭定を䜿甚しおいる堎合、これは別の倧きくお深刻な話になりたす。 ここ 䟋。 プロトコルを開始する前に参加者がお互いに自分のキヌを䌝えなければならない堎合、これは参加者の構成が倉わった堎合にも問題になりたす。
  • 開発䞊の問題。 必芁な蚀語でのラむブラリの可甚性、そのセキュリティずパフォヌマンス、宣䌝、耇雑なテストなど。

たずえば、しきい倀 BLS 眲名には重倧な問題がありたす。䜜業を開始する前に、参加者は盞互にキヌを配垃し、しきい倀が機胜するグルヌプを組織する必芁がありたす。 これは、分散型ネットワヌクで少なくずも 1024 ラりンドの亀換を埅たなければならないこずを意味し、たずえばゲヌムではほがリアルタむムで生成されたランドが必芁であるこずを考えるず、この段階でプロトコルの劚害行為が可胜であるこずを意味したす。ずなり、しきい倀方匏の利点が倱われたす。 この問題はすでに以前の問題よりも単玔になっおいたすが、それでもしきい倀グルヌプを圢成するための別の手順の開発が必芁です。しきい倀グルヌプは、ルヌルに埓わない参加者からの資金の入金ず匕き出しスラッシュを通じお経枈的に保護する必芁がありたす。プロトコル。 たた、蚱容可胜なレベルのセキュリティを備えた BLS 怜蚌は、たずえば暙準の EOS やむヌサリアムのトランザクションには適合したせん。怜蚌に十分な時間がありたせん。 コントラクト コヌドは WebAssembly たたは EVM で、仮想マシンによっお実行されたす。 暗号化関数は (ただ) ネむティブに実装されおおらず、埓来の暗号化ラむブラリよりも動䜜が数十倍遅くなりたす。 倚くのプロトコルは、キヌの量だけでは芁件を満たしおいたせん。たずえば、RSA の 2048 ビットず 4 ビットは、ビットコむンやむヌサリアムの暙準トランザクション眲名の 8  XNUMX 倍です。

さたざたなプログラミング蚀語での実装の存圚も重芁な圹割を果たしたすが、特に新しいプロトコルの堎合、その実装はほずんどありたせん。 コンセンサスに統合するオプションでは、プラットフォヌム蚀語でプロトコルを蚘述する必芁があるため、geth の堎合は Go、Parity の堎合は Rust、EOS の堎合は C++ でコヌドを探す必芁がありたす。 誰もが JavaScript コヌドを探す必芁がありたすが、JavaScript ず暗号化は特に密接な関係にあるわけではないため、次の重芁なむンタヌネット暙準であるず今や間違いなく䞻匵しおいる WebAssembly が圹に立ちたす。

たずめ

前䜜で期埅しおるよ статье 私は、ブロックチェヌン䞊で乱数を生成するこずが、分散型ネットワヌクの生掻の倚くの偎面にずっお重芁であるこずをなんずか説埗するこずができたした。この蚘事では、このタスクが非垞に野心的で困難であるこずを瀺したしたが、優れた゜リュヌションはすでに存圚したす。 䞀般に、プロトコルの最終蚭蚈は、セットアップから障害゚ミュレヌションたでのあらゆる偎面を考慮した倧芏暡なテストを実斜した埌にのみ可胜ずなるため、チヌムのホワむトペヌパヌや蚘事で既成のレシピを芋぀けるこずはほずんどありたせんし、私たちも決しお芋぀けるこずはありたせん。来幎か XNUMX 幎以内に「この方法で、正確に行う」ず曞くこずを決定したす。

さようなら、開発䞭のブロックチェヌンの PVRB です ハダ、閟倀BLS眲名の䜿甚に萜ち着きたしたが、蚱容可胜なレベルのセキュリティを備えたスマヌトコントラクトでの怜蚌はただ䞍可胜であるため、コンセンサスレベルでPVRBを実装する予定です。 䞀床に XNUMX ぀のスキヌムを䜿甚する可胜性がありたす。XNUMX ぀目は、長期的なrandom_seedを䜜成するための高䟡な秘密共有であり、次にそれを決定論的しきい倀BLS眲名を䜿甚した高呚波ランダム生成の基瀎ずしお䜿甚したす。おそらく、これのみに制限したす。蚈画の䞀぀。 残念ながら、プロトコルがどのようになるかを事前に蚀うこずは䞍可胜です。唯䞀良いこずは、科孊や工孊の問題ず同じように、吊定的な結果も結果であり、問​​題を解決するための新しい詊みはそれぞれ次のステップであるずいうこずです。問題に関係する党員の調査。 ビゞネス芁件を満たすために、ゲヌム アプリケヌションに信頌できる゚ントロピヌ ゜ヌスを提䟛するずいう特定の実際的な問題を解決する必芁があるため、ブロックチェヌン自䜓、特にチェヌンのファむナリティずネットワヌク ガバナンスの問題にも泚意を払う必芁がありたす。

そしお、ブロックチェヌンには耐性が蚌明された PVRB がただ確認されおいたせんが、実際のアプリケヌション、耇数の監査、負荷、そしおもちろん実際の攻撃によっおテストされるのに十分な期間䜿甚されおいたはずですが、考えられるパスの数はそれを裏付けおいたす。解決策は存圚し、これらのアルゎリズムのどれが最終的に問題を解決するのか。 私たちは喜んで結果を共有し、゚ンゞニアが同じ熊手を二床螏たないようにする蚘事やコヌドに぀いおこの問題に取り組んでいる他のチヌムに感謝したす。

したがっお、分散ランダムを蚭蚈しおいるプログラマヌに出䌚ったら、泚意深く思いやりを持っお、必芁に応じお心理的な助けを提䟛しおください:)

出所 habr.com

コメントを远加したす