vCubeChain: Uma Blockchain Permissionada Escalável
Resumo
Este trabalho apresenta a blockchain permissionada vCubeChain, que é escalável por definição, sendo baseada na topologia distribuída dinâmica vCube. O vCube é um detector de falhas que conecta um conjunto de n processos corretos em uma topologia virtual hierárquica, que é um hipercubo quando todos os processos estão corretos. Quando os processos falham por parada, o vCube se reorganiza mantendo diversas propriedades logarítmicas. A vCubeChain elege um líder, que utiliza uma estratégia autonômica de difusão confiável para disseminar blocos na rede. Cada bloco consiste de múltiplas transações. Múltiplos líderes concorrentes podem ser eleitos, caso o detector de falhas levante falsas suspeitas. Ainda assim, é provado que a vCubeChain se mantém íntegra, sempre retornando a um estado consistente. No artigo, além da especificação e provas de corretude, um conjunto de experimentos é apresentado demonstrando o desempenho, em particular a escalabilidade da solução em comparação a outras alternativas.
Referências
Boichat, R., Dutta, P., Frølund, S., and Guerraoui, R. (2003). Deconstructing paxos. ACM Sigact News, 34(1):47-67.
Castro, M. and Liskov, B. (2002). Practical byzantine fault tolerance and proactive recovery. ACM Trans. Comput. Syst., 20(4):398-461.
Chen, W. et al. (2018). A survey of blockchain applications in different domains. In Proc. of the 2018 Int. Conf. on Blockchain Technology and Application, ICBTA 2018. ACM.
Dierks, T. and Rescorla, E. (2008). The Transport Layer Security (TLS) Protocol Version 1.2. RFC 5246 (Proposed Standard). Updated by RFCs 5746, 5878, 6176.
Dolev, D., Dwork, C., and Stockmeyer, L. (1987). On the minimal synchronism needed for distributed consensus. J. ACM, 34(1):77-97.
Dolev, D. and Lenzen, C. (2013). Early-deciding consensus is expensive. In Proc. of the PODC '13, page 270-279, New York, NY, USA. ACM.
Duarte, E., Bona, L., and Ruoso, V. (2014). VCube: A provably scalable distributed diagnosis algorithm. In 5th ScalA Workshop, pages 17-22.
Duarte, E. and Nanya, T. (1998). A hierarchical adaptive distributed system-level diagnosis algorithm. IEEE Transactions on Computers, 47(1):34-45.
Ethereum.org (2022). Proof-of-stake (pos). https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/.
Faria, C. and Correia, M. (2019). Blocksim: Blockchain simulator. In 2019 IEEE International Conference on Blockchain (Blockchain), pages 439-446.
Gamage, H. T. M., Weerasinghe, H., and Dias, N. G. J. (2020). A survey on blockchain technology concepts, applications, and issues. SN Computer Science, 1:1-15.
Guerraoui, R., Hamza, J., Seredinschi, D.-A., and Vukolic, M. (2019). Can 100 machines agree? https://arxiv.org/abs/1911.07966.
Jeanneau, D. et al. (2017). An autonomic hierarchical reliable broadcast protocol for asynchronous distributed systems with failure detection. JBCS, 23(15).
Lamport, L. (1998). The part-time parliament. ACM Transactions on Computer Systems, 16(2):133-169.
Nakamoto, S. (2008). Bitcoin: A peer-to-peer electronic cash system.
Ongaro, D. and Ousterhout, J. (2014). In search of an understandable consensus algorithm. In Proc. of the 2014 USENIX Conference, USENIX ATC'14, USA. USENIX.
Rodrigues, L. A., Arantes, L., and Duarte Jr., E. P. (2014a). An autonomic implementation of reliable broadcast based on dynamic spanning trees. In 2014 Tenth European Dependable Computing Conference.
Rodrigues, L. A., Duarte Jr, E. P., and Arantes, L. (2014b). Árvores geradoras mínimas distribuídas e autonômicas. SBRC, pages 1-14.
Ruoso, V., Bona, L., and Duarte Jr, E. P. (2014). Uma estratégia de testes logarítmica para o algoritmo hi-adsd. In Workshop de Testes e Tolerância a Falhas, pages 31-44. SBC.
Vukolić, M. (2016). The quest for scalable blockchain fabric: Proof-of-work vs. bft replication. In Open Problems in Network Security. Springer Int. Publishing.
Wood, D. D. (2014). Ethereum: A secure decentralised generalised transaction ledger. https://ethereum.github.io/yellowpaper/paper.pdf.