Over the past few weeks, the bitcoin cash (BCH) community has been discussing the use of 'op-codes' with the BCH chain. The technology could allow the creation of different types of metadata implementations like colored coins and representative tokens, alongside the ability to perform smart contracts, but in a more simplified manner as opposed to ethereum's solidity programming language. The subject of re-activating certain op-codes and scripting abilities has invoked some excitement from BCH proponents and this May after the bitcoin cash hard fork the community will see some new op-code features.
Bringing Op-codes, Colored Coins, and Smart Contract Functionality to the Bitcoin Cash Network
Bitcoin cash is forking on Tuesday, May 15 at approximately 12:00:00 UTC, 2018 and will feature a 32 MB block size upgrade, and "several bitcoin script operation codes (op-codes) being added or reactivated." Op-codes are basically an abbreviation for 'operation codes' which is essentially a portion of machine language instructions that enable the performance of a specific task. The Bitcoin Cash codebase uses a scripting system in transactions using a Forth-like process, and the protocol has the ability to create colored coins, and simplified smart contracts that can perform automated functions.
The resurrection of op-code deployment has been discussed for quite some time, but was recently brought back up when Bitcoin Unlimited's Andrew Stone launched the 'Op-Group' meetings on Github. Bitcoin cash developer participants at the meeting included Amaury Sechét of Bitcoin ABC, Dan Connolly of bitcoin.j.cash, Steve Shadders of Nchain, and other programmers.
"In order to support non-trivial cash use cases for the bitcoin cash blockchain, a number of ecosystem participants would like to see some of the original bitcoin op-codes re-enabled for use in smart contracts," explains the meeting summary back in February.
However, the original issues associated with these opcodes remain valid — Namely, undefined behavior, and potential for DDoS attacks against the network.
The Initial Opposition to Op-Group
According to the Op-Group meeting, the developers will re-instate nine op-codes that were once available in older bitcoin implementations. Some of the op-code phrases were removed because there was a fear of bugs. For instance, in an early version of the bitcoin codebase, the op-code 'OP_LSHIFT' allegedly could crash any bitcoin node if exploited. The reinstating of op-codes came with some controversy within the bitcoin cash community. When Bitcoin Unlimited (BU) proponents brought up the subject, there was an argument about using op-codes or the recently developed Counterparty Cash implementation. During the heated battle, BU supporters showed some angst against ABC developers at the time.
Amaury Séchet argued during the initial discussions, "If Counterparty breaks, only Counterparty breaks. If OP_GROUP breaks, Bitcoin Cash breaks." The Counterparty protocol uses a separate network to complete the tokenization process rather than the BCH chain.