ブロックチェヌンのデゞタル眲名に基づくランダムなオラクル

アむデアから実装たで: 既存の楕円曲線デゞタル眲名スキヌムを倉曎しお決定論的にし、それに基づいおブロックチェヌン内で怜蚌可胜な疑䌌乱数を取埗する機胜を提䟛したす。

ブロックチェヌンのデゞタル眲名に基づくランダムなオラクル

アむデア

2018 幎の秋、Waves ブロックチェヌンには次のものが含たれおいたした。 最初のスマヌトコントラクトが有効化されたした、入手の可胜性に぀いおすぐに疑問が生じたした。 擬䌌乱数信頌できるずいうこず。

この疑問に頭を悩たせた結果、私は最終的に「どんなブロックチェヌンも现胞であり、閉じたシステム内で信頌できる゚ントロピヌ源を取埗するこずは䞍可胜である」ずいう結論に達したした。

しかし、それでも私が気に入ったアむデアが XNUMX ぀ありたす。 ランダムオラクル 決定論的アルゎリズムを䜿甚しおナヌザヌ デヌタに眲名するず、ナヌザヌは垞に公開キヌを䜿甚しおそのような眲名を怜蚌でき、結果の倀が䞀意であるこずを確認できたす。 オラクルは、どんなに望んでも䜕も倉えるこずができず、アルゎリズムは明癜な結果を生み出したす。 基本的に、ナヌザヌは結果を蚘録したすが、オラクルが結果を公開するたでは知りたせん。 オラクルをたったく信頌できないこずがわかりたしたが、その仕事の結果を確認しおください。 そしお、怜蚌が成功した堎合、そのような眲名は擬䌌乱数の゚ントロピヌの゜ヌスず芋なすこずができたす。

Waves ブロックチェヌン プラットフォヌムは眲名スキヌムを䜿甚しおいたす EdDSA варОаМт Ed25519。 このスキヌムでは、眲名は倀 R ず S で構成されたす。ここで、R はランダムな倀に䟝存し、S は眲名されるメッセヌゞ、秘密鍵、および R ず同じ乱数に基づいお蚈算されたす。同じものに固有の䟝存関係はありたせん。ナヌザヌ メッセヌゞには有効な眲名が倚数ありたす。

明らかに、そのような眲名は玔粋な圢では擬䌌乱数の゜ヌスずしお䜿甚できたせん。これは、眲名が非決定的であり、したがっおオラクルによっお簡単に操䜜される可胜性があるためです。

しかし、結局のずころ、それを決定論的にするこずは実際には可胜です。

倧きな期埅を抱いおいたした 怜蚌可胜なランダム関数 (VRF)、しかし、ハヌドりェアを研究した埌、このオプションを攟棄する必芁がありたした。 VRF は眲名ずその蚌明の決定論的バヌゞョンを提䟛したすが、アルゎリズムにはオラクル操䜜のためのブラック ホヌルを開く奇劙な堎所がありたす。 ぀たり、kの倀を蚈算するずき(5.1セクション) 秘密鍵が䜿甚されたすが、これはナヌザヌには䞍明のたたです。これは、ナヌザヌが k の蚈算の正しさを怜蚌できないこずを意味したす。぀たり、オラクルは必芁な k の倀を䜿甚できるず同時に、察応関係のデヌタベヌスを維持できたす。 VRF の芳点から垞に正しい結果を再蚈算できるようにするために、 k ず眲名されたデヌタの倀を蚈算したす。 秘密キヌを公開せずに VRF に基づく図面を衚瀺する堎合は、賢明に行うこずができたす。キヌを公開する必芁があるか、たたは k の蚈算から陀倖する必芁があるこずを瀺したす。そうすれば、最初の眲名が衚瀺されたずきに秘密キヌが自動的に公開されたす。 。 䞀般に、すでに述べたように、ランダムなオラクルの奇劙なスキヌムです。

少し考えお地元のアナリストの協力を埗た結果、VECRO の䜜業スキヌムが誕生したした。

VECROずはVerifiable Elliptic Curve Random Oracleの略で、ロシア語で楕円曲線䞊の怜蚌可胜なランダムオラクルを意味したす。

すべおは非垞に単玔であるこずが刀明したした。決定論を達成するには、眲名されるメッセヌゞが衚瀺される前に R の倀を修正する必芁がありたす。 R がコミットされ、眲名されるメッセヌゞの䞀郚である堎合、これにより眲名されるメッセヌゞ内で R がコミットされるこずがさらに保蚌され、S の倀はナヌザヌのメッセヌゞによっお䞀意に決定されるため、擬䌌乱数の゜ヌスずしお䜿甚できたす。

このようなスキヌムでは、R がどのように固定されるかは問題ではなく、これは䟝然ずしおオラクルの責任です。 S はナヌザヌによっお䞀意に決定されるこずが重芁ですが、その倀はオラクルが公開するたで䞍明です。 私たちが望んでいたものはすべお

固定 R に぀いお蚀えば、次の点に泚意しおください。 リナヌスR さたざたなメッセヌゞに眲名するずきに、EdDSA スキヌム内の秘密キヌを䞀意に明らかにしたす。 オラクルの所有者にずっお、R を再利甚しおさたざたなナヌザヌ メッセヌゞに眲名する可胜性を排陀するこずが非垞に重芁になりたす。 ぀たり、䜕らかの操䜜や共謀が行われた堎合、オラクルは垞に秘密鍵を倱う危険がありたす。

合蚈するず、オラクルは、倀 R を固定する初期化ず、倀 S を返す眲名の XNUMX ぀の機胜をナヌザヌに提䟛する必芁がありたす。この堎合、R、S のペアは、固定された倀を含むナヌザヌ メッセヌゞの通垞の怜蚌可胜な眲名です。倀 R ず任意のナヌザヌ デヌタ。

ブロックチェヌンのこのスキヌムは通垞のものにすぎないず䞻匵するこずができたす。 コミット拡匵スキヌム。 本質的には、はい、それは圌女です。 しかし、いく぀かのニュアンスがありたす。 たず、オラクルはすべおの操䜜においお垞に同じキヌで動䜜したす。これは、たずえば、契玄で䜿甚するのに䟿利です。 第二に、オラクルが誀っお動䜜した堎合に秘密キヌを倱うリスクがありたす。たずえば、オラクルでは結果のサンプルを䜜成できたすが、その堎合、秘密キヌを芋぀けお完党に取埗するには XNUMX ぀のテストを行うだけで十分です。りォレットぞのアクセス。 第䞉に、ブロックチェヌン䞊でネむティブに怜蚌可胜であり、ランダム性の源である眲名は矎しいです。

半幎間、実装のアむデアが頭の䞭でくすぶっおおり、぀いにやる気が圢になっお珟れたした。 Waves Labs からの助成金。 倚額の助成金には倧きな責任が䌎いたすので、プロゞェクトは必ず存続したす。

具珟化

そこで、このプロゞェクトでは、 VECROが実装されたした ナヌザヌずオラクル間の転送トランザクションを䜿甚しお、Waves ブロックチェヌン䞊でリク゚スト/レスポンス モヌドで動䜜したす。 同時に、䞊蚘のロゞックに埓っお厳密に䜜業を制埡するスクリプトが Oracle アカりントにむンストヌルされたす。 Oracle トランザクションが怜蚌され、ナヌザヌ察話のチェヌン党䜓が埩元されたす。 XNUMX ぀のトランザクションはすべお最終倀の怜蚌に関䞎しおおり、スマヌト コントラクトはそれらを厳密な怜蚌スレッドで結び付け、すべおの倀を段階的にチェックし、操䜜の䜙地を䞎えたせん。

もう䞀床、それを脇に眮いお、より明確にしたす。 オラクルは、提案されたスキヌムに埓っお機胜するだけではありたせん。 その䜜業は、確立された組織によっおブロックチェヌンレベルで完党に制埡されたす。 スマヌトコントラクトでしっかりず。 巊に進むず、トランザクションは単に完了したせん。 したがっお、トランザクションがブロックチェヌンに含たれおいる堎合、ナヌザヌは䜕もチェックする必芁さえありたせん。䜕癟ものネットワヌク ノヌドがすでにすべおをチェックしおいたす。

珟圚、Waves メむンネット䞊で実行されおいる VECRO が XNUMX ぀ありたす (独自の VECRO を実行するこずもできたす。それは難しいこずではありたせん。 構成䟋を芋おみたしょう。 珟圚のコヌドは PHP で実行されたす ( WavesKit、それに぀いお 前にも蚀いたしたね).

Oracle サヌビスを䜿甚するには、次のこずを行う必芁がありたす。

  • Rを修正したす。
    • 少なくずも 0.005 個の Wave を oracle ゚むリアス init@vecr に送信したす。
    • オラクルからナヌザヌぞの 1 R-vecr トヌクンの転送時に添付フィヌルドで R コヌドを受け取りたす。
  • 眲名を受け取りたす。
    • 少なくずも 0.005 Waves を oracle ゚むリアス random@vecr に送信し、以前に受信した R コヌドず远加のナヌザヌ デヌタを添付フィヌルドに指定しなければなりたせん。
    • オラクルからナヌザヌぞの 1 ぀の S-vecr トヌクンの転送時に添付フィヌルドで S コヌドを受け取りたす。
  • 擬䌌乱数の゜ヌスずしおSコヌドを䜿甚したす。

珟圚の実装のニュアンス:

  • オラクルに送信された Wave は、最倧 1 Wave たで、ナヌザヌぞの返品トランザクションの手数料ずしお䜿甚されたす。
  • R コヌドは、「R」文字の 32 バむトず、base58 で゚ンコヌドされた XNUMX バむトの R 倀を連結したものです。
  • 添付ファむルの R コヌドが最初にあり、ナヌザヌ デヌタは R コヌドの埌に​​来る必芁がありたす。
  • S コヌドは、文字「S」の 32 バむトず、base58 で゚ンコヌドされた XNUMX バむトの S の倀を連結したものです。
  • S はモゞュロ陀算の結果であるため、S を完党な 256 ビットの擬䌌乱数ずしお䜿甚するこずはできたせん (この数倀は最倧 252 ビットの擬䌌乱数ず芋なすこずができたす)。
  • 最も簡単なオプションは、S コヌド ハッシュを擬䌌乱数ずしお䜿甚するこずです。

Sコヌド受信䟋

技術的な芳点から芋るず、Oracle は完党に動䜜する準備が敎っおおり、安党に䜿甚できたす。 平均的なナヌザヌが䜿甚するずいう芳点から芋るず、䟿利なグラフィカル むンタヌフェむスが䞍足しおいるため、これは埅぀必芁がありたす。

ご質問にお答えしたり、コメントを受け付けたりさせおいただきたすので、よろしくお願いいたしたす。

出所 habr.com

コメントを远加したす