openwallet-foundation / digital-wallet-and-agent-overviews-sig

The objective of this SIG is to develop and maintain the Digital Wallets and Agents Overview. The overview should provide transparency of the characteristics of wallets and agents in order to allow for an objective comparison and effective decision making on which wallet or agent is applicable for your use case.
https://openwallet-foundation.github.io/digital-wallet-and-agent-overviews-sig/
Apache License 2.0
13 stars 23 forks source link

Change 'add wallet' form #37

Open maaikevanleuken opened 7 months ago

maaikevanleuken commented 7 months ago

This should be renamed to 'Add digital wallet or agent'.

The form should include the following fields:

This should then be parsed to have the following format

{
        "aip": "-",
        "api": "-",
        "blockchainPurpose": "-",
        "blockchainType": "-",
        "blockchainUsed": "-",
        "company": "-",
        "connectionTypes": "-",
        "credExchangeProtocol": "-",
        "credentialFormat": "-",
        "cryptoAgility": "-",
        "ddip": "-",
        "deepLinking": "-",
        "deployment": "-",
        "downloadSource": "-",
        "eassi": "-",
        "ebsi": "-",
        "encodingScheme": "-",
        "hardwareSupport": "-",
        "holderCapability": "-",
        "identifierHolder": "-",
        "identifierIssuer": "-",
        "issuerCapability": "-",
        "keyHistoryHolder": "-",
        "keyHistoryIssuer": "-",
        "keyRotationHolder": "-",
        "keyRotationIssuer": "-",
        "logo": "-",
        "mdoc": "-",
        "name": "-",
        "observability": "-",
        "offlineFriendly": "-",
        "openSource": "-",
        "organisationalWallet": "-",
        "peer2PeerProtocols": "-",
        "portability": "-",
        "predicates": "-",
        "quantumSafe": "-",
        "revocationAlgorithm": "-",
        "scope": "-",
        "selectiveDisclosure": "-",
        "signatureAlgorithm": "-",
        "support": "-",
        "urlAppStore": "-",
        "urlGooglePlayStore": "-",
        "urlWebApp": "-",
        "urlWebsite": "-",
        "verifierCapability": "-",
        "verifierUnlinkability": "-"
    },

@cre8 is this workable?

cre8 commented 7 months ago

I have some concerns with topics like "uses blockchain": in case my wallet supports the profile "anoncreds with did:indy" and "haip with did:web", does my wallet have blockchain support or not? Same for key rotation.

I think we can get filter information like "which wallets are using blockchain". To do it we analyse the key managements referenced in the background and filter them. This will reduce the risk of inconsistency.

E.g. A wallet supports the "anoncrdes with did:indy" profile -> based on the profile, the filtering for did:indy will return a positive result -> based on the did:indy method, we can filter for "is using blockchain"

I would like to go the "knowledge graph" instead of trying to stick with the old approach and just putting in the new stuff. It could increase the complexity a bit, but helps a lot with data consistency.

maaikevanleuken commented 6 months ago

If I understand correctly, you want to remove the direct input 'uses blockchain', but generate the answer to it based on the identifier method. In that case, I'd want to add that blockchain can be used for more purposes than just these two, namely also schema and credential definitions. I'm not sure if the case exists where wallets uses blockchain for schema/credential definitions, but not for public identifiers. But in that case, your approach would miss it.

cre8 commented 6 months ago

There is no profile I am aware of with your described scenario. The schema part is covered by the credential format resource (JWT-VC, MDOC, etc). There we only added "rich schemas/semantic", but we are not defining how the schema is provided. Same goes for revocation methods, because we thought that the provider of the resource is not relevant. But it's a good point I will discuss in the upcoming SIG meeting!

From a requirement point of view I don't see "use blockchain" as a good filter, because the value says nothing about "how is blockchain used". Is it used with a real benefit or just to get the checkmark? For the user it has also no impact since it is all handled by the wallet/agent in the background. This analysis looks more for a white paper with the subject "how are ssi wallets using blockchain"

samuelmr commented 6 months ago

There are some organizations who just want to avoid all technology related to blockchains.

Whether that's a reasonable approach or not could be discussed somewhere else, but I kind of understand the need to separate "blockchain-based wallets" and "non-blockchain wallets". Of course, "use blockchain" doesn't work even for this filtering, since there are wallets that optionally can use blockchain.

I think that whether a wallet uses (or can use) blockchains can often be deducted from the supported DID methods or credential profiles.

I'm in favor of removing "uses blockchain" and adding some filtering logic based on other characteristics later.

samuelmr commented 5 months ago

wallets-add.component.ts has a form component CompanyUrl capitalized. PR #61 will fix this.

The form component (.ts file) also has a property linkToApp instead of properties urlAppStore, urlGooglePlayStore, urlWebApp, urlWebsite. The .html file has none of these...

cre8 commented 5 months ago

@samuelmr I think I missed some values when generating it, I will handle it in a separate issue and PR.

We should add this topic on the next call for better discussion