11

I read the rules of baking and the sanctions of duplication of endorsing (you lose the XTZs gained during the round so far and also to some extend for the next events if you don't react and stop baking on that round).

From where these duplicates arise and how should I as user act to avoid creating them? Also how do I get informed that I could intervene the process and minimize the loss of XTZs due to the duplication?

8

There are only a couple known non-malicious causes of double baking or endorsing.

The first is running two bakers and/or two endorsers with the same wallet at the same time. Some bakers build their infrastructure to be highly available and have multiple bakers and/or endorsers running. There had been a couple cases where a switch over had caused double baking. To avoid doing this, you can either totally avoid having the possibility of running two bakers and/or endorsers at the same time. Or you must test your setup thoroughly. In my opinion, it's better to miss a couple baking or endorsing opportunities than risking a double bake/endorsing.

The second known cause is via third party baking app like BakeChain. BakeChain had a race condition that was causing multiple bake operations to fire unintentionally. So be very selective with what tools you choose to use to bake.

An extra layer to further help avoid double baking/endorsing is to use a mechanism called double bake protection. The most common and well known implementation is via the ledger baking app by Obsidian. The ledger baking app itself prevents the ledger to sign an operation on the same block number twice. Therefore even if you run two bakers, a single ledger will not sign the same block twice. Another double bake protection implementation is the remote-signer, it is also what the foundation bakers uses. Remote signer does require a hardware security module(HSM) to use and it's a much more costly solution.

| improve this answer | |
  • 4
    IMO, the "at the same time" stuff is misleading. The primary mechanism for preventing doubling is a high water mark level, stored in the client or signer directory and protected by a filesystem lock. It should certainly be possible (if not likely) to double without running two daemons "at the same time". – Tom Feb 1 '19 at 9:19
  • 2
    @Tom Ya, I'm not sure how best to rephrase it without being super technical about the implementations. It may be a mistake but given how the question was phrased, I didn't want to be super technical for the sake of the asker. Do feel free to propose edits. – Frank Feb 1 '19 at 16:02

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.