In Rockchain, we’re using a technique called “Cut and Choose” to prevent malicious actors to alter a javascript code execution in our distributed javascript engine. The Cut and Choose is a technique to statically prove a remote party is honest. Recently, some applications in distributed quantum computing are also being considered.

Often, the Cut and Choose technique is described with a metaphore using a cake cut in two, with a choice given to a remote party about which part he wants to keep. Although the algorithm name comes from this analogy, I think the below metaphore is better to describe the usual Cut&Choose use cases:

A gourmet restaurant owner wants to add some very old wine in his menu from a new wine reseller. However, he fears that some of the old wine bottles have turned sour. He thus buys 6 bottles of wines from this reseller, chooses randomly 3 of them, opens them and tests them. If the three testings are correct, he dispatches the 3 remaing bottles on the customers’ tables.

Doing that for a few days, the restaurant owner can statistically consider the new wine reseller to be honest.