Vis enkel innførsel

dc.contributor.advisorMishra, Deepti
dc.contributor.advisorNowostawski, Mariusz
dc.contributor.advisorSatybaldy, Abylay
dc.contributor.advisorLothar von Gohren Edwin, Snorre
dc.contributor.advisorRøise, Tom
dc.contributor.authorSolsvik, Jonas Johan
dc.date.accessioned2022-01-12T18:20:22Z
dc.date.available2022-01-12T18:20:22Z
dc.date.issued2021
dc.identifierno.ntnu:inspera:95883059:12188346
dc.identifier.urihttps://hdl.handle.net/11250/2837178
dc.descriptionFull text not available
dc.description.abstractThis project concerns the development of Decentralized Identity Command-Line Interface(DID CLI), which is a proof-of-concept application implementing Self- Sovereign Identity(SSI) written in the Rust programming language. The SSI technology stack describes 4 layers of technologies required to im- plement SSI applications. Layer 1(DIDs) concerns decentralised identifiers. Layer 2(DIDComm) concerns communication between decentralised agents. Layer 3(Veri- fiable Credentials) concerns the exchange of cryptographically verifiable data. Layer 4(Governance) concerns using the technologies from layer 1, 2 and 3, to solve real world problems. In addition, we propose Layer 0 (Cryptography) concerning the cryptographic primitives underpinning it all. We demonstrate that open-source libraries already exist in Rust for all the SSI layers mentioned above. Layer 0(Cryptography), limited in this project to the ED25519 elliptic-curve signature, is implemented using the dalek-cryptography/ed25519- dalek-library. Layer 1(DIDs), limited in this project to the did:key-method, is im- plemented using the decentralized-identity/did-key.rs-library. Layer 2(DIDComm), is implemented using the decentralized-identity/didcomm-rs-library. Layer 3(Veri- fiable credentials), is implemented using the spruceid/ssi-library. Finally DID CLI itself is the manifestation of layer 4(Governance). DIDComm v2 is the next iteration of a Layer 2 technology, developed by De- centralised Identity Foundation (DIF). Being in early stages of development, there are few open-source examples of applications which implement DIDComm v2. Based on the issues we encountered while developing DID CLI, we were able to provide feedback directly to DIDComm v2 specification writers on Github, which they embraced with open arms. HTTPS, Websockets and Bluetooth are all mentioned as viable transports in the DIDComm v2 specification, but in general DIDComm v2 claims to be transport agnostic. With DID CLI we take this claim to it’s extreme conclusion and imple- ment DIDComm v2 over Unix Standard In/Standard Out (stdin/stdout). DID CLI demonstrates that DIDComm v2 over stdin/stdout is not only viable, but desire- able, when integrating with tools in the Unix ecosystem. Finally we demonstrate that, by using DID CLI, four people are able to form a network of SSI agents, communicating with each other via a Unix filesystem to solve a real world problem, involving The Government, Statens Vegvesen, The Police and a regular citizien.
dc.description.abstractThis project concerns the development of Decentralized Identity Command-Line Interface(DID CLI), which is a proof-of-concept application implementing Self- Sovereign Identity(SSI) written in the Rust programming language. The SSI technology stack describes 4 layers of technologies required to im- plement SSI applications. Layer 1(DIDs) concerns decentralised identifiers. Layer 2(DIDComm) concerns communication between decentralised agents. Layer 3(Veri- fiable Credentials) concerns the exchange of cryptographically verifiable data. Layer 4(Governance) concerns using the technologies from layer 1, 2 and 3, to solve real world problems. In addition, we propose Layer 0 (Cryptography) concerning the cryptographic primitives underpinning it all. We demonstrate that open-source libraries already exist in Rust for all the SSI layers mentioned above. Layer 0(Cryptography), limited in this project to the ED25519 elliptic-curve signature, is implemented using the dalek-cryptography/ed25519- dalek-library. Layer 1(DIDs), limited in this project to the did:key-method, is im- plemented using the decentralized-identity/did-key.rs-library. Layer 2(DIDComm), is implemented using the decentralized-identity/didcomm-rs-library. Layer 3(Veri- fiable credentials), is implemented using the spruceid/ssi-library. Finally DID CLI itself is the manifestation of layer 4(Governance). DIDComm v2 is the next iteration of a Layer 2 technology, developed by De- centralised Identity Foundation (DIF). Being in early stages of development, there are few open-source examples of applications which implement DIDComm v2. Based on the issues we encountered while developing DID CLI, we were able to provide feedback directly to DIDComm v2 specification writers on Github, which they embraced with open arms. HTTPS, Websockets and Bluetooth are all mentioned as viable transports in the DIDComm v2 specification, but in general DIDComm v2 claims to be transport agnostic. With DID CLI we take this claim to it’s extreme conclusion and imple- ment DIDComm v2 over Unix Standard In/Standard Out (stdin/stdout). DID CLI demonstrates that DIDComm v2 over stdin/stdout is not only viable, but desire- able, when integrating with tools in the Unix ecosystem. Finally we demonstrate that, by using DID CLI, four people are able to form a network of SSI agents, communicating with each other via a Unix filesystem to solve a real world problem, involving The Government, Statens Vegvesen, The Police and a regular citizien.
dc.languageeng
dc.publisherNTNU
dc.titleDID-CLI - Decentralized Identity Command-line Interface
dc.typeBachelor thesis


Tilhørende fil(er)

FilerStørrelseFormatVis

Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel