diff --git a/README.md b/README.md index 2cf77307..fe9bb189 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,12 @@ Cryptid is a protocol and client-suite that brings the power of Identity to [Solana](https://solana.com). -Traditionally, the way to identity yourself on the blockchain is through ownership of a private key. You essentially are +Traditionally, the way to identify yourself on the blockchain is through ownership of a private key. You essentially are your private key. Assets are owned and transactions are signed using this key. Cryptid changes this, by establishing an identity layer on the blockchain, specifically on Solana. It does this by providing a general-purpose, flexible proxy accounts between the user and their private keys. Instead of assets being -owned and transactions signed by a single private key, these assets are now owned and transactions are signed by a +owned and transactions being signed by a single private key, these assets are now owned and transactions are signed by a Cryptid account. Cryptid is tightly coupled to `did:sol` ([Github](https://github.com/identity-com/sol-did)). A Cryptid account is @@ -17,10 +17,10 @@ controlled either 2. by a DID and a Middleware Account (that can be generically chained to an arbitary number of Middleware accounts) Middleware is useful to control access to a Cryptid Account with one or more additional constraints. Middleware programs -are independent, native or third-party, programs that adhere to a predefined program and client interface. For example, +are independent, native, or third-party programs that adhere to a predefined program and client interface. For example, Middlewares could do one of the following: -- Only allow access to the Cryptid Account with an additional permissioned token present. +- Only allow access to the Cryptid Account when an additional permissioned token is present. - Only allow access to the Cryptid Account after a certain time has elapsed between proposing and executing a transaction - Only allow access to the Cryptid Account after passing more advanced multi-sig requirements - ... @@ -37,9 +37,9 @@ with Index 0. That means, that even without a subject interacting in any way wit account controlled by their DID. This is a useful transitive property, meaning, everyone with a valid Solana wallet `XYZ...` also has a generative DID `did:sol:XYZ...` and a generative Cryptid account `ABC...` (as PDA of DID and Index). -Cryptid Accounts with higher indexes (> 0) are created explicitly and can (optionally) be configured to also adhere to -Middleware constraints. Middleware Accounts can chain other Middleware accounts allowing for composable solutions -without rewriting any (often security-critical) code. +Cryptid accounts with higher indexes (> 0) are created explicitly and can (optionally) be configured to also adhere to +Middleware constraints. Middleware accounts can chain other Middleware accounts allowing for composable solutions +without rewriting any code. This code is often critical to security and so should be not be changed as a best practice. ## Features @@ -62,17 +62,19 @@ without rewriting any (often security-critical) code. DIDs ([Decentralized Identifiers](https://www.w3.org/TR/did-core/)) are the standard identifier for self-sovereign identity. It is a globally unique identifier and independent of any central authority. -Cryptid use the `did:sol` did method on Solana. The use of DIDs in Cryptid means that we can tie it to up to verifiable +Cryptid uses the `did:sol` did method on Solana. The use of DIDs in Cryptid means that it can be tied up to verifiable credentials, and add claims on your Cryptid account. -As an example. We can have a verifiable way that an NFT creator that has created an NFT under key X is a -particular artists. We can add a verifiable credential to that identity, have it discoverable on-chain -(either directly on-chain, or via a link that's discoverable on-chain) - that attests to who they are. +As an example, we can verify that an NFT creator that has created an NFT under key X is a +particular artist. We can add a verifiable credential that attests to their identity and have it discoverable on-chain +(either directly on-chain, or via a link that is discoverable on-chain) - that attests to who they are. ## On Our Roadmap ### M-of-N Multisig -Cryptid currently supports 1-of-N multisig. We plan to expand this to support threshold-multisig via Middleware. +Cryptid currently supports 1-of-N multisig, where only one signer of a set of keys that are allowed to sign is all that is required to complete transactions. We plan to expand this to support threshold-multisig via Middleware. + +M-of-N multi-sig requires a set number `M` from the `N` group of signers to sign each transaction. This would be like having a committtee or board where three people of a group of five must approve a purchase. ### Spending limits and restrictions @@ -97,7 +99,7 @@ A Cryptid account is an _identity_ in the form of an individual, company, pet, " _thing_ you can think of. Cryptid account can have zero or more keys associated with it. Accounts with zero keys can be controlled by a separate -entity. Accounts with multiple keys will allow a Cryptid account to preform actions like: +entity. Accounts with multiple keys will allow a Cryptid account to perform actions like: * Multiple devices accessing the account * Key rotation and account recovery @@ -106,12 +108,12 @@ entity. Accounts with multiple keys will allow a Cryptid account to preform acti ### How do I create a Cryptid account? All existing Solana wallets are automatically compatible with Cryptid. If you have a wallet, you have a Cryptid account -automatically. Your default cryptid account has a new address, but is backed by your existing wallet, and +automatically. Your default Cryptid account has a new address, but is backed by your existing wallet, and transactions you make with it are signed with your existing wallet key. ### How much does a Cryptid account cost? -By default, your Cryptid account is free. Anyone with an existing Solana account already has a Cryptid account they can +By default, a Cryptid account is free. Anyone with an existing Solana account already has a Cryptid account they can start using. Advanced usage of Cryptid requires additional information to be registered on-chain, which incurs a cost imposed by @@ -124,7 +126,7 @@ No! We are planning to include Cryptid as a supported wallet within completely transparent towards the dApp. It's just one more option for the user to chose from. ### Who really owns the funds in my Cryptid address? -On-chain your Cryptid address is owned by the System Program however the +On-chain, your Cryptid address is owned by the System Program however the [Cryptid Signer program](./programs/cryptid) is the authority for it which makes sure that only keys and/or controllers in your Cryptid account are able to sign for it. Therefore, if the program is secure, your funds are too.