Fee-Less v. Free-to-Use: What's the Difference?

in #koinos2 years ago

@bil.prag made an interesting comment to my previous post asking about the difference between "fee-less" and "free-to-use." Is there a difference? Yes, there certainly is, and in this post I'm going to explain what that difference is.

Free and Feeless.jpg

One of the most overlooked innovations that the Steem blockchain delivered to the market was the removal of fees. Up until Steem, no one had thought that was possible. After Steem a lot of people imitated the fee-less design, but most just made it worse, not better. But just like Bitcoin and Ethereum made it difficult for people to get out of the fee-based mindset, Steem's popularity and design made it difficult for people to get out of the fee-less mindset and consider that an even better user experience was possible. A user experience that wasn't just fee-less, but where users could just begin using Dapps totally for free.

Understanding Fee-Lessness

Steem didn't actually remove all fees, it removed transaction fees, which was a really big deal. You still had to pay for an account, which was a fee. To minimize the negative user experience of that fee, Steemit paid that cost for users, but that just shifted the burden of that fee onto Steemit. When things were going well, it seemed worth the cost, but once things started to turn, it was costs like this that significantly impeded Steemit's ability to function.

In addition to the account fee, users also had to acquire STEEM tokens and then stake them into Steem Power in order to get the resource credits they needed to use the blockchain for free. It was too complicated, confusing, and time-consuming a process and it's hard to argue that this isn't a fee because ultimately the user must pay money for tokens before they can do anything.

Once again, Steemit Inc. stepped in. At first we would just give accounts STEEM so that they would be able to use the blockchain. We literally gave away money! Again, when times were good this made sense, when times were bad it became obvious we were bleeding cash and had shift focus to stemming the flow of cash out of the company. This is actually what led to the invention of Steem Power "delegation." Instead of parting with STEEM forever, Steem Power allowed Steemit to give users the ability to begin using the blockchain without losing money. The silver lining is that delegation is quite a powerful concept that is key delivering the free-to-use experience of Koinos, as I will explain later.

But the real hidden tax from all of this was the countless engineering man hours that were spent developing work arounds to make Steem feel more free-to-use even though it was technically "fee-less." Not only that, but all of these subsidies incentivized people to create fake accounts. That cost Steemit even more money, and trying to filter out fake accounts consumed even more engineering bandwidth.

A Better Way

One of the benefits of building your own blockchain from scratch is that you can use your hard-learned lessons to build the system right instead of being stuck in an endless cycle of fixing someone else's mistakes. Michael didn't design Steem, he was just a recent college grad hired to do the grunt work of writing tests for what would ultimately become the Steem blockchain. His brilliance and productivity quickly became apparent, demonstrated by the fact that he is still the top contributor to both the Steem and Hive github codebases. But he didn't design Steem--create the mental models--he just wrote most of it.

One of the engineering lessons that Michael has taught me is the importance of "mental models." He explained that it didn't matter how good the technical implementation (the code) was, if the mental model was bad, the software would be bad. Needless to say, when architecting Koinos we gave a lot of attention to formulating the right mental models.

The Koinos Model

When it came to the user experience we wanted to support on Koinos, the mental model we developed was one in which the end-user (the person using a Dapp) could sign in and begin using the blockchain without any friction whatsoever. They shouldn't need to purchase an account, they shouldn't need to acquire tokens, and they shouldn't need to stake tokens. It should be totally free-to-use.

Of course, it wouldn't work to just shove those costs onto the developer, after all, Koinos is a tool for developers. Our core value at Koinos Group is actually developer obsession. With our mental model clarified we then got to work designing the system to satisfy these requirements. We implemented Ethereum-style accounts because they do not consume network resources and can therefore be created for free. Neither the user or the developer has to eat that cost.

To eliminate the need to stake tokens in order to use the blockchain we had RCs effectively accrue to liquid token holders. Of course, blockchain resources still have a cost which needs to be born by someone, which is why we carried over the concept of delegation, but with a totally different implementation.

There were several problems with how Steem Power delegation had to be implemented, but one of the biggest was that the delegator had no control over how the recipient actually used it. Steemit was delegating all of this Steem Power, but how many of those users were using it on steemit.com as opposed to, say, Splinterlands? Don't get me wrong, we love Splinterlands, but they too would be faced with the same problem. Koinos will have an infinite variety of applications including DeFi applications. A game like Splinterlands wouldn't want to give people delegations only to see them use it on DeFi.

Our Dirty Secret

To solve this problem we turned to an established concept on general purpose blockchains called "payer/payee semantics." You see, we have a very dirty secret on Koinos ... there is no real delegation! We call it delegation because this is the easiest way for people to understand it, but it is just the developer choosing to "pay" the mana when someone uses their Dapp! Yes, the developer still has to hold a stash of KOIN in order to be able to pay the mana being consumed by their users, but they do not have to lock it up in the equivalent of Steem Power and they don't give up control over what users actually do with their free usage. They are able to make a very deliberate and cost-effective business decision: is it worth it to my business to pay the mana for this specific user, making this specific transaction? If so, of course, I'll pay that mana. After all, I'm not actually losing any money, some of my KOIN is just getting locked for 5 days.

There you have it, an economically sustainable decentralized application development platform that delivers a totally free-to-use experience. People with no tokens can sign into a Dapp and immediately begin using the blockchain, and the Dapp developer has all the tools they need to make this user experience profitable for them. That is the difference between fee-less, and free-to-use. Is the system perfect? Probably not. Could there be a better way, a next evolutionary step toward creating even better user experiences on blockchains? Absolutely, which is precisely why Koinos the real innovation at the core of Koinos is its ability to evolve over time without the development bottleneck of hard forks.!

To learn more about Koinos, go to koinos.io, and if you have any questions join our fantastic community in telegram or discord.

CEO signature 83122.png

Sort:  


~~~ embed:1591559686654136320 twitter metadata:MTIyMTM1NjE3OTMwNzE2Nzc0NHx8aHR0cHM6Ly90d2l0dGVyLmNvbS8xMjIxMzU2MTc5MzA3MTY3NzQ0L3N0YXR1cy8xNTkxNTU5Njg2NjU0MTM2MzIwfA== ~~~

The rewards earned on this comment will go directly to the people( @anonymous02, @stemng ) sharing the post on Twitter as long as they are registered with @poshtoken. Sign up at https://hiveposh.com.

Interesante propuesta en Koinos. A diferencia del "Hive Power", donde el usuario que lo posea tiene la capacidad de realizar cualquier transacción - siempre que tenga hive power - en koinos, una dapp puede especificar quien es el "pagador" del mana para las transacciones que la misma dapp necesita emitir en la cadena. De esa manera, el desarrollador de una dapp, puede asegurarse que su mana se utilice solamente para que su dapp se ejecute (y no otras).

🍕 PIZZA !
@andrarchy! The Hive.Pizza team manually upvoted your post.

Send $PIZZA tips in Discord via tip.cc!

Congratulations @andrarchy! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s):

You received more than 50000 upvotes.
Your next target is to reach 55000 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out the last post from @hivebuzz:

CBRS Hive Infographic Contest - Get your badge and win 1000 HIVE
Our Hive Power Delegations to the October PUM Winners
Support the HiveBuzz project. Vote for our proposal!

Muy buena tu explicación, gracias.