How Anyone can Build Custom Apps on Steem right Now!
What if it were possible to build custom applications on top of Steem? If you think Steem is only here to serve the niche of social media, then I consider this you wakeup call. The Steem blockchain is already capable of supporting every kind of blockchain application you can conceive. Best of all, you don’t need anyone’s permission to start building your app today!
Think of your favorite blockchain application. Is it Auger with is prediction markets? Is it The DAO? Is it general purpose smart contracts? Is it Dash with its privacy features? Is it decentralized voting or DNS? All of these things are possible on Steem today and you don’t need Steemit’s permission to do it.
Subchains not Sidechains
Sidechains have been the go-to solution for adding features to the Bitcoin protocol. The general concept is that the Bitcoin blockchain doesn’t need to know what happens on the side-chain so long as it can verify transfers into and out of the side chain.
Implementing side chains is challenging. It requires synchronizing two independent, potentially forking, eventually consistent blockchains. An issue on either chain can greatly disrupt the whole system.
A subchain is a new description for an old idea. Mastercoin and CounterParty are what I would consider subchains. All of their data is included on the Bitcoin blockchain. If Bitcoin forks, then the subchain follows.
In other words, a subchain is just a secondary interpretation of data on the main chain. Historically subchains haven’t been practical because they are necessarily slower than the chain they run on. Bitcoin makes it very expensive to include data and every subchain operation requires Bitcoin fees to be paid.
Power of Steem Subchains
On Steem everything is different. There are no transaction fees and it is trivial to include arbitrary data on the blockchain. Here are some of the key benefits to subchains on Steem.
- Advanced Account Structures
- Pre-validated Account Authorities on Custom Operations
- No Transaction Fees
- Fast Block Times
- TaPoS (Transactions as Proof of Stake)
What this means is that it is trivial to write custom applications as fully independent subchains. These applications don’t need to worry about the complexities of network infrastructure nor do they even require access to money.
The advanced account structures means you can have multi-sig authority involving dozens of independent agents deterministically evaluating the custom operations on the Steem blockchains. These agents can then deterministically generate and sign transactions for processing withdraws from the subchain. The fast block times means that subchains don’t have to wait long for confirmation before they can reliably create and sign transactions. The TaPoS feature ensures that transactions are only valid on a specific fork for a very short period of time.
Smart Contracts
It is fully possible to deploy an Ethereum Virtual Machine as a subchain on Steem. This Subchain could leverage the same algorithm Steem uses to ration bandwidth in order to ration computation.
Perhaps more interesting is the fact that multiple types and instances of virtual machines can be run on the Steem network at the same time.
Conclusion
Everything you think you like about other blockchain platforms can be implemented as a Steem Subchain. These subchains would almost certainly be faster, easier to use, and cheaper than anything else out there. Critically, these subchains would have easy access to the vast and growing user base of Steem.
What could be better?
Lol I made a joke on this pic about Steem Power but can't get it to show up on my post :/
https://imgflip.com/i/1794tq
Is there an example or link on how to get started on developing a Steem sub-chain based application?
@k-rapper have you found any link to start with?
Does this help? https://steemit.com/steemit/@artakan/how-to-build-your-own-steemit-com-website
How does steem solve this?
3 second blocktimes and irreversible blocks after 30 seconds. This is compared to 15 second+ block times and irreversibility requiring orders of magnitude longer on other chains.
A subchain cannot "act" until its inputs from the "main chain" are irreversible. Thus time-until-irreversible is what matters most. In Bitcoin this is considered 6 blocks and can take hours.
Thanks. Was using the Bitcoin yardstick where time required is unacceptable.
Not sure if this is what he means, but don't some subchains work by storing reference pointers to off-chain data? Maybe he means that here all the data is readily available on chain, and so faster.
Yes but off chain reference depends on ratification by a irreversible block.
You must be referring to Counterparty in particular here? A subchain is only as fast as tge parent chain; hence, Counterparty could only use BTC's 10-minute block time. Here, I assume a subchain could go as fast as 3 second block times because Steem is so fast.
This is very exciting!
I have a few STEEM related URLs and some ideas of what I want to do with them. Maybe some of us can work together to create some cool Custom Apps!
So much potential! Let's make things happen!
are you a developer already ?
I am, but not really up to speed with what I think I'll need for steem blockchain apps. My knowledge is mainly jQuery, VB.net, MS SQL Server
Dan, great post, btw I just did some of the market research you requested: https://steemit.com/steem/@trogdor/steem-vs-everything-a-response-to-dan-s-request-for-market-data
Hopefully that is what you were looking for. If there was something else, let me know.
cool
Exciting stuff :D
I'm ready to see stuff like slock.it come to Steem!
#toosoon :P
For anybody who finds this and sifts through the comments for fun: I wrote an article about this concept. https://steemit.com/steem/@biophil/mist-a-meta-model-for-steem-subchains
ok why dan left for eos exactly i'm confused
Well, he obviously wanted to make EOS, so there's that.
Also, there was internecine conflict.
There is also the dismal reality of oligarchical concentration of Steem into the wallets of the accounts with the most stake. Steemit has the worst GINI of any nation on Earth, and the distribution is more skewed by the day.
While the white paper envisioned ~30% of rewards being distributed to the 'masses', less than 1% of stake is held by 99% of accounts, and, as I said, it's getting worse by the day.
@dan stated that it was broken, but lotsa folks profiting from the present arrangement don't want it fixed.
I guess these are good reasons. He didn't tell me though. I'm guessing.
Would it be possible to create games within Steem, hopefully games that can't be botted, and for your score and time you put into them, you would get another token as reward which within steem market would be tradable and users could buy it for special powers or other stuff that has with the game to do?
I'm just thinking sort of like candy crush, slither, etc. Except that it would reward you this new currency which can be traded for steem and other currencies. Would you need another blockchain for it or would it work within the existing one without disrupting it?
Yes. But the challenges of anti-bit and Sybil remain.
Yes, I understood some of those words. :P
not even google could help me out with what anti-bit and sybil do.
For Sybil, I think @dantheman is referring to a Sybil attack, which is an attack wherein a reputation system is subverted by forging identities in peer-to-peer networks. Sybil is the name of a book where the woman had multiple personalities.
Can't help you out on anti-bit. That's a new one for me.
Sybil can easily be maintained by giving accounts that verify themselves more rewards. Like they are doing now, sort of. The unverified accounts will automarically have less reputation power since they won't be verified and others will see this.