I did a deep-dive on the code and the only part of the architecture that is not currently decentralized is the plc-service, which resolves the DIDs with a custom method. You can literally run any other component yourself. Arguably this is the most important piece, so criticism is valid. But it's not clear how to decentralize governance of such a system while preserving the UX. Bitcoin 'gave up' on trying by just piggybacking off physics with PoW for consensus, which was not obviously going to work when it was created. I think perhaps the ultimate solution is just to use Bitcoin for the ID consensus with something like the did:btc or did:ion methods. The incentives to host decentralized infra without a token are not strong. Even nostr struggles with this currently. https://app.ilograph.com/@mikestaub/atprotocol%2520overview/Protocol%2520Overview/_walkthrough/1