@noisy asked a good question in Slack that I wanted to post to the forum as I don’t think we’ve ever compared Blockstack to Steem in terms of enabling Apps, and thought the topic deserved a longer explanation and some discussion. Reproducing his original question below:
Here are my initial thoughts on this one (I haven’t build a steem app though)
Authentication for apps:
- Steemit: Using the user’s private key or OAuth2 (this means app developers have to register with a centralized service to get access to the user data/profile/api permissions). Apps asking for the same permissions can do the same things to the user’s data.
- Blockstack: Using derived crypto keys from the user’s key, this means app developers do have to tell the key derivation app their identity by public announcement. This creates a new user space for each app. Collections in Blockstack could compare to the permission tokens for data in steemit.
- Steemit: Apps have access to the blockchain and can change the state. This is the main purpose of using Steem: voting, posting, following
- Blockstack: Most apps have no write access to the blockchain. The main purpose of the blockchain is to secure the user’s name/blockstack id, buying, renewing names
- Steemit: Apps have access to a caching layer for images (files?), still app developers need to find an (app-specific) storage provider
- Blockstack: Apps have access to an app-specific storage provider that is maintained and controlled by the user
In summary, the use of blockchains is very different (public content vs names), and the APIs provided to developers as well (blockchain apis vs general app apis). Steem is about creating and evaluating public content, Blockstack about user-owned identity and user-owned (public or private) data.