Designing Privacy Preserving Nodes For Public Blockchains Using Trusted Execution Environments