Understanding SMT Features

in #smts5 years ago (edited)

understanding SMT features.jpg

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

Sort:  

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!

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.

Steemit ROCKS!
Thanks for all your hard work creating SMT's, reading the whitepaper now.
MAY YOUR HEALTH BE WITH YOUR 2.png

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.

Interesting, but how does it protect 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.

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

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 ?

While most of the features of STEEM that have been included within SMTs have customizable parameters, one that does not is the Power Down.

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

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 ?
??? ???

Congratulations @steemitblog!
Your post was mentioned in the Steem Hit Parade in the following categories:

  • Comments - Ranked 6 with 60 comments
  • Pending payout - Ranked 3 with $ 61,34

.. thank you very much!..be sure that I m willing to learn more about smts and the whole blockchain-thing..respect for your work, real cute job!..I m with the right people..

Great work on SMTs! I love to see this happening!

Now that Libra is having issues I wonder if Facebook could utilize SMTs like I suggested in this post 2 years ago!

Can we get Facebook to use SMTs?

So there will be no powerdown to begin with... Does that mean rewards can be 100% received into the wallet and not automatically powered up?

There will be a 13 week power down.

Oh, okay, I'm sorry, somehow when I read it I did not catch that. I see now that I misinterpreted the message of that paragraph. We just are not able to adjust the vesting period.

Thanks for the reply!

So one specific token could only change their parameters during a STEEM blockchain hardfork?

No, only STEEM is changed through hardfork. Once an SMT is launched its tokenomics cannot be changed. If you wanted to alter the tokenomics of an SMT you would launch a new SMT and airdrop the new token to existing stakeholders.

While most of the features of STEEM that have been included within SMTs have customizable parameters, one that does not is the Power Down

So there's no power down at all ? Or is it just not configurable (and will be 13 weeks for every SMT out there) ? If it's the first, no possibility for developing incentive for staking tokens then for SMT emitters ? It would seem like a MAJOR feature of Steem and Proof-of-Brain has been forgotten here...

Can part of the inflation be used for a proposals system like Steem has ?

Would it be possible to just distribute inflation equally among all holders of one SMT (independently of individual stakes of said SMT) ?

Thanks in advance for the answers.

It's just not configurable. The power down period is 13 weeks just like Steem Power. It could be made configurable in V2

I assume that a 13 week power down would be unchangeable for SMTs created during V1 even after the implementation of V2?

None of the SMT paramaters can be changed after creation. The natural upgrade path for SMTs to make these kinds of changes is to create a new one, airdrop on 1:1 basis to existing holders, and the encourage the community to switch. How readily a community might or might not switch and the ability of the SMT creator to encourage such switching will vary depending on the situation.

I hope someone would post an elaboration of this post in simple terms for those who know nothing about technical terms about this matter like me, most steemians are.

This is a good news.

Plot twist ~ the top 20 witnesses reject SMT hardfork stating 'it is inconvenient and immoral'. There is only one Steem.

The more likely concern would be over quality of the code base. This is an enormously complicated upgrade, probably 10x or more new code compared to the last few and those had their own share of quality problems to the point of crashing the chain more than once.

Hmm. Glad it isn't being rushed.

Closer inspection from our team of highly esteemed developers and blockchain analysts reveal the new SMT code is little more than an encrypted video of (meme contest time)
We have our doubts this update will be a smooth one.

Looking good 👍🙂

SMT's are about to touch down, and steem is about to take off 🚀

I just noticed that the payouts on the blog posts of @steemitblog are no longer declined. 50% goes to @null and 50% goes to @steem.dao since approximately 1 month. I think that this is a good move.

developers should thoroughly test their SMT before finalizing its design.

how?

Congratulations @steemitblog, your post successfully recieved 14.28278625 TRDO from below listed TRENDO callers:

@wongshiying earned : 0.018492 TRDO curation
@theguruasia earned : 9.5033655 TRDO curation


To view or trade TRDO go to steem-engine.com
Join TRDO Discord Channel or Join TRDO Web Site

This is super exciting, I can hardly wait to try out some design ideas so we can utilize tokens along with our IPFS web app. Sounds like the SMT launch is a few months away?

Thanks for the update guys! 😎

Posted using Partiko iOS