Benedikt Bünz, Lucianna Kiffer, Loi Luu, M. Zamani
{"title":"FlyClient: Super-Light Clients for Cryptocurrencies","authors":"Benedikt Bünz, Lucianna Kiffer, Loi Luu, M. Zamani","doi":"10.1109/SP40000.2020.00049","DOIUrl":null,"url":null,"abstract":"To validate transactions, cryptocurrencies such as Bitcoin and Ethereum require nodes to verify that a blockchain is valid. This entails downloading and verifying all blocks, taking hours and requiring gigabytes of bandwidth and storage. Hence, clients with limited resources cannot verify transactions independently without trusting full nodes. Bitcoin and Ethereum offer light clients known as simplified payment verification (SPV) clients, that can verify the chain by downloading only the block headers. Unfortunately, the storage and bandwidth requirements of SPV clients still increase linearly with the chain length. For example, as of July 2019, an SPV client in Ethereum needs to download and store about 4 GB of data.Recently, Kiayias et al. proposed a solution known as noninteractive proofs of proof-of-work (NIPoPoW) that allows a light client to download and store only a polylogarithmic number of block headers in expectation. Unfortunately, NIPoPoWs are succinct only as long as no adversary influences the honest chain, and can only be used in chains with fixed block difficulty, contrary to most cryptocurrencies which adjust block difficulty frequently according to the network hashrate.We introduce FlyClient, a novel transaction verification light client for chains of variable difficulty. FlyClient is efficient both asymptotically and practically and requires downloading only a logarithmic number of block headers while storing only a single block header between executions. Using an optimal probabilistic block sampling protocol and Merkle Mountain Range (MMR) commitments, FlyClient overcomes the limitations of NIPoPoWs and generates shorter proofs over all measured parameters. In Ethereum, FlyClient achieves a synchronization proof size of less than 500 KB which is roughly 6,600x smaller than SPV proofs. We finally discuss how FlyClient can be deployed with minimal changes to the existing cryptocurrencies via an uncontentious velvet fork.","PeriodicalId":6849,"journal":{"name":"2020 IEEE Symposium on Security and Privacy (SP)","volume":"51 1","pages":"928-946"},"PeriodicalIF":0.0000,"publicationDate":"2020-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"97","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 IEEE Symposium on Security and Privacy (SP)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/SP40000.2020.00049","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 97
Abstract
To validate transactions, cryptocurrencies such as Bitcoin and Ethereum require nodes to verify that a blockchain is valid. This entails downloading and verifying all blocks, taking hours and requiring gigabytes of bandwidth and storage. Hence, clients with limited resources cannot verify transactions independently without trusting full nodes. Bitcoin and Ethereum offer light clients known as simplified payment verification (SPV) clients, that can verify the chain by downloading only the block headers. Unfortunately, the storage and bandwidth requirements of SPV clients still increase linearly with the chain length. For example, as of July 2019, an SPV client in Ethereum needs to download and store about 4 GB of data.Recently, Kiayias et al. proposed a solution known as noninteractive proofs of proof-of-work (NIPoPoW) that allows a light client to download and store only a polylogarithmic number of block headers in expectation. Unfortunately, NIPoPoWs are succinct only as long as no adversary influences the honest chain, and can only be used in chains with fixed block difficulty, contrary to most cryptocurrencies which adjust block difficulty frequently according to the network hashrate.We introduce FlyClient, a novel transaction verification light client for chains of variable difficulty. FlyClient is efficient both asymptotically and practically and requires downloading only a logarithmic number of block headers while storing only a single block header between executions. Using an optimal probabilistic block sampling protocol and Merkle Mountain Range (MMR) commitments, FlyClient overcomes the limitations of NIPoPoWs and generates shorter proofs over all measured parameters. In Ethereum, FlyClient achieves a synchronization proof size of less than 500 KB which is roughly 6,600x smaller than SPV proofs. We finally discuss how FlyClient can be deployed with minimal changes to the existing cryptocurrencies via an uncontentious velvet fork.
为了验证交易,比特币和以太坊等加密货币需要节点验证区块链是否有效。这需要下载和验证所有块,需要几个小时,需要千兆字节的带宽和存储空间。因此,资源有限的客户端在不信任完整节点的情况下无法独立验证事务。比特币和以太坊提供被称为简化支付验证(SPV)客户端的轻客户端,它可以通过下载区块头来验证链。不幸的是,SPV客户端的存储和带宽需求仍然随着链长度线性增加。例如,截至2019年7月,以太坊的SPV客户端需要下载并存储约4gb的数据。最近,Kiayias等人提出了一种称为非交互式工作量证明(NIPoPoW)的解决方案,该解决方案允许轻客户端下载并存储预期的多对数数量的块头。不幸的是,NIPoPoWs只有在没有对手影响诚实链的情况下才能简洁,并且只能在固定块难度的链中使用,这与大多数根据网络哈希率频繁调整块难度的加密货币相反。介绍了一种新型的可变难度链交易验证轻客户端FlyClient。FlyClient在渐近和实际方面都是高效的,并且只需要下载对数数量的块头,而在执行之间只存储一个块头。使用最优概率块采样协议和Merkle Mountain Range (MMR)承诺,FlyClient克服了NIPoPoWs的限制,并对所有测量参数生成更短的证明。在以太坊中,FlyClient实现了小于500 KB的同步证明大小,大约比SPV证明小6600倍。我们最后讨论了如何通过无争议的天鹅绒分叉对现有加密货币进行最小的更改来部署FlyClient。