Consideration of Quality Attribute Tradeoffs of the Blockchain Pattern in the Software Development Process
Annals of Emerging Technologies in Computing
The Blockchain (BC) design pattern has many variations and is a concept that is anticipated to lead many implementations in the years to come. The number of choices for a BC implementation continues to increase since new design and implementation patterns and applications are emerging. This increasing number of design patterns enables correspondingly increasing tradeoff opportunities at every evolutionary round of architecture elaboration. Key components of a BC include network nodes, blocks,
... rk nodes, blocks, and consensus methodologies. These components all possess critical characteristics that can be designed and implemented in a variety of different ways. A central thesis here is that the choice of the design methodologies has direct and varying impact with regard to resulting quality attributes such as performance, security, and availability. We describe the use of a tradeoff matrix during the initial design phase of a development cycle that identifies the quality attributes to be evaluated when designing software systems comprising a BC. We hypothesize that consideration of the quality attributes at this initial design stage via the use of the proposed tradeoff matrix enables designers to meet requirements more efficiently and accurately. This hypothesis is tested and the use of the tradeoff matrix is demonstrated by creating a consensus algorithm whose performance is evaluated through a simulation that compares the behaviour in a "bare-metal" versus a Cloud-based environment. This simulation approach drives the usage of one of the quality tradeoff parameters in achieving a more optimal solution.