Blockchain Application Architecture Design

Blockchain is an emerging technology that enables a new form of decentralised software architecture, where distributed components can reach agreements on shared system states without trusting a central integration point. Blockchain provides a shared infrastructure to execute programs, called smart contracts, and to store data. From a software architecture perspective, a systematic and holistic view on designing software systems that use blockchains is yet to emerge.  

Our research team has been working on the topic of software architecture design for blockchain applications since 2017. We view blockchain as a software component within a large software system, which helps make explicitly important architectural considerations on the resulting performance and quality attributes (for example, security, privacy, scalability, and sustainability) of the system. 

Please refer to the blockchain research page for more details.

For the past couple of years, we have captured and organized knowledge on designing blockchain applications in the form of architectural patterns. A pattern is a reusable solution to problems that commonly occur within a given context during software design. Patterns could assist the robust design of large blockchain applications. These patterns are helpful to software architects, developers, system administrators, and technical leads who need to design, develop, and monitor blockchain applications.

Please refer to the blockchain pattern website for more details.

CSIRO Mission Alignment

The project aligns with the Missions, where the scenarios requrie traceability, accountability and transparency, for example, the supply chain of an industry or multiple stakeholders who need to share and process their data collaboratively, such as Ending Plastic Waste, Net Zero, and Critical Energy Metal.

Contacts

Shiping.Chen@data61.csiro.au and Xiwei.Xu@data61.csiro.au

Research Team/Group Involved

Architecture and Analytics Platforms Team