hypersign-protocol / whitepaper

2 stars 0 forks source link

Decentralized Access Control to a resource; usecase of SSI and DID #48

Closed Vishwas1 closed 2 years ago

Vishwas1 commented 2 years ago

Decentralise access grant to a resource.

In case of hyperfyre, associated DID with an ORG can be termed as "resource". And access of the ORG simply means , whoever controls that DID , has access to the ORG.

Let's see, how we can implement team management in Hyperfyre using DID.

Prior knowledge

There is concept of Multiple DID controller to a didDoc - this means that more than one DID controllers can control (update/delete) a particular did Doc.

image

Team management using DID on Hyperfyre

image

image

Actions State of Org1 DID Doc Who has access?
User1 creates Org1 {"id": "did:hs:org1", "name": "ORG1","controllers": ["did:hs:user1"], "authentication": [ "did:hs:user1#key1" ] } User 1
User2 accepts the invitation {"id": "did:hs:org1","name": "ORG1","controllers": ["did:hs:user1", "did:hs:user2"],"authentication": ["did:hs:user1#key1","did:hs:user2#key1"]} User 1 & User 2
User3 accepts the invitation {"id": "did:hs:org1","name": "ORG1","controllers": ["did:hs:user1", "did:hs:user2", "did:hs:user3"],"authentication": ["did:hs:user1#key1","did:hs:user2#key1","did:hs:user3#key1"]} User 1 , User2 & User3
Vishwas1 commented 2 years ago

@vikramIde commented

Yahi to kiya hai Arcana walon ne

Vishwas1 commented 2 years ago

Verifiable Conditions

we can make use of this for various ssi use case.


{
    "id": "did:example:123#1",
    "controller": "did:example:123",
    "type": "VerifiableCondition2021",
    "conditionAnd": [{
        "id": "did:example:123#1-1",
        "controller": "did:example:123",
        "type": "VerifiableCondition2021",
        "conditionOr": [{
            "id": "did:example:123#1-1-1",
            "controller": "did:example:123",
            "type": "EcdsaSecp256k1VerificationKey2019",
            "publicKeyBase58": "5JBxKqYKzzoHrzeqwp6zXk8wZU3Ah94ChWAinSj1fYmyJvJS5rT"
        }, {
            "id": "did:example:123#1-1-2",
            "controller": "did:example:123",
            "type": "Ed25519VerificationKey2018",
            "publicKeyBase58": "PZ8Tyr4Nx8MHsRAGMpZmZ6TWY63dXWSCzamP7YTHkZc78MJgqWsAy"
        }]
    }, {
        "id": "did:example:123#1-2",
        "controller": "did:example:123",
        "type": "Ed25519VerificationKey2018",
        "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
    }]
}```