The recent World Chess Championship came to an end after Magnus Carlsen defended his title by willing against Fabiano Caruana in tiebreakers. Now even programmers are trying to cash into the chess frenzy.
A programmer used a few recently added features like the re-enabled opcode OP_Checkdatasig to chess game on the BCH blockchain. BCH developer called Tobias Ruck was inspired by the new additions and designed a chess game with the feature.
“The good thing about chess is that it's rules are deterministic, so no need to throw dice or do some cryptographically secure pseudo-random number generator magic. So if Kasparov were to challenge Anand for a round of chess, they might trust some third party (referee) or even each other to enforce/follow the rules, but if they are anonymous people on the internet playing for not insignificant amounts of money, it would be good if the rules of the games didn't require a trusted third party,” Ruck says in his blog.
After exploring this idea further and getting some traction on his idea, Ruck realized that he could even build a Turing Machine on top of BCH protocol. Then he clarified some people’s confusion around OP_CHECKDATASIG. He said:
“In my previous post, I showed how we can do looping transactions on the Bitcoin Cash blockchain. Unfortunately, this caused some confusion, as people initially believed OP_CHECKDATASIG allowed to loop within Bitcoin Script. This is not true, with the scheme I showed we can only loop using a new transaction for each loop. People claiming CSW was right about OP_CHECKDATASIG introducing loops IN Script are wrong. It's just false. The idea that you could call another transaction by checking a signature is just ludicrous. To keep the loops spinning, you have to feed it with more Satoshis each loop, which is similar to Ethereums Gas limit.”
When people were skeptical about his claims of being Turing complete, he replied by saying that it is pretty easy to make something Turing complete and one actually has to go out of their way to not make something Turing complete accidently. He added:
“The creator of Bitcoin Script was very careful not to make it Turing complete, so that it would be easy to check the script's execution costs. A simple way to show Turing completeness is by simulating a Turing machine. For that, we'll pick a derivative of Smallfuck, an esoteric programming language, which has been shown to be Turing complete. If we can simulate that on Bitcoin, we know it's Turing complete.”