Many of you reading the announcement post wanted to know how Engine works, so I’m going to explain the high level concepts here. This is also very similar to how Steem Monsters, steemsmartcontracts, and steem-state work.
If you haven’t read it yet, here’s the Engine announcement post.
The best way to show how Engine and soft-consensus in general works (I think) is with an example. Alice wants to transfer 10 ENGN to Bob. She creates a transaction to the Steem blockchain saying ‘transfer bob 10’. A witness then includes that in the next block. That block is broadcasted to all Steem nodes and those Steem nodes send it to the Engine nodes. These Engine nodes see that Alice transferred Bob 10 ENGN so they subtract 10 from Alice’s balance and add 10 to Bob’s balance, actually completing the transaction. One could see how this could easily be expanded to include more features than just a token, e.g. SteemMonsters.
That is, Engine transactions are not verified or executed by Steem nodes, only by Engine nodes, which the next example demonstrates. This time Mallory wants to attack the network and send 1000 ENGN to her friend Lewis, even though she only owns 10 ENGN. Mallory creates a transaction to the Steem blockchain like Alice did, saying ‘transfer lewis 1000’. The Steem blockchain doesn’t verify this transaction and includes it in the next block, even though it is invalid (Mallory is trying to transfer ENGN that she doesn’t have). This is broadcasted to all Steem nodes, and finally reaches the Engine nodes. But these Engine nodes know that the transaction is invalid (they look at their internal ledger of balances and see that Mallory doesn’t own enough Engine), so they simply ignore it.
Invalid Engine transactions can be placed on the blockchain, but they will simply be ignored. This demonstrates that only Engine nodes verify and execute the transactions, but Steem nodes place them on blocks, deal with fees, maintain consensus, etc. The Steem nodes only need enough programming to be able to handle consensus and they can leave all the unrecognized transactions to be handled by other types of nodes such as Engine or Steem Monsters nodes.
Having seperate node types perform seperate operations (e.g. Engine nodes, SteemMonsters nodes, DLUX nodes) using Steem as a base consensus layer could be called a form of sharding or a form of sidechain, usually being called the latter. This helps Steem scale, effectively splitting consensus and features into seperate nodes and computers.
If the Engine nodes have a bug or a problem, only Engine features are affected; the Steem blockchain cannot be harmed by an Engine hack. Same goes for Steem Monsters, steemsmartcontracts, DLUX, etc.
Adding new features to Engine does not require any change to the Steem source code. That is, there is no need to cooperate with Steemit Inc to add features and improve the blockchain, and there is no need to have an understanding of C++ and knowledge of Steem’s source code to contribute. That is, adding new features to Engine is much quicker to do than adding new features to Steem.
Steem Momsters runs on a very similar concept to Engine, except for one key difference — the node is not open-source. That is, only @aggroed, @yabapmatt, and the rest of the team are able to run a node. This means that Steem Monsters is not fully decentralized like Engine is.
steem-state makes it easier to make DApps running on Steem using the methods described above. Engine uses steem-state, as well as DLUX, Chibera, and Hashkings.
steemsmartcontracts, developed by @harpagon uses similar concepts to Engine to implement smart contracts on Steem. Smart contracts are working, but the project is vulnerable to a few major problems due to the lack of fees for computation, ask me if you are interested in a more detailed explanation.
Why the ENGN Token Exists
Some of you may be wondering — why create a seperate token and not be loyal to Steem? The answer is that I would love to use Steem rather than the Engine token, but here is where Engine (and soft-consensus in general) has its limitations. The Engine DApp does not have the ability to manipulate Steem directly — no way to own or force transfer of Steem, but does have the ability to manipulate the ENGN token directly because it is part of the ‘shard’ or ‘sidechain’ that is Engine. ENGN is not intended to be a security to be bought and held, only a utility to act as monetary transfer in Engine. Because of this, we will only be holding a very tiny giveaway at the network launch to kickstart the token.
The ENGN token is meant to act as an extension to Steem, not as a competitor or scammy ICO coin. Plus, Engine will almost directly add value to Steem because transactions cost Resource Credits, which can only be acquired by holding Steem.