5

If you create a cold storage account, by following the method described here for example:

How to send ether to a cold storage account?

And subsequently, a hard fork takes place on the Ethereum network, are there any extra steps that must be taken when moving the Ether back to hot storage?

3

To the protocol, there's no difference between the various kinds of storage (hot, cold, paper, etc.) All it knows is that a given key corresponds to a given address. So there wouldn't be anything pertaining to cold storage per se--it should all still work.

But it's remotely possible that due to the nature of a fork that everyone, regardless of how they store their key, will have to do something. Splitting ETH and ETC balances after the DAO rescue fork was one of these things. And while that specific situation almost certainly can't happen again (because of replay attack prevention), it's not impossible that some fork will have some other special instructions related to it. One can't know them ahead of time.

  • So with a hard fork similar to the one on this Ethereum blog post: blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork would you just have to make sure the newest software was in use before you made any future transactions from cold storage? Curious to know how this would work with commercial devices (e.g. Trezor, Ledger Nano s etc.) – Moustache Mar 22 '17 at 11:44
  • I believe so. I'm not sure about hardware wallets, but I believe all they do is sign transactions--which should still work after forks. It would be a rather bad decision of the developers to break them. – Matthew Schmidt Mar 22 '17 at 15:46
1

Really late to the party...

Depending on the nature of the hard fork, you may need to do one of several things. For the sake of discussion, I'm going to call "Ethereum" the "One True Fork" as far as you are concerned (be it the Ethereum mainnet or Ethereum Classic). Without loss of generality, I am assuming you wish to move ether and not ether on one of the forks (if you wish to move ether on one of the forks, just reread this, swapping the roles of Ethereum and the fork).

You should/need to upgrade your wallet in all cases. If your cold storage device generates transactions and signs them (fancier devices with a whole UI on them such as a Ledger Blue might do this -- but I haven't looked at the manual, so I don't know if they're just fancier Nanos), then you will need to update the software on that device. If your cold storage device is a dumb USB key or a device that only signs transactions (e.g., a Ledger Nano or a Trezor Black), then the software you need to update is on the computer that generates the transactions.

Ethereum is a friendly fork of Othereum

This is what happened (less friendly at the time?) when Ethereum forked and Ethereum Classic did not. You will need to update your wallet software and everything should work fine. If you're using a hardware wallet, the crypto logic in a device like the ledger is chain-agnostic, but you may need to tell your Internet-connected device to use a different key derivation chain.

With current wallets (including those that existed when you first posed the question), you shouldn't be at risk of someone replaying your transaction onto the old network due to EIP-155. Because the ETH and ETC community found it disadvantageous to have replay attacks, they chose different chain IDs to enable disambiguation between chains (and thus are somewhat friendly).

Ethereum is an unfriendly fork of Othereum

When ETH and ETC first split, it was unexpected to the ETH developers/community that the original chain would survive, so EIP-155 wouldn't have been useful. Nowadays, we have EIP-155, but a fork could be unfriendly and deliberately choose to use the same chain ID as Ethereum. This makes replay protection more difficult.

A contract could be created that is used to determine which chain a transaction is occurring on; this can be accomplished by having a contract inspect the chain state and compare the state to a known value for each of the two chains; one could then "lock-in" the decision after a certain time. A splitter contract was created to help make things simpler during the ETH/ETC split: one could send ETH and/or ETC to a splitter contract which would then send ETH/ETC to a different account, depending on which chain the transaction was occurring on. You will probably want to move your ether through such a splitter contract after a hard fork from cold storage.

Ethereum is radical different from Othereum

Perhaps the fork is so radically different that transactions are incompatible between chains. For example, maybe ECDSA is about to become obsolete due to quantum computers, so Ethereum adopts a new transaction signing process. A cold storage device that does signing will become obsolete, too, without a firmware update. There is no worry about cross-chain transaction replays, but there will be short-term chaos.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.