[TPBC] Theory and Practice of Blockchains