identity Multi-show unlinkability It is not possible to link two interactions together. Selective disclosure Only reveal what is necessary for the specific interaction. Decoupled attester & verifier The attester is not involved in the verification process. page 4 “My name is XXX and I have a cat.”
identity Multi-show unlinkability It is not possible to link two interactions together. Selective disclosure Only reveal what is necessary for the specific interaction. Decoupled attester & verifier The attester is not involved in the verification process. page 5 “I have a cat!” “I have a cat!” Carol “Was that the same person?”
identity Multi-show unlinkability It is not possible to link two interactions together. Selective disclosure Only reveal what is necessary for the specific interaction. Decoupled attester & verifier The attester is not involved in the verification process. page 6 “I have a cat!” “I have a cat, a dog and a fish.” Carol
identity Multi-show unlinkability It is not possible to link two interactions together. Selective disclosure Only reveal what is necessary for the specific interaction. Decoupled attester & verifier The attester is not involved in the verification process. page 7 “I have a cat!” Carol “I don’t need your help Alice!” Alice “Can I join the fun?”
• Alice sends a nonce to Bob and initiates an attestation session ◦ nonce = protection against replay attacks of attestation session • Bob requests an attestation from Alice ◦ for specific attributes ◦ including commitments on the nonce and Bob’s private identity • Alice verifies the proof and signs Bob’s attributes ◦ Bob builds a credential using the signature and his private secrets request attestation submit attestation
• Alice sends a nonce to Bob and initiates an attestation session ◦ nonce = protection against replay attacks of attestation session • Bob requests an attestation from Alice ◦ for specific attributes ◦ including commitments on the nonce and Bob’s private identity • Alice verifies the proof and signs Bob’s attributes ◦ Bob builds a credential using the signature and his private secrets request attestation submit attestation
• Alice sends a nonce to Bob and initiates an attestation session ◦ nonce = protection against replay attacks of attestation session • Bob requests an attestation from Alice ◦ for specific attributes ◦ including commitments on the nonce and Bob’s private identity • Alice verifies the proof and signs Bob’s attributes ◦ Bob builds a credential using the signature and his private secrets request attestation submit attestation
◦ sends a list of attribute identifiers ◦ + nonce to prevent replay attacks • Bob sends a zk-proof to Carol ◦ Bob creates a zero-knowledge proof of a signature on his attributes ◦ proof is randomized and cannot be linked to another proof ◦ Bob only includes attributes he wants to share ◦ nonce is included inside the proof Bob (Claimer) request attributes submit presentation Carol (Verifier) verify presentation
◦ sends a list of attribute identifiers ◦ + nonce to prevent replay attacks • Bob sends a zk-proof to Carol ◦ Bob creates a zero-knowledge proof of a signature on his attributes ◦ proof is randomized and cannot be linked to another proof ◦ Bob only includes attributes he wants to share ◦ nonce is included inside the proof Bob (Claimer) request attributes submit presentation Carol (Verifier) verify presentation
◦ write an accumulator on chain • During attestation: ◦ Bob receives non-revocation witness from Alice ◦ Bob can now prove his witness is included inside the accumulator • During verification: ◦ Bob includes in zk-proof that his witness is contained inside a specific accumulator Alice (Attester) write accumulator Carol (Verifier) query accumulator Blockchain
all witnesses for her attestations ◦ removes the corresponding witness from the accumulator ◦ updates the accumulator on chain • All claimers need to update their witnesses ◦ verifiers can specify a max. age for accumulators ◦ a claimer only needs to update if his witness is older than a specific threshold Alice (Attester) Bob (Claimer) update witness update accumulator query accumulator Blockchain
create an attester const attester = await AttesterChain.create() // the attester needs an accumulator const accumulator = await attester.createAccumulator () // the attester needs an accumulator await attester.updateAccumulator (accumulator) await blockchain.waitForNextBlock () page 19 Create Actors • Claimer has a secret ◦ should never be shared ◦ to prove multiple credentials belong to the same entity • Attester has to ◦ create a key pair ◦ create an accumulator ◦ upload the accumulator • Verifier has no identity ◦ has to be handled by the messaging protocol
accumulator, witnesses: [witness], }) // the attester needs an accumulator await attester.updateAccumulator (accRevoked) await blockchain.waitForNextBlock () // ALL CLAIMERS: update their credentials which are attested by the specific attester const updatedCred = await claimer.updateCredential ({ credential, attesterPubKey: attester.publicKey, accumulator: accRevoked, }) page 22 Revocation • Attester removes witness from accumulator • Claimer updates his credential ◦ will fail for any revoked credential
is to present the KILT Protocol and views about the current and future technical infrastructure around it to an interested public. The information set forth should not be considered exhaustive and does not imply any elements of a contractual relationship. Its sole purposes are to provide relevant and reasonable information to an interested public as well as to any developers who think about integrating the KILT Protocol, to any blockchain developers who wish to contribute to the KILT Community and to potential implementation partners who want to get an insight into the current state of the KILT project. 2. Nothing in this presentation shall be deemed to constitute a prospectus of any sort or a solicitation for investment, nor does it, in any way, pertain to an offering or a solicitation of an offer to buy any securities in any jurisdiction. The document is not composed in accordance with, and is not subject to, laws or regulations of any jurisdiction which are designed to protect investors. 3. This presentation shows today’s views and today’s vision of the project which are both subject to constant change. Certain statements, estimates, and financial information contained within this presentation constitute forward-looking, or pro-forma statements, and information. Such statements or information involve estimates and opinions on potential future developments as well as known and unknown risks and uncertainties which may cause actual events or results to differ materially from the estimates or the results implied or expressed in such forward-looking statements, even if such statements are not specially marked as unknown or uncertain by an explicit remark or by the grammar or tense used. 4. Nothing published by the BOTLabs GmbH should be interpreted as investment advice. BOTLabs GmbH is in no way providing trading or investment advice. Please consult with your appropriate licensed professional before making any financial transactions, including any investments related to ideas or opinions expressed, past, present, or future by the aforementioned entities and any future entities that may operate under the parent entities. BOTLabs GmbH does not intend to express financial, legal, tax, or any other advice and any conclusions drawn from statements made by, or on, BOTLabs GmbH shall not be deemed to constitute advice in any jurisdiction. Information is provided for educational and amusement purposes only. page 23
Charlottenburg HRB 193450 B 10787 Berlin USt-IdNr.: DE316284270 Germany [email protected] https://botlabs.org Requirements according to § 5 TMG (Germany) Thank you for your attention! page 25 @Kiltprotocol kilt.io