48 ms·
Disclaimer: I work for blockstack.org, a company trying to build out the decentralized Web. I mostly agree with this line of reasoning. Users don't care about
by jude- 10y ago
Disclaimer: I work for blockstack.org, a company trying to build out the decentralized Web.
I mostly agree with this line of reasoning. Users don't care about decentralization, and for developers it's much easier and more lucrative to build a centrally-hosted version of X than a fully-decentralized version of X (for most values of X). Things aren't going to change until the decentralized Web not only needs a killer feature that cannot be had on the Web today, but also needs to preserve backwards-compatibility with the Web while being at least as good in what it can offer.
That said, instead of trying to re-educate users (which would be extremely costly and probably take generations), what if we simply made it so that decentralized applications that otherwise looked like normal Web applications were significantly less expensive to write and operate for developers? If we gave each user a client-side private key paired with globally-unique user-chosen name, then we could refactor most Web applications such that they stored their users' data (signed and encrypted) on the users' personal cloud storage providers (or whatever storage media the user desired). This is great for developers, since they no longer have to host the data themselves or defend it from hackers. This also simplifies a lot of application designs somewhat, since there no longer needs to be a backend in many cases. The user wouldn't even notice the transition, since (1) cloud storage is already pretty much free, and (2) cloud storage is also reasonably performant and highly available (and nothing stops the user from mirroring data across multiple providers). There would need to be some work on the Web browser for automatically managing keys and personas, but this is certainly doable.
I'm not a game theorist, but I think each participants' incentives are appropriately aligned to make this work:
* Cloud storage providers have to compete on space and availability and are incentivized to give users the best cost/performance trade-offs.
* Users are incentivized to keep their data available for as long as they want other users can get at it (and they can take it offline the minute they don't).
* Developers are incentivized to target this development model because it lets them externalize a non-trivial portion of their operating costs without affecting performance or features.
* This design is incrementally deployable--an app can still have some centralized components (like a search index) and we get to re-use as much existing infrastructure as we'd like.
Would love to hear your (or others') thoughts.