Blockchain, smart contracts, cryptocurrency and ICOs