Understanding SMT Features
Hello Steemians, the SMT testnet has now been running for almost two weeks and SMTs have been enabled since last Monday! That means that, since that time, developers have been able to create their very own SMTs. In fact, @inertia created the world’s first SMT!
What Can SMTs Do?
The SMT whitepaper is still the most authoritative reference for understanding what SMTs can do, but that is far too technical for most people. For those people, the best way to understand the capabilities of an SMT are to understand the capabilities of STEEM. We have often said that the SMT protocol would give anyone the ability to launch their own STEEM-like token, and that was based on a very technical reality.
Thanks to the intelligent design of Steem, it was fairly straightforward to take all of the features that STEEM already had and make them available to SMT creators. In a very real sense, when you launch an SMT it is like you are getting a “Do Over” with the STEEM token.
Token Inflation
Because STEEM was designed to have token emissions (i.e. inflation) you can set a token emissions rate for your SMT. That can be 10%, 23%, 1423% or 0%. But STEEM’s token emissions rate also changes over time based on a graph that was specified during a hardfork. So SMTs have that ability too.
If you can describe how you want your token emissions rate to change over time in a mathematical formula, you can specify that formula when you are creating your SMT and the Steem blockchain will faithfully execute that code. Of course, since that formula is locked in consensus, you can’t change it once the SMT has been launched. That is one of the many reasons developers should thoroughly test their SMT before finalizing its design.
Token Destinations
Because STEEM was designed to have emissions directed at specific accounts, like the Rewards Pool, and distributed to those with vesting STEEM, SMTs have that capability too. You can set a token emissions rate of 10% (or any other number) and direct those emissions to the Rewards Pool for distribution via Proof-of-Brain. You can set a token emissions rate of 35% (or any other number) and have that distributed amongst those who have your SMT powered up.
In total there are 8 “special places” to which the SMT creator can specify token emissions be directed. These are:
#define SMT_DESTINATION_PREFIX "$"
#define SMT_DESTINATION_ACCOUNT_PREFIX SMT_DESTINATION_PREFIX "!"
#define SMT_DESTINATION_VESTING_SUFFIX ".vesting"
#define SMT_DESTINATION_FROM unit_target_type( SMT_DESTINATION_PREFIX "from" )
#define SMT_DESTINATION_FROM_VESTING unit_target_type( SMT_DESTINATION_PREFIX "from" SMT_DESTINATION_VESTING_SUFFIX )
#define SMT_DESTINATION_MARKET_MAKER unit_target_type( SMT_DESTINATION_PREFIX "market_maker" )
#define SMT_DESTINATION_REWARDS unit_target_type( SMT_DESTINATION_PREFIX "rewards" )
#define SMT_DESTINATION_VESTING unit_target_type( SMT_DESTINATION_PREFIX "vesting" )
As you can see, by customizing just a few SMT features, you can create an infinite variety of tokens. That complexity, and how it impacts other parts of the blockchain, was the really difficult part of implementing SMTs. The benefit of the intelligent design of Steem is that we can rely on a huge amount of preexisting code that has already been tested for 3 years: the STEEM code. The reason why SMTs can have as many features as they do is because STEEM has so many features, and SMTs essentially leverage that exact same code.
What Can’t SMTs Do NOW?
While most of the features of STEEM that have been included within SMTs have customizable parameters, one that does not is the Power Down. The benefit of the design approach we took with respect to SMTs is that it enables us to “piggyback” off the security and stability of existing work. With respect to SMT vesting, that enabled us to add a vesting feature relatively quickly. Unfortunately, the work required to enable SMT creators to adjust the vesting parameters would have led to significant delays and we do not think the value added would justify the additional delay. For that reason, SMTs launched with v1 will have 13 week power downs, just like Steem Power.
None of this is to say that any feature cannot be added to SMTs in the future. All of the ICO code, for example, is brand new, since STEEM never ICOed. The decision to develop any code is always the result of a cost-benefit analysis. We want to offer the most secure, stable, and powerful software possible, and these goals often conflict with one another. Additional features which might be quite powerful, can also increase complexity which can negatively impact security and stability.
Designed to be Improved
While SMT v1 is a replication of the STEEM feature set with customizable parameters, we created the SMT protocol specifically so that new features can be added through subsequent hardforks; including features that do not exist for STEEM. V1 consists of those features that give the widest range of capabilities, without introducing too much risk into the ecosystem.
Thanks to Steem’s 3-second fee-less transfers, any capability that does not yet exist in SMTs can be replicated using an off-chain bot. This combination of features means that under the least ideal circumstances SMTs are still a great option for a developer who is looking to integrate a powerful token into their web application, and under many circumstances SMTs will be far and away the best option.
Future Posts
These are just a few of the features of SMTs. We plan to explore more in future posts, so be sure to follow @steemitblog if you'd like to learn more about the powerful features included in SMT v1. To learn more about SMTs, check out the SMT whitepaper.
The Steemit Team
If all SMT tokens have the same Power down period of 13 weeks, this is the tragedy of SMTs ecosystem.
I hope to see the features for each SMT token to set its own unstake period in v2. This can be the most important factor in determining a success of SMTs.
I also hope that the SMT tokens will not have 13 weeks power down periods. If yes, then some of the Steem Engine tokens are already better than them. For example PALcoin (PAL). The power down (unstake) period of that coin is only 4 weeks.
Is it possible to issue more tokens of a SMT after launch not via inflation? This is important if someone wants to make SMT backed by other currency or commodity.
This will probably come with the future versions as they're focusing on simplicity and shipping SMT's out right now.
What I wonder is do my websites users need Steem also for RC's to interact or will SMT's be enough? How does all that work?
They will not need Steem because the SMT hardfork contains resource credit delegation pools. After the SMT hardfork, RCs can be delegated to anyone with a Steem account.
Actually no this probably won't come in future products because SMT parameters cannot be altered post launch. There are better ways to achieve this objective. 1. At launch fill an account with extra tokens which you can choose to release onto the market whenever or burn. 2. At launch create an account and set it to fill with some amount of token inflation. You can then choose to put these tokens on the market or burn them. 3. If you decide you need to adjust the tokenomics of your token (like the inflation rate), you can release a new version of your token (E.g. TokenName v2) and airdrop new tokens to your existing stakeholders. If you want to make arbitrary changes to a token, it should be a soft/emergent consensus token.
I see, thanks for the answer!
Thanks for this post. It's nice to keep it simple!
I have one question.
Could you maybe explain a bit more about what the role of the STEEM token will be once SMT's are out?
Technically nothing is really changing about STEEM. I think the real answer to your question lies in Resource Credits. I don't think people really appreciate how much Resource Credits fundamentally altered Steem (for the better). RCs essentially guarantee that no matter what anyone does on the Steem blockchain, it benefits all Steem stakeholders. This is slightly simplistic, but essentially the more transactions people perform on Steem, the more RCs are consumed, and the more STEEM needs to be powered up in the aggregate. The RC algorithm ensures that the increase in demand for STEEM won't suddenly deprive people of the ability to transact, and it smooths out the user experience. So the short answer to your question is that STEEM continues doing what it does now; it regulates the consumption of network resources by ensuring that only those who have staked sufficient STEEM are capable of performing transactions. The beauty of this system is that it simplifies our task as a community: create more ways for people to have amazing experiences on Steem. SMTs are just another way of enabling people to have more delightful transactions on Steem.
Thanks for the answer, Andrew.
I guess for the value of STEEM it all comes down to whether we can find enough people, businesses and communities that want to use the network and are willing to pay for it by staking/leasing STEEM.
That leads to one more question I have wanting to ask for a while.
When all the work surrounding SMT's and communities are complete and the features are live. Is finding businesses that want to use these awesome tools something Steem Inc. will pursue or will the focus be on more blockchain development and steemit.com or maybe a combination of both?
This is something we're already doing and would like to do more of. This falls on the non-engineering members of the team and the engineers would still be focused on their products. If anyone has any leads, they can feel free to e-mail me at [email protected]. There's lots more work to be done on Hivemind, SMTs, and Steem core. I expect both Hivemind and SMTs to continue to receive updates for as long as Steem is update-able. As the market discovers new use cases for cryptocurrencies, the features that enable those use cases should be added to the SMT protocol. The potential for Hivemind is unlimited and it can continue to be updated even if Steem were to become un-update-able for whatever reason. This is only one of the reasons why I think Hivemind may be the most potentially disruptive piece of software we've released.
Also, what's your short answer to rumors that Steem shouldn't be the reward token for curators and authors but give space to SMT's to do that?
These aren't rumors as much as one potential option for the future. It's certainly not going to be part of the SMT hardfork (or at least that is highly unlikely). But as far as whether it is included in a future hardfork, that will depend entirely on what the community comes to a consensus on.
The staff seems to be intentionally skirting that question, which might mean that they are considering the idea but don't want to commit to a path on that.
That can be smarter than coming out and saying yes or no on it. If Steem removed the reward pool and SMTs don't perform well the chain is likely going to take such a hard hit to its reputation that it might never recover. On the other hand, if SMTs perform very well, and it seems like removing the STEEM reward pool is a viable path, then it could be a good thing.
Long term, Steem likely needs to remove the reward pool, but doing it too soon can be dangerous.
The reward pool is one of the reasons that the steem blockchain is somewhat less vulnerable to the potential degradation that any DPOS chain can suffer as a result of vote incentivization from blockproducers. That is one of the reasons why I am opposed to eliminating it. @anyx doesn't specifically mention that in his analysis but I think it's a logical conclusion.
https://steempeak.com/dpos/@anyx/how-vote-incentivization-monopolizes-delegated-proof-of-stake
I probably would be ok with a reduction in the percentage that goes to the reward pool but not with eliminating it.
Interesting, but how does it protect against vote monopolization? Also, alternatively, we could solve that problem simply by making witnesses stake STEEM with the potential for it being slashed. DPoS was brilliant in a world where slashed stake did not exist, but at this point in time it might be good for us to take a second look at the witness system and adjust it.
If we changed the witness system we would not need STEEM inflation for posting. Right now we have a system where the top 20 produce blocks and 1 random witness produces blocks but perhaps we could increase the number of random witnesses selected. This could improve decentralization and make the system much more secure against vote monopolization.
In other DPOS chains the majority (if not all) of the inflation goes to the block producers. By offering kickbacks they can ensure that the stake that votes for them grows much faster than the one that does not.
Steem distributes the majority of the inflation to none witnesses thus the block producers have little incentive to offer kickbacks to their voters. After all they need to maintain their infrastructure and the witness pay does not leave much room for such deals (they only get 10% of the inflation).
This does not mean that steem is not vulnerable to such degradation of consensus. It just means that it would take a longer time to playout.
Fair enough, but the risk could also be mitigated by relocating the author/curator/commentor rewards to interest rewards. Currently, author/curator rewards takes up about 72% of the inflation with staked interest at 16.8% and witnesses at 11.2% of the inflation pool.
By cutting the author/curator inflation in half, you could have 35% of it remaining and relocated mostly to interest. If 10% went to witnesses and 25% went to staked interest with 37% eliminated, you could keep staked voters in control while making the witness role more lucrative and thus more secure and competitive.
That would mean interest would receive 41.8% of current inflation while witnesses receive 21.2% of current inflation and a cut in total inflation of 37%. Staking for interest, SP and RC delegations could prove more lucrative for stakers, potentially resulting in an increased demand for the supply.
Does the 'price' of resource credits change with changes in activity levels?
No, RCs have no price
Sure, perhaps I should word that differently. It takes a certain amount of resource credits to perform functions on the steem blockchain, and it takes a certain amount of steem power (SP) to have 'enough' resource credits in order to perform said functions, so my question is, does the amount of SP required to perform the same function change with changes in activity/usage? IE will it ever require more or less SP to perform the same functions as it does right now?
Yes, it is dynamic according to usage.
Will we be able to delegate/lease Resource Credits?
Yes, Resource Credit delegation pools are in the SMT code currently on testnet :)
Awesome 🤘😝
Posted using Partiko iOS
Right?
Would love to hear more on this as well.
SMTitties better be what boobs are on Instagram and just shoot this platform into the stratosphere.
Butt shots are better 😂😂
Posted using Partiko iOS
My man...
Buttman is my middle name! 😎
Posted using Partiko iOS
Can you please fix the cors header issue for testnet.steemdev.com ?
I get a 403, when I try to connect via dsteem.
Also: will there be updates for dsteem and steem-python ?
So there is a 13 week Power Down as with Steem Power?
A paper for directed toward businesses is still required I think. Removing the technical speak around inflation, token destinations, etc, with examples and how to guides would aid non-devs - e.g. the platforms with people already contributing content.
Ugh, unrelated but a change to a 1-2 week power down should be our next hardfork.
From a quick look at it, there are a dozen parameters to be set.
Those people, who stay away from anything 'programming' related, will have a hard time understanding, just from text. If they could read that, they could read code to begin with.
I am sure there will be third party UIs popping up quickly enough, where anybody can just use sliders and tick boxes to set up their own token.
How to guides for non devs. We can but dream.
We might have some ideas for ways that it would make it EVEN easier for non-devs to create a token. Maybe ;) Watch our presentation at SteemFest
I shall do that. Sadly, not from the live audience this year!
:(
I am pleased to see this update. Great work!
@tipu curate
!trdo
Posted using Partiko Android
Upvoted 👌 (Mana: 0/1)
Congratulations @wongshiying, you are successfuly trended the post that shared by @steemitblog!
@steemitblog will receive 0.02773800 TRDO & @wongshiying will get 0.01849200 TRDO curation in 3 Days from Post Created Date!
"Call TRDO, Your Comment Worth Something!"
To view or trade TRDO go to steem-engine.com
Join TRDO Discord Channel or Join TRDO Web Site
$trdo
Congratulations @theguruasia, you are successfuly trended the post that shared by @steemitblog!
@steemitblog will receive 14.25504825 TRDO & @theguruasia will get 9.50336550 TRDO curation in 3 Days from Post Created Date!
"Call TRDO, Your Comment Worth Something!"
To view or trade TRDO go to steem-engine.com
Join TRDO Discord Channel or Join TRDO Web Site
It is unbelieveable, wow.
Exiting.
Hopefully there will be a SMT for dummys seminar post series somewhere ?
??? ???