There still seems to be a great deal of confusion about SMTs and Steem-Engine. Too many people still view them as conflicting and, perhaps, redundant. Here I will explain the differences while showing how they each apply.
Like was said repeatedly, SMTs are a base layer solution while Steem-Engine is a layer 2. This means that the only way to make changes is to amend the code and have a hard fork approved by the Witnesses. This provides a great degree of security.
Steem-Engine does not touch the base layer code. Any changes, additions, subtractions, are done at that level. Anything that bleeds out of there that is malicious affects nothing when it comes to the Steem blockchain. The base code is separate and thus protected.
To most, this is pretty obvious, yet there is a lot more.
Here is the base code box. On Steem, this is not a one size fits all. In fact, it is fit into this box or the blockchain says "go jump in a lake". The Steem blockchain is very particular and will not just cater to anyone.
At the core of all this is the Resource Credit System. The reason I say this is because this is the system that quantifies everything we do on the blockchain. It assigns a value so as to best allocate resources. Thus, we have a figure for voting, posting, moving value around, and opening accounts.
Each of those has a series of operations tied to it, thus there are many more parameters taken into account. For example, a vote needs to consider the staking of the individual making the vote. It also have to take into account everyone else who is voting and their stake. Of course, people like to get paid, so the payouts a week later also are figured out. This means accessing the value of the resource pool in relation to all other votes placed on every post in that time period.
As you can see, this is a very delicate system and one the blockchain is continually running.
The key to SMTs is consistency. Here we see everything fitting nicely into the box. SMTs will mirror what has been running on Steem. Every SMT will be the same in this regard. There are a few parameters that can be changed when setting up like total distribution but all will operate just like STEEM. The same Resource Credit System is in play.
Therefore, SMTs are used for everything that fits into this box. Steem-Engine is for everything else.
Let us say that the New York Time is interested in creating a system where their users are rewarded for voting and making comments. This fits into the Steem box since it will use a system exactly like we are doing on here now. That company could set up the Times token using the SMT protocol (when it is released). Anyone on Steem could log in and transact. Of course, one needs enough RCs to operate and every transaction depletes it the same as if on Busy or Steemit.com.
Again, this is consistent across the board.
Now, if I want to create a token that is tied to a NFT which pays out based upon what is put into a smart contract using information that comes from an outside source, do you think that a SMT will do this? The answer is no. This is outside the scope of what SMTs do.
Thus, I would have to go to Steem-Engine for this. The allocation of resources under this scenario are different than what is provided at the base layer on Steem.
If I tried to do this on Steem, the blockchain would tell me to go fly a kite. It is not set up for this.
So why doesn't Steem provide for this?
Here is a point that is crucial and I think that most miss. Steem is a specialized blockchain in that it does not cater to every idea that is out there. At the base layer is the content/reward system. That is basically what it is designed to do. With the Resource Credit system, the cost of the network is consistent, hence can be allocated to the model that was designed.
And this, my friends, is where the zero cost per transactions enters.
The fact that what is on there fits into the box means the Resource Credit System covers it all. There is nothing that appears which is inconsistent with the base layer requiring the RC System to "figure something new out". The only variables it will be dealing with are known and accounted for.
So why the need for Steem-Engine? Why don't these Tribes just use the SMTs and operate at the base layer?
The truth is there is redundancy at the moment with the idea that many of the tokens on SE do belong as SMTs. They are ideally suited to be placed in the box that I was talking about. As they are constructed now and what they are used for, SMT is a better choice.
Of course, there are no SMTs at the moment so Steem-Engine is the only choice.
Also, if Steem-Engine was going to remain how it is, I would say one could make the case for redundancy. However, according to the posts by @aggroed, the road map is continuing forward.
Let us take the idea that Tesla wants to create a token to reward the owners of Tesla vehicles for the data that is uploaded to the autonomous driving hivemind. Since the goal is robo-taxis, each vehicle will be its own "business", providing a profit stream. Owners should be able to tokenize the car and then sell tokens against the proceeds. Of course, with a TSLA token, all transactions on the network from rides to charging to service to buying are done in that token.
Can that be done using SMTs? Does this fit into the box?
Obviously not. This is something that is ideal for Steem-Engine, especially when NFTs are released.
This is what Ethereum can do. It has the ability to handle this entire scenario, leaving aside the fact that being POW means it can't handle the traffic. However, the technical aspects are no problem. This operates, mostly, at the base layer since smart contracts are part of that code. However, we saw in the past where problems arose resulting in a fork to correct what took place. Again, on Steem, anything used to facilitate this scenario is separate from the base code.
It is also the reason why Ethereum needs to charge for each transaction. The blockchain cannot account for every scenario that is going to come up. Thus, it just treats everything on a per transaction basis.
On Steem, if this was brought to Steem-Engine, they could figure out a way to allocate resources what Tesla would be trying to accomplish. This would not change anything happening on the Steem blockchain itself. Steem-Engine could provide a per transaction charge or perhaps a monthly subscription. Whatever was decided, it would be up to them and could instantly be implemented.
As we move further into the digital asset arena, we will see more projects that fit outside the "Steem box". This does not mean that Steem is making a mistake by being too focused. The market for the content/reward system is huge. Almost every website that has users posting and commenting is a candidate for SMTs. That entails hundreds of millions of websites covering billions of users.
Hopefully it becomes clear that SMTs and Steem-Engine are not redundant or competing in any way. They each have their focus. SMTs are allowing people to create mini-Steems. If a project fits into that, SMT is most likely the idea solution. However, if it does not, Steem-Engine is the perfect alternative.
One final point: Steem-Engine isn't the alternative to Steem but, rather, to Ethereum.
That is where the choice comes in.
If you found this article informative, please give an upvote and resteem.