This workshop wishes to present the Python implementation of Crypto-Conditions, along with some examples of how it is being used in BigchainDB. This is a great opportunity to learn about some basic cryptographic primitives and algorithms, about ASN.1 (serialization protocol widely used in cryptography), and to learn concepts that are fundamental in the blockchain space.
Crypto-Conditions is a scheme for composing signature-like structures from one or more existing signature schemes (e.g.: RSA, ED25519) or hash digest primitives (e.g.: SHA256). It defines a mechanism for these existing primitives to be combined and grouped to create complex signature arrangements but still maintain the useful properties of a simple signature, most notably, that a deterministic algorithm exists to verify the signature against a message given a public key.
BigchainDB aims to be a decentralized database with blockchain properties. BigchainDB uses Crypto-Conditions to secure digital assets.
The Python implementation of Crypto-Conditions depends on some interesting libraries: pyasn1, pynacl & cryptography, and hypothesis (property-based testing).
Suggested preparation but not mandatory: contributing to cryptoconditions.