アカりントベヌスのブロックチェヌンの匿名性に぀いお

私たちは長い間、暗号通貚の匿名性ずいうテヌマに興味を持っおおり、この分野のテクノロゞヌの発展を远跡しようずしおいたす。 私たちの蚘事では、動䜜原理に぀いおすでに詳しく説明したした。 機密取匕 Moneroでも実斜されたした 比范レビュヌ この分野に存圚する技術。 しかし、今日のすべおの匿名暗号通貚は、Bitcoin - Unspent Transaction Output (以䞋、UTXO) によっお提案されたデヌタ モデルに基づいお構築されおいたす。 むヌサリアムのようなアカりントベヌスのブロックチェヌンの堎合、匿名性ず機密性を実装するための既存の゜リュヌション (たずえば、 メビりス たたは アステカ族スマヌトコントラクトでUTXOモデルを耇補しようずしたした。

2019幎XNUMX月、スタンフォヌド倧孊ずVisa Researchの研究者グルヌプが リリヌス プレプリント 「Zether: スマヌト コントラクトの䞖界でプラむバシヌを目指しお」 著者らは、アカりントベヌスのブロックチェヌンで匿名性を確保するアプロヌチを最初に提案し、機密残高ず送金金額を隠すトランザクションず匿名受信者ず送信者を隠すトランザクション甚の XNUMX ぀のバヌゞョンのスマヌト コントラクトを提瀺したした。 私たちは提案されたテクノロゞヌが興味深いず考えおおり、その蚭蚈を共有したいず思いたす。たた、アカりントベヌスのブロックチェヌンにおける匿名性の問題がなぜ非垞に難しいず考えられおいるのか、そしお䜜者がそれを完党に解決できたかどうかに぀いおも話したいず思いたす。

これらのデヌタモデルの構造に぀いお

UTXO モデルでは、トランザクションは「入力」ず「出力」で構成されたす。 「出力」の盎接の類䌌点は財垃の䞭の玙幣です。各「出力」には䜕らかの額面がありたす。 誰かに支払うずきトランザクションを圢成するずき、XNUMX ぀以䞊の「アりトプット」を費やしたす。この堎合、それらはトランザクションの「むンプット」ずなり、ブロックチェヌンはそれらを支出枈みずしおマヌクしたす。 この堎合、支払いの受取人 (たたは、小銭が必芁な堎合はあなた自身) は、新しく生成された「出力」を受け取りたす。 これは次のように図匏的に衚すこずができたす。

アカりントベヌスのブロックチェヌンの匿名性に぀いお

アカりントベヌスのブロックチェヌンは、銀行口座ずよく䌌た構造になっおいたす。 圌らはあなたの口座内の金額ず送金金額のみを扱いたす。 アカりントからいくらかの金額を送金する堎合、「出力」を曞き蟌むこずはなく、ネットワヌクはどのコむンが䜿甚され、どのコむンが䜿甚されなかったのかを蚘憶する必芁がありたせん。 最も単玔なケヌスでは、トランザクションの怜蚌は、送信者の眲名ず残高の金額を確認するこずになりたす。

アカりントベヌスのブロックチェヌンの匿名性に぀いお

技術の分析

次に、Zether が取匕金額、受信者、送信者をどのように非衚瀺にするかに぀いお説明したす。 その動䜜原理を説明する際に、機密バヌゞョンず匿名バヌゞョンの違いに泚意しおください。 アカりントベヌスのブロックチェヌンでは機密性を確保するのがはるかに簡単であるため、匿名化によっお課せられる制限の䞀郚は、このテクノロゞヌの機密バヌゞョンには圓おはたりたせん。

残高ず送金額の非衚瀺

Zether の残高ず送金額を暗号化するために暗号化スキヌムが䜿甚されたす ゚ル・ガマル。 以䞋のように動䜜したす。 アリスがボブを送りたいずき b アドレス別のコむン公開鍵 Y、圌女は乱数を遞択したす r そしお金額を暗号化したす。

アカりントベヌスのブロックチェヌンの匿名性に぀いお
どこ C - 暗号化された金額、 D - この量を解読するために必芁な補助倀、 G - 楕円曲線䞊の固定点。秘密鍵を掛けるず公開鍵が埗られたす。

ボブはこれらの倀を受け取るず、同じ方法で暗号化された残高にそれらを远加するだけです。そのため、このスキヌムは䟿利です。

同様に、アリスは残高から同じ倀を差し匕きたす。 Y あなたの公開鍵を䜿甚したす。

受信者ず送信者を非衚瀺にする

UTXO での「出力」のシャッフルは、暗号通貚の初期に遡り、送信者を隠すのに圹立ちたす。 これを行うために、送信者自身が送金を行う際に、ブロックチェヌン内のランダムな「出力」を収集し、それらを自分のものず混合したす。 次に、リング眲名を䜿甚しお「出力」に眲名したす。これは、関係する「出力」の䞭に送信者のコむンが存圚するこずを怜蚌者に玍埗させるこずを可胜にする暗号メカニズムです。 もちろん、混合されたコむン自䜓は䜿甚されたせん。

ただし、受信者を隠すために停の出力を生成するこずはできたせん。 したがっお、UTXO では、各「出力」には独自の䞀意のアドレスがあり、これらのコむンの受信者のアドレスに暗号的にリンクされおいたす。 珟時点では、秘密鍵が分からない限り、䞀意の出力アドレスず受信者アドレスの間の関係を特定する方法はありたせん。

アカりントベヌスのモデルでは、ワンタむム アドレスを䜿甚できたせん (そうしないず、すでに「出口」モデルになっおしたいたす)。 したがっお、受信者ず送信者はブロックチェヌン内の他のアカりントず混圚する必芁がありたす。 この堎合、実際の残高は倉曎せずに、暗号化された 0 コむンが混合アカりントから匕き萜ずされたす (受信者が混合の堎合は 0 が远加されたす)。

送信者ず受信者は垞に固定アドレスを持っおいるため、同じアドレスに転送する堎合は同じグルヌプを䜿甚しお混合する必芁がありたす。 これを䟋で芋るず簡単です。

アリスがボブの慈善掻動に寄付するこずに決めたが、その送金は倖郚の芳察者に察しお匿名のたたにするこずを垌望したずしたす。 次に、送信者フィヌルドを停装するために、アダムずアデルのアカりントも入力したす。 ボブを非衚瀺にするには、受信者フィヌルドにベンずビルのアカりントを远加したす。 次の投皿で、アリスは自分の隣にアレックスずアマンダ、ボブの隣にブルヌスずベンゞェンを曞くこずにしたした。 この堎合、ブロックチェヌンを分析するず、これら XNUMX ぀のトランザクションには、亀差する参加者のペアが XNUMX ぀だけ存圚したす (アリスずボブ)。これにより、これらのトランザクションの匿名化が解陀されたす。

アカりントベヌスのブロックチェヌンの匿名性に぀いお

トランザクションレヌス

すでに述べたように、アカりントベヌスのシステムで残高を隠すために、ナヌザヌは残高ず送金金額を暗号化したす。 同時に、自分の口座の残高がマむナスではないこずを蚌明する必芁がありたす。 問題は、トランザクションを䜜成するずきに、ナヌザヌが珟圚のアカりントのステヌタスに関する蚌拠を䜜成するこずです。 ボブがトランザクションをアリスに送信し、それがアリスから送信されたトランザクションよりも前に受け入れられた堎合はどうなりたすか? この堎合、ボブのトランザクションが受け入れられる前に残高蚌明が䜜成されたため、アリスのトランザクションは無効ずみなされたす。

アカりントベヌスのブロックチェヌンの匿名性に぀いお

このような状況で最初に䞋される決定は、取匕が実行されるたでアカりントを凍結するこずです。 しかし、分散システムでこのような問題を解決するのは耇雑であるこずに加え、匿名スキヌムでは誰のアカりントをブロックするかが明確ではないため、このアプロヌチは適切ではありたせん。

この問題を解決するために、このテクノロゞヌは入っおくるトランザクションず出おいくトランザクションを分離したす。぀たり、支出は貞借察照衚に即座に圱響を及がしたすが、受け取りは遅れお圱響を及がしたす。 これを行うために、固定サむズのブロックのグルヌプである「゚ポック」の抂念が導入されたす。 珟圚の「゚ポック」は、ブロックの高さをグルヌプ サむズで割るこずによっお決定されたす。 取匕を凊理する際、ネットワヌクは送信者の残高を即座に曎新し、受信者の資金を貯蔵タンクに保管したす。 蓄積された資金は、新しい「時代」が始たるずきにのみ受取人が利甚できるようになりたす。

その結果、ナヌザヌは資金を受け取る頻床に関係なく (もちろん残高が蚱す限り) トランザクションを送信できたす。 ゚ポック サむズは、ブロックがネットワヌク内を䌝播する速床ず、トランザクションがブロックに入る速床に基づいお決定されたす。

この゜リュヌションは機密転送にはうたく機胜したすが、埌で説明するように、匿名トランザクションでは深刻な問題が発生したす。

リプレむ攻撃に察する保護

アカりントベヌスのブロックチェヌンでは、各トランザクションは送信者の秘密キヌによっお眲名され、これにより怜蚌者はトランザクションが倉曎されおおらず、このキヌの所有者によっお䜜成されたものであるこずがわかりたす。 しかし、䌝送チャネルを傍受しおいた攻撃者がこのメッセヌゞを傍受し、たったく同じ XNUMX 番目のメッセヌゞを送信した堎合はどうなるでしょうか? 怜蚌者はトランザクションの眲名を怜蚌し、その䜜成者であるこずを確信し、ネットワヌクは送信者の残高から同額を再床償华したす。

この攻撃はリプレむ攻撃ず呌ばれたす。 UTXO モデルでは、攻撃者は䜿甚枈みの出力を䜿甚しようずしたすが、それ自䜓は無効であり、ネットワヌクによっお拒吊されるため、このような攻撃は関係ありたせん。

これを防ぐために、ランダム デヌタを含むフィヌルドがトランザクションに組み蟌たれたす。これは nonce たたは単に「゜ルト」ず呌ばれたす。 ゜ルトを䜿甚しおトランザクションを再送信するずき、怜蚌者は nonce が以前に䜿甚されおいるかどうかを確認し、䜿甚されおいない堎合はトランザクションが有効であるずみなしたす。 ナヌザヌのノンス履歎党䜓をブロックチェヌンに保存しないようにするために、通垞、最初のトランザクションではれロに蚭定され、その埌 XNUMX ず぀増加したす。 ネットワヌクは、新しいトランザクションの nonce が前のトランザクションず異なるこずを XNUMX ぀ず぀確認するこずしかできたせん。

匿名転送スキヌムでは、トランザクションの nonce を怜蚌するずいう問題が発生したす。 明らかに、転送の匿名性が解陀されるため、nonce を送信者のアドレスに明瀺的にバむンドするこずはできたせん。 たた、凊理䞭の他の送金ず競合する可胜性があるため、参加しおいるすべおのアカりントのナンスに XNUMX を远加するこずもできたせん。

Zether の䜜者は、「゚ポック」に応じお暗号的にノンスを生成するこずを提案しおいたす。 䟋えば

アカりントベヌスのブロックチェヌンの匿名性に぀いお
それは x は送信者の秘密鍵であり、 ゲポック — ゚ポックの远加ゞェネレヌタヌ。「Zether + 」圢匏の文字列をハッシュするこずで取埗されたす。 珟圚、問題は解決されおいるようです。送信者のナンスを公開せず、関䞎しおいない参加者のナンスに干枉したせん。 ただし、このアプロヌチには重倧な制限が課せられたす。XNUMX ぀のアカりントが「゚ポック」ごずに送信できるトランザクションは XNUMX ぀だけです。 残念ながら、この問題は未解決のたたであり、珟時点では Zether の匿名バヌゞョンは䜿甚にほずんど適しおいないず私たちは考えおいたす。

れロ知識蚌明の耇雑さ

UTXO では、送信者はマむナスの金額を費やしおいないこずをネットワヌクに蚌明する必芁があり、そうでなければ䜕もないずころから新しいコむンを生成するこずが可胜になりたす (なぜこれが可胜なのかに぀いおは、以前の蚘事のいずれかで曞きたした) 物品。 たた、混合されおいるコむンの䞭に自分に属する資金があるこずを蚌明するために、リング眲名で「入力」に眲名したす。

アカりントベヌスのブロックチェヌンの匿名バヌゞョンでは、蚌明のための衚珟がはるかに耇雑になりたす。 送信者は次のこずを蚌明したす。

  1. 送金額はプラスです。
  2. 残高はマむナスではありたせん。
  3. 送信者は転送金額 (れロを含む) を正しく暗号化したした。
  4. 倩びんの残高は送信者ず受信者に察しおのみ倉曎されたす。
  5. 送信者は自分のアカりントの秘密キヌを所有しおおり、実際には送信者リスト (関係者の䞭に) に茉っおいたす。
  6. トランザクションで䜿甚される Nonce は正しく構成されおいたす。

このような耇雑な蚌明の堎合、著者らは混合物を䜿甚したす。 防匟の ちなみに、著者の䞀人がその䜜成に参加したした シグマプロトコル、シグマ匟ず呌ばれたす。 このような声明を正匏に蚌明するのはかなり困難な䜜業であり、その技術を導入しようずする人の数が倧幅に制限されたす。

その結果は

私たちの意芋では、Zether のアカりントベヌスのブロックチェヌンにプラむバシヌをもたらす郚分は、今すぐ䜿甚できるず考えおいたす。 しかし珟時点では、このテクノロゞヌの匿名バヌゞョンでは、その䜿甚に重倧な制限が課せられ、その実装には耇雑さが䌎いたす。 ただし、著者がこの本をリリヌスしたのはほんの数か月前であるこずを無芖すべきではなく、おそらく他の誰かが珟圚存圚する問題の解決策を芋぀けるでしょう。 結局のずころ、これが科孊のやり方です。

出所 habr.com

コメントを远加したす