How to Make a Cryptocurrency: A Step-by-Step Approach