Design Patterns for Blockchain-based Self-Sovereign Identity

Self-sovereign identity is a new identity management paradigm that allows entities to really have the ownership of their identity data and control their use without involving any intermediary. Blockchain is an enabling technology for building self-sovereign identity systems by providing a neutral and trustable storage and computing infrastructure, and can be viewed as a component of the systems. Both blockchain and self-sovereign identity are emerging technologies which could present a steep learning curve for architects. We collect and propose 12 design patterns for blockchain-based self-sovereign identity systems to help the architects understand and easily apply the concepts in system design. Based on the lifecycles of three main objects involved in self-sovereign identity, we categorise the patterns into three groups: key management patterns, decentralised identifier management patterns, and credential design patterns. The proposed patterns provide a systematic and holistic guide for architects to design the architecture of blockchain-based self-sovereign identity systems.

[1]  Douglas C. Schmidt,et al.  Applying Software Patterns to Address Interoperability in Blockchain-based Healthcare Apps , 2017, ArXiv.

[2]  Jim Groom,et al.  The Path to Self-Sovereign Identity , 2017 .

[3]  James O. Coplien,et al.  Pattern languages of program design , 1995 .

[4]  Johan A. Pouwelse,et al.  Deployment of a Blockchain-Based Self-Sovereign Identity , 2018, 2018 IEEE International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData).

[5]  Liming Zhu,et al.  Designing blockchain-based applications a case study for imported product traceability , 2019, Future Gener. Comput. Syst..

[6]  Liming Zhu,et al.  uBaaS: A Unified Blockchain as a Service Platform , 2019, Future Gener. Comput. Syst..

[7]  Stefan Tai,et al.  On or Off the Blockchain? Insights on Off-Chaining Computation and Data , 2017, ESOCC.

[8]  Piotr Pacyna,et al.  Generic and Complete Three-Level Identity Management Model , 2008, 2008 Second International Conference on Emerging Security Information, Systems and Technologies.

[9]  Liming Zhu,et al.  Applying Design Patterns in Smart Contracts - A Case Study on a Blockchain-Based Traceability Application , 2018, ICBC.

[10]  Muneeb Ali,et al.  Blockstack: A Global Naming and Storage System Secured by Blockchains , 2016, USENIX Annual Technical Conference.

[11]  Christoph Meinel,et al.  A Survey on Essential Components of a Self-Sovereign Identity , 2018, Comput. Sci. Rev..

[12]  Melanie Swan,et al.  Blockchain: Blueprint for a New Economy , 2015 .

[13]  Uyen Trang Nguyen,et al.  A New Approach to Client Onboarding Using Self-Sovereign Identity and Distributed Ledger , 2018, 2018 IEEE International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData).

[14]  Steve Omohundro,et al.  Cryptocurrencies, smart contracts, and artificial intelligence , 2014, SIGAI.

[15]  Sachin Shetty,et al.  Integrating blockchain for data sharing and collaboration in mobile healthcare applications , 2017, 2017 IEEE 28th Annual International Symposium on Personal, Indoor, and Mobile Radio Communications (PIMRC).

[16]  Ingo Weber,et al.  A Platform Architecture for Multi-Tenant Blockchain-Based Systems , 2019, 2019 IEEE International Conference on Software Architecture (ICSA).

[17]  Uwe Zdun,et al.  Smart contracts: security patterns in the ethereum ecosystem and solidity , 2018, 2018 International Workshop on Blockchain Oriented Software Engineering (IWBOSE).

[18]  Satoshi Nakamoto Bitcoin : A Peer-to-Peer Electronic Cash System , 2009 .

[19]  Makoto Takemiya,et al.  Sora Identity: Secure, Digital Identity on the Blockchain , 2018, 2018 IEEE 42nd Annual Computer Software and Applications Conference (COMPSAC).

[20]  Cesare Pautasso,et al.  A Pattern Collection for Blockchain-based Applications , 2018, EuroPLoP.

[21]  Miss Laiha Mat Kiah,et al.  Blockchain Technology the Identity Management and Authentication Service Disruptor: A Survey , 2018, International Journal on Advanced Science, Engineering and Information Technology.

[22]  Massimo Bartoletti,et al.  Financial Cryptography and Data Security , 2017, Lecture Notes in Computer Science.

[23]  Björn Scheuermann,et al.  Bitcoin and Beyond: A Technical Survey on Decentralized Digital Currencies , 2016, IEEE Communications Surveys & Tutorials.

[24]  Dirk Riehle,et al.  Pattern Languages of Program Design 3 , 1997 .

[25]  Rudolf Ruland,et al.  Blockchain for Education: Lifelong Learning Passport , 2020, ERCIM News.

[26]  Xiwei Xu,et al.  Adaptable Blockchain-Based Systems: A Case Study for Product Traceability , 2017, IEEE Software.