論文翻訳: Algorand: Scaling Byzantine Agreements for Cryptocurrencies
MIT CSAIL
概要
Algorand は 1 分程度のレイテンシでトランザクションを確定する新しい暗号通貨である。Algorand は、一部のユーザが悪意を持っておりネットワークが一時的に分断されている場合でも、ユーザが確定したトランザクションについて異なる見え方ができないことを保証する。対照的に、既存の暗号通貨では一時的な分岐が可能であるために高い信頼性でトランザクションを確定するには 1 時間程度の長い時間が必要である。
Algorand は新しいビザンチン合意 (BA ; Byzantine Agreement) プロトコルを使用して次のトランザクションのセットでユーザ間のコンセンサスに到達する。多くのユーザにコンセンサスをスケールするために、Algorand は Verifiable Random Function に基づく新しいメカニズムを使用している。これにより、ユーザは BA に参加して次の一連のトランザクションに合意するために選択されているかをプライベートで確認し、それらのネットワークメッセージにその選択の証明を含むことができる。Algorand の BA プロトコルでは、ユーザは自身の秘密鍵以外の秘密状態を保持しない。これにより Algorand はメッセージを送信した直後に参加者を置き換えることができる。これは特定の参加者の身元が明らかになった後、選択された参加者に対する標的型攻撃を軽減することができる。
Algorand を実装し 1,000 の EC2 仮想マシンでパフォーマンスを評価し、最大 500,000 人のユーザをシミュレートする。実験結果は Algorand が 1 分未満でトランザクションを確定し、125 × Bitcoin のスループットを達成し、より多くのユーザにスケールしてもほとんどペナルティがないことを示している。
Table of Contents
- 概要
- 1 導入
- 2 RELATED WORK [under construction]
- 3 GOALS AND ASSUMPTIONS
- 4 オーバービュー
- 5 暗号抽選
- 6 ブロック提案
- 7
- 8 ALGORAND
- 9 IMPLEMENTATION
- 10 EVALUATION
- 11 FUTURE WORK
- 12 CONCLUSION
- ACKNOWLEDGEMENTS
- REFERENCES
- 翻訳抄
1 導入
Bitcoin などの暗号通貨はスマートコントラクト[24, 50]や fair protocols [2] などの新しいアプリケーションを利用可能にし、通貨変換[12]を簡素化し、トランザクションを規制する信頼された中央当局の設置を回避することができた。しかし現在の提案はトランザクションのレイテンシとシラン性のトレードオフに苦しめられている。例えば Bitcon でトランザクションが確定されたという高い信頼を得るには約 1 時間の長い待ち時間が必要である[7]。一方、低レイテンシを必要とするアプリケーションは、トランザクションが確定されるかどうかを確実に確認することはできず、支払い者が二重支出 (double spending) を行わないことを信頼する必要がある[46]。
二重支出は暗号通貨が直面する革新的な問題であり、1 ドルしか保有していない敵対者が 2 人の異なるユーザに 1 ドルずつを提供するというものである。暗号通貨は、トランザクションの順序付きログ ("ブロックチェーン") でコンセンサスに達することにより二重支出を防いでいる。オープンな構成のため合意に至ることは難しい: 誰でも参加できるため、攻撃者は任意の数の偽名 ("Sybils") [21] を作成でき、正直なユーザの一部を必要とする伝統的な合意プロトコル[15]に依存することは不可能である。
Bitcon[42]やその他の暗号通貨[23, 54]は、ユーザがブロックチェーンを成長させるためにハッシュ計算を繰り返し行わなければならない Proof-of-Work (PoW) を使用してこの問題に対処しており、最も長いチェーンが信頼できるとみなされる。PoW は攻撃者が偽名を使うことで利益を得ないことを保証している。ただし、PoW は 2 つの異なるブロックチェーンが同じ長さを持ち、どちらのブロックチェーンも他方に取って代わることがないフォークの可能性を許容している。フォークを緩和するには 2 つの不幸な犠牲が必要である: チェーンを 1 つのブロックで成長させる時間をかなり長くする必要があり (例えば Bitcoin では 10 分)、アプリケーションは自分のトランザクションが信頼できるチェーンに取り込まれることを保証するためにいくつかのブロック (Bitcon では 6 ブロックが推奨されている[7]) を待機する必要がある。その結果、Bitcoin のトランザクションの確定には約1時間がかかる。
この論文では 1 分程度のオーダーでトランザクションを確定するように設計された新しい暗号通貨である Algorand を紹介する。Algorand のコアは
Algorand は 3 つの課題に直面している。第一に、Algorand は攻撃者がビザンチン合意プロトコルに影響を与えるために多数の偽名を作る Sybil 攻撃を回避する必要がある。第二に、
2 RELATED WORK
3 GOALS AND ASSUMPTIONS
4 オーバービュー
Algorand は各ユーザに公開鍵を要求する。Algorand はブロックチェーンと呼ばれるトランザクションのログを保持している。各トランザクションはあるユーザの公開鍵によって署名され、別のユーザの公開鍵に送金される支払いである。Algorand は Bitcoin に似た非同期ラウンドでブロックチェーンを成長させている。ラウンド事にトランザクションのセットと前方のブロックへのポインタを含む新しいブロックがブロックチェーンに追加される。この論文の残りの部分ではユーザのコンピュータ上で動作する Algorand ソフトウェアをそのユーザと呼ぶ。
Algorand ユーザはゴシッププロトコルを介して通信する。ゴシッププロトコルは、ユーザが新しいトランザクションを送信するために使用される。各ユーザは Figure 1 に示すように、次のブロックを提案するために選択された場合に備えて、自分がリッスンした保留中のトランザクションのブロックを収集する。Algorand は
もう一つのケースは、ネットワークの同期が弱い (つまり完全に敵対者に支配されており、敵対者が制御を維持できる期間の上限が設定されている) ことである。この場合
次に Algorand のコンポーネントがどのように適合するかを説明する。
ゴシッププロトコル. Algorand は (Bitcoin に類似した) ゴシップネットワークを実装し、各ユーザがゴシップメッセージの送信先となるピアの小さなランダムセットを選択する。メッセージが偽造されないように、全てのメッセージは下の送信者の秘密鍵で署名される。他のユーザは、中継する前に署名が有効であることを確認する。転送ループを回避するためにユーザは同じメッセージを 2 回中継してはいけない。Algorand は TCP を介してゴシップを実装し、所有する金額に基づいてピアの選択を比較検討し汚染攻撃 (pollution attack) を軽減する。
ブロック提案 (§6). 全ての Algorand ユーザは暗号抽選を実行して特定ラウンドでブロックを提案するために選択されているかを判定する。§5 で抽選について説明しているが、高レベルでは、抽選によって少数のユーザがランダムに選択され、そのアカウントの残高で重み付けされ、選択された各ユーザの間で比較可能な優先順位と、選択されたユーザの優先度の証明を各選択ユーザに提供する。確率はランダムであるため、ブロックを提案するために選択された複数のユーザが存在する可能性があり、優先度は、全てのユーザが採用すべきブロックを決定する。選ばれたユーザは、未処理のトランザクションのブロックを優先順位と証明と共にゴシッププロトコルを通じて配布する。ユーザが高い確率で 1 つのブロックに収束することを保証するために、ブロックの提案は提案ユーザの優先度に基づいて優先され、ユーザはブロックを受信するために一定時間待機する。
効率. ネットワークが強力に同期している場合、
5 暗号抽選
暗号抽選 (cryptographic sortition) はユーザごとの重みに応じてランダムなユーザサブセットを選択するアルゴリズムである; つまり、重みの集合
抽選は Verifiable Random Functions (VRFs) [39] を使用して実装されている。簡単に言うと任意の入力文字列
5.1 選択手続き
Algorand は VRF を使用して Algorithm 1 に示すように暗号化抽選を実装する。抽選にはユーザが選択できる、様々なロールを区別するロールパラメータを必要とする; 例えば、ユーザはあるラウンドでブロックを提案するように選択されたり、
抽選はユーザの重みに比例してユーザを選択することが重要である; さもなくば抽選は Sybil 攻撃を防衛できないだろう。一つの微妙な含みは (訳注: 同一のラウンド内の同一のロールに対して) ユーザが複数回選択される可能性があるということである (つまり重みが高いことによって)。抽選手続きはユーザが何回選択されたかを示すパラメータ
金額に比例して選択を行うために Algorand の通貨単位それぞれを異なる "サブユーザ" と考える。ユーザ
Algorithm 1 に示すように、ユーザは
ユーザの
抽選には2つの重要な特徴を提供する。1つ目は、VRF はランダムシードが与えられると擬似乱数ハッシュ値を出力する。これは本質的に
Algorithm 2 に示されている抽選証明を検証するための擬似コードは、同じ構造に従ってそのユーザが選択されたかを検証する (ユーザの公開鍵に対する重みはその台帳から取得する)。この関数は選択されたサブユーザの数を返す (あるいはユーザが全く選択されなかった場合はゼロ)。
5.2 シードの選択
抽選には無作為に選ばれた公開シードが必要である。Algorand の場合、各ラウンドですべての人に公開されていて敵対者が制御することができないシードを必要とする; そうでなければ攻撃者は故障したユーザの選択を支持するシードを選択できる可能性がある。
Algorand の各ラウンドで新しいシードが公開される。Algorand のラウンド
このシード (および対応する VRF 証明
敵対者による抽選操作、つまり別の committee に対するユーザの選択操作を制限するために、(Algorithm 1 と Algorithm 2 に渡される) 選択シードを
5.3 シードに先行した の選択
この look-back 期間
テクニカルレポート [27] の Appendx A では、ネットワークが強く接続されている期間
6 ブロック提案
各ラウンドであるブロックが提案されることを保証するために、Algorand はブロック提案役に 1 より大きい抽選しきい値
不要なブロック転送の最小化. 複数の提案者を選ぶリスクの一つは、それぞれが自分の提案するブロックをゴシップすることである。ブロックが大きい場合 (例えば 1MB)、これはかなりの通信コストを生じうる。このコストを削減するために抽選ハッシュを使用してブロック提案に優先順位を付ける: ユーザ
Algorand ユーザは、そのユーザが現在までに表示した最高の優先順位を持たないブロックに関するメッセージを破棄する。Algorand は 2 種類のメッセージをゴシップする: 一つは (抽選から) 選択されたブロック提案者の優先度と証明のみを含み、もう一つはブロック全体を含んでいる。これには提案者の抽選ハッシュと証明も含まれている。最初の種類のメッセージは小さく (約 200 バイト)、ゴシップネットワークを通じて迅速に伝播する。これらのメッセージにより、ほとんどのユーザは誰が最も優先度の高い提案者を知ることができるため、他に提案されたブロックをすぐに破棄できる。
ブロック提案の待機. 各ユーザはゴシッププロトコルを介してブロック提案を受け取るために一定の時間待たなければならない。この時間間隔を選択しても Algorand の安全性保証には影響しないがパフォーマンスにとっては重要である。待機時間を短くすると提案を受信できなくなる。ユーザがブロック提案を受け取れなければ、ユーザは
ブロック提案を待機する適切な時間を決定するために、我々はユーザが自分自身を見つける可能性のあるシナリオを考察した。ユーザがラウンド
上記のシナリオの最初の 2 ステップでユーザが正確に正しい量を待つことは不可能である。従って Algorand はこれらの量 (異なるユーザが
悪意的な提案者. 一部のブロック提案者が悪意的だったとしても、最悪のシナリオは別の Algorand ユーザを騙して異なるブロックで
7
各フェーズはいくつかのインタラクティブなステップで構成されている; 最初のフェーズは常に 2 ステップをとり、次のフェーズは最高優先順位のブロック提案者が正直 (全てのユーザに同じブロックを送信している) であったならば 2 ステップを取る。そして、我々の分析で示しているように、それぞれのステップで委員会参加者の大部分と共謀した悪意を持つ最高優先順位の提案者という最悪ケースの場合 11 ステップが予想される。
各ステップでは全ての委員会メンバーが何らかの値に対して投票を行い、全てのユーザがその投票をカウントする。ある値に対してしきい値を超える投票を受け取ったユーザは、次のステップで (委員会に選ばれた場合) その値に投票する。ユーザがどの値に対しても十分な票を得られない場合、タイムアウトし、次のステップに対する投票の選択はステップ番号によって決まる。
一般的なケースでは、ネットワークが強力に同期しており、最高優先順位のブロック提案者が正直だった場合
7.1 の主な手順
Algorand によって呼び出される
効率化のために
7.2 Voting
7.3 Reduction
7.4 Binary Agreement
7.5 Committee size
8 ALGORAND
8.1 Block format
8.2 Safety and liveness
8.3 Bootstrapping
8.4 Communication
9 IMPLEMENTATION
10 EVALUATION
10.1 Latency
10.2 Throughput
10.4 Misbehaving users
10.5 Timeout parameters
11 FUTURE WORK
12 CONCLUSION
ACKNOWLEDGEMENTS
REFERENCES
- M. Abd-El-Malek, G. R. Ganger, G. R. Goodson, M. K. Reiter, and J. J. Wylie. Fault-scalable Byzantine fault-tolerant services. In Proceedings of the 20th ACM Symposium on Operating Systems Principles (SOSP), pages 59–74, Brighton, UK, Oct. 2005.
- I. Bentov and R. Kumaresan. How to use Bitcoin to design fair protocols. In Proceedings of the 34th Annual International Cryptology Conference (CRYPTO), Santa Barbara, CA, Aug. 2014.
- I. Bentov, C. Lee, A. Mizrahi, and M. Rosenfeld. Proof of activity: Extending Bitcoin’s proof of work via proof of stake. In Proceedings of the 2014 Joint Workshop on Pricing and Incentives in Networks and Systems, Austin, TX, June 2014.
- I. Bentov, A. Gabizon, and A. Mizrahi. Cryptocurrencies without proof of work. In Proceedings of the 2016 Financial Cryptography and Data Security Conference, 2016.
- I. Bentov, P. Hubáček, T. Moran, and A. Nadler. Tortoise and hares consensus: the Meshcash framework for incentive-compatible, scalable cryptocurrencies. Cryptology ePrint Archive, Report 2017/300, Apr. 2017. http://eprint.iacr.org/.
- D. J. Bernstein. Curve25519: New Diffie-Hellman speed records. In Proceedings of the 9th International Conference on Theory and Practice in Public-Key Cryptography (PKC), pages 207–228, New York, NY, Apr. 2006.
- Bitcoin Wiki. Confirmation. https://en.bitcoin.it/wiki/Confirmation, 2017.
- BitcoinWiki. Mining hardware comparison, 2016. https://en.bitcoin.it/wiki/Mining_hardware_comparison.
- BitcoinWiki. Bitcoin scalability. https://en.bitcoin.it/wiki/Scalability, 2017.
- BitcoinWiki. Proof of stake. https://en.bitcoin.it/wiki/Proof_of_Stake, 2017.
- D. Boneh and M. K. Franklin. Identity-based encryption from the Weil pairing. In Proceedings of the 21st Annual International Cryptology Conference (CRYPTO), Santa Barbara, CA, Aug. 2001.
- G. Brockman. Stellar, July 2014. https://stripe.com/blog/stellar.
- V. Buterin. Minimal slashing conditions. https://medium.com/@VitalikButerin/minimalslashing-conditions-20f0b500fc6c, Mar. 2017.
- C. Cachin, K. Kursawe, F. Petzold, and V. Shoup. Secure and efficient asynchronous broadcast protocols. In Proceedings of the 21st Annual International Cryptology Conference (CRYPTO), pages 524–541, Santa Barbara, CA, Aug. 2001.
- M. Castro and B. Liskov. Practical Byzantine fault tolerance and proactive recovery. ACM Transactions on Computer Systems, 20(4), Nov. 2002.
- J. Chen and S. Micali. Algorand. Technical report, 2017. URL http://arxiv.org/abs/1607.01341.
- A. Clement, E. L. Wong, L. Alvisi, M. Dahlin, and M. Marchetti. Making Byzantine fault tolerant systems tolerate Byzantine faults. In Proceedings of the 6th Symposium on Networked Systems Design and Implementation (NSDI), pages 153–168, Boston, MA, Apr. 2009.
- C. Decker and R. Wattenhofer. Information propagation in the Bitcoin network. In Proceedings of the 13th IEEE International Conference on Peer-to-Peer Computing, Sept. 2013.
- R. Dingledine, N. Mathewson, and P. Syverson. Tor: The second-generation onion router. In Proceedings of the 13th Usenix Security Symposium, pages 303–320, San Diego, CA, Aug. 2004.
- N. Döttling and S. Garg. Identity-based encryption from the Diffie-Hellman assumption. In Proceedings of the 37th Annual International Cryptology Conference (CRYPTO), pages 537–569, Santa Barbara, CA, Aug. 2017.
- J. R. Douceur. The Sybil attack. In Proceedings of the 1st International Workshop on Peer-to-Peer Systems (IPTPS ’02), Cambridge, MA, Mar. 2002.
- P. Erdős and A. Rényi. On the evolution of random graphs. Publications of the Mathematical Institute of the Hungarian Academy of Sciences, 5:17–61, 1960.
- Ethereum Foundation. Ethereum, 2016. https://www.ethereum.org/.
- Ethereum Foundation. Create a democracy contract in Ethereum, 2016. https://www.ethereum.org/dao.
- I. Eyal and E. G. Sirer. Majority is not enough: Bitcoin mining is vulnerable. In Proceedings of the 2013 Financial Cryptography and Data Security Conference, Mar. 2014.
- I. Eyal, A. E. Gencer, E. G. Sirer, and R. van Renesse. Bitcoin-NG: A scalable blockchain protocol. In Proceedings of the 13th Symposium on Networked Systems Design and Implementation (NSDI), pages 45–59, Santa Clara, CA, Mar. 2016.
- Y. Gilad, R. Hemo, S. Micali, G. Vlachos, and N. Zeldovich. Algorand: Scaling Byzantine agreements for cryptocurrencies. Cryptology ePrint Archive, Report 2017/454, Version 20170924:210956, Sept. 2017. http://eprint.iacr.org/.
- S. Goldberg, M. Naor, D. Papadopoulos, and L. Reyzin. NSEC5 from elliptic curves: Provably preventing DNSSEC zone enumeration with shorter responses. Cryptology ePrint Archive, Report 2016/083, Mar. 2016. http://eprint.iacr.org/.
- E. Heilman, A. Kendler, A. Zohar, and S. Goldberg. Eclipse attacks on Bitcoin’s peer-to-peer network. In Proceedings of the 24th Usenix Security Symposium, pages 129–144, Washington, DC, Aug. 2015.
- S. Higgins. Bitcoin mining pools targeted in wave of DDoS attacks. Mar. 2015. https://www.coindesk.com/bitcoin-mining-pools-ddos-attacks/.
- A. Kiayias, I. Konstantinou, A. Russell, B. David, and R. Oliynykov. Ouroboros: A provably secure proof-of-stake blockchain protocol. Cryptology ePrint Archive, Report 2016/889, 2016. http://eprint.iacr.org/.
- S. King and S. Nadal. PPCoin: Peer-to-peer cryptocurrency with proof-of-stake, Aug. 2012. https://peercoin.net/assets/paper/peercoinpaper.pdf.
- E. Kokoris-Kogias, P. Jovanovic, N. Gailly, I. Khoffi, L. Gasser, and B. Ford. Enhancing Bitcoin security and performance with strong consistency via collective signing. In Proceedings of the 25th Usenix Security Symposium, pages 279–296, Austin, TX, Aug. 2016.
- R. Kotla, L. Alvisi, M. Dahlin, A. Clement, and E. L. Wong. Zyzzyva: Speculative Byzantine fault tolerance. ACM Transactions on Computer Systems, 27(4):7:1–39, 2009.
- L. Lamport. The part-time parliament. ACM Transactions on Computer Systems, 16(2):133–169, 1998.
- J. Li and D. Mazières. Beyond one-third faulty replicas in Byzantine fault tolerant systems. In Proceedings of the 4th Symposium on Networked Systems Design and Implementation (NSDI), Cambridge, MA, Apr. 2007.
- D. Mazières. The Stellar consensus protocol: A federated model for internet-level consensus. https://www.stellar.org/papers/stellarconsensus-protocol.pdf, 2014.
- S. Micali. Fast and furious Byzantine agreement. In Proceedings of the Innovations in Theoretical Computer Science (ITCS) Conference, 2017.
- S. Micali, M. O. Rabin, and S. P. Vadhan. Verifiable random functions. In Proceedings of the 40th Annual IEEE Symposium on Foundations of Computer Science (FOCS), New York, NY, Oct. 1999.
- A. Miller, Y. Xia, K. Croman, E. Shi, and D. Song. The Honey Badger of BFT protocols. In Proceedings of the 23rd ACM Conference on Computer and Communications Security (CCS), pages 31–42, Vienna, Austria, Oct. 2016.
- A. Monaghan. US wealth inequality: top 0.1% worth as much as the bottom 90%, Nov. 2014. https://www.theguardian.com/business/2014/nov/13/us-wealth-inequality-top-01-worthas-much-as-the-bottom-90.
- S. Nakamoto. Bitcoin: A peer-to-peer electronic cash system. https://bitcoin.org/bitcoin.pdf, 2008.
- R. Pass and E. Shi. Hybrid consensus: Efficient consensus in the permissionless model. Cryptology ePrint Archive, Report 2016/917, 2016. http://eprint.iacr.org/.
- Peercointalk. Peercoin invalid checkpoint. https://www.peercointalk.org/t/invalidcheckpoint/3691, 2015.
- O. Riordan and N. Wormald. The diameter of sparse random graphs. Combinatorics, Probability and Computing, 19(5-6):835–926, Nov. 2010.
- P. Rizzo. BitGo launches “instant” Bitcoin transaction tool, Jan. 2016. http://www.coindesk.com/bitgoinstant-bitcoin-transaction-tool/.
- J. Rubin. The problem of ASICBOOST, Apr. 2017. http://www.mit.edu/~jlrubin/public/pdfs/Asicboost.pdf.
- Y. Sompolinsky and A. Zohar. Secure high-rate transaction processing in Bitcoin. In Proceedings of the 2015 Financial Cryptography and Data Security Conference, 2015.
- Y. Sompolinsky, Y. Lewenberg, and A. Zohar. SPECTRE: A fast and scalable cryptocurrency protocol. Cryptology ePrint Archive, Report 2016/1159, 2016. http://eprint.iacr.org/.
- N. Szabo. Smart contracts: Formalizing and securing relationships on public networks. First Monday, 2(9), Sept. 1997. http://firstmonday.org/ojs/index.php/fm/article/view/548/469.
- R. Turpin and B. A. Coan. Extending binary Byzantine agreement to multivalued Byzantine agreement. Information Processing Letters, 18(2):73–76, Feb. 1984.
- M. Vasek, M. Thornton, and T. Moore. Empirical analysis of denial-of-service attacks in the Bitcoin ecosystem. In Proceedings of the 18th International Financial Cryptography and Data Security Conference, Barbados, Mar. 2014.
- WonderNetwork. Global ping statistics: Ping times between WonderNetwork servers, Apr. 2017. https://wondernetwork.com/pings.
- Zerocoin Electric Coin Company. ZCash: All coins are created equal, 2017. https://z.cash.
翻訳抄
PoS に VRF (Verifiable Random Function) を組み合わせた選出を行う BFT 合意アルゴリズム Algorand に関する 2017 年の論文。
- Yossi Gilad, Rotem Hemo, Silvio Micali, Georgios Vlachos, Nickolai Zeldovich (2017) Algorand: Scaling Byzantine Agreements for Cryptocurrencies

