Runtime Evolution of Bitcoin's Consensus Rules
Journal article, Peer reviewed
Submitted version
Permanent lenke
https://hdl.handle.net/11250/3136525Utgivelsesdato
2023Metadata
Vis full innførselSamlinger
Originalversjon
IEEE Transactions on Software Engineering. 2023, 49 (9), 4477-4495. 10.1109/TSE.2023.3304851Sammendrag
The runtime evolution of a system concerns the ability to make changes during runtime without disrupting the service. Blockchain systems need to provide continuous service and integrity. Similar challenges have been observed in centrally controlled distributed systems or mobile applications that handle runtime evolution, mainly by supporting compatible changes or running different versions concurrently. However, these solutions are not applicable in the case of blockchains, and thus, new solutions are required. This study investigates Bitcoin consensus evolution by analysing over a decade of data from Bitcoin's development channels using Strauss’ grounded theory approach and root cause analysis. The results show nine deployment features which form nine deployment techniques and ten lessons learned. Our results illustrate how different deployment techniques fit different contexts and pose different levels of consensus failure risks. Furthermore, we provide guidelines for risk minimisation during consensus rule deployment for blockchain in general and Bitcoin in particular.