Since I became interested in MimbleWimble I noticed many users struggle with understanding necessary theory behind this idea. I am myself one of those users. I like to learn by writing tutorials and my goal is to prepare a tutorial for each concept that is required to understand MimbleWimble.
It is difficult to read posts that propose ideas related to MW. Of course algebra looks simple, but what how does this algebra relate to transactions or mining is a mystery for most of us. I would like to learn all this, and while doing so explain it with simple examples.
I try to prepare my tutorials as follows:
- Keep visual, for example public keys are points and private keys arrows etc.
- Code that you can run by yourself is provided with the tutorial.
- I try to be explicit with hat does the explained theory practically allows to achieve.
- Confidential Transactions (as described originally) @oryhp
- Mimblewimble Transactions (Confidential Transactions++) @oryhp
- …please feel free to make your suggestions. I am open to your feedback!
So far I am still covering the foundations. Things like what is Eliptic Curve, what does it have to do with cryptography, what are hashing functions, what are signatures… Once those are done I would like to explain how transactions are made, then how Cuckoo Cycle works. Maybe even implement a tiny-toy-miner in Python that would produce few blocks with small signature (such as in current tutorials). Feel free to jot your ideas down below!
I will edit this post so that it always has a list of tutorials up to date.
Introduction to Eliptic Curve Cryptography (ECC) and Diffie-Hellman (DH) key exchange algorithm. After this reading you will know what does the curve has to do with all this. You will also have a basic idea how two parties can come up with a common shared secret via insecure channel. As examples we show few keys and even brute-force to break them. Those examples are so small you can see them graphically as points and arrows!
So many concepts in cryptography rely on hash functions that it cannot be skipped. In this article I explain the basics of what it means a hash function is secure and what it can be used for. I also attempt to find a collision (and fail even for an insecure one!).
In this tutorial Alice receives two messages from Bob, one of them is really suspicious. By using ECDSA algorithm we verify the attached digital signature attached to each message and based on that estimate which one is more likely from Bob!
Tutorial on how to protect your secrets with symmetric ciphers and even, how to protect the existence of the secret with hidden volumes. Less relevant for MimbleWimble, however essential if you want to understand how init_secure_api function in the Owner’s API works.
- Schnorr signatures
- Adaptor signatures
- Cuckoo Cycle
- Toy-MW blockchain with Python miner
- … I’m all ears! Write down below what you are interested in!