4 ms·
Software doesn't favor decentralization at all... at least not the current software and Internet ecosystem. The complexity of software coupled with its absolut
by api 6y ago
Software doesn't favor decentralization at all... at least not the current software and Internet ecosystem.
The complexity of software coupled with its absolute rigidity makes it hard to build systems that talk to each other even when specifications are public. When things are proprietary take the difficulty of making software interoperable and add a total lack of documentation and a possibly adversarial relationship with the vendor where they'll try to deliberately shift things to keep you out. (There could also be legal barriers, but I'm just talking about technical ones.)
Then consider the added difficulty of opening systems to interoperability with other systems while maintaining security. If you allow connections from untrusted systems, now you have to be particularly meticulous in the design of your software to ensure there are no exploitable bugs, undefined behaviors, or holes in your permission system. We still mostly program in language that are "insecure by default" and make this hard.
Then there's the Internet itself which is intrinsically hierarchical. DNS, BGP, and the hierarchy enforced by NATs and firewalls that separate endpoints from the "real" Internet all make the network favor a "feudal" client-server model. We shouldn't be surprised that the Internet produces a lot of monopolies and closed silos; software built around the Internet takes on its shape.
Last but not least there's the use of cryptography to enforce walled gardens: certificates, code signature requirements, closed app stores, etc. This adds an artificial barrier on top of everything I mentioned above.
Compare this with older mechanical and analog systems. Even complex mechanical and analog electronic systems are straightforward to examine, measure, characterize, and understand. Ignoring patents and other legal restrictions it's straightforward to build replacement parts or interoperate with physical systems.