It’s very impressive just how long you — and your entire team — have persevered. I learned of MaisSAFE back in 2012 when researching distributed networks. And around 2016 I really got into learning about its design.
I really like a lot about it — and I wish there was a way to add a bit more flexibility into the consensus algorithm and make it pluggable. Over the years, there are only two things I wish to change with SAFENework, and they are easily enabled:
Non-divisible coins. This is a minor point. MaidSAFE was brilliant for treating safecoins as files, and it would just need denominations and so on, to allow arbitrary balances to be transferred. But even without that, MaidSAFE could be THE platform for NFTs (non fungible tokens, the next big craze) as they are non divisible so they are perfect for hosting on MaidSAFE if it was launched now. Instead many will be launched on Ethereum and other blockchains which are totally overkill for NFTs.
This is the big one. Ability to have a different consensus model. I think both I and Vitalik Buterin have expressed concerns over the years that a section should be able to recover from a consensus failure. There are ways to do consensus in much more robust ways, and eventually recover from attacks on even 99% of the nodes.
Nodes that have provably signed conflicting or nonsensical messages would be placed on a blacklist gossipped by all honest nodes, and after some churn, the blacklist could be discarded so it doesn’t grow indefinitely. Periodically, there could be network-wide consensus about one random scalar value, which could help do checkpointing (after which a blacklist wojld be discarded).
Anyway, there are other reasons for a pluggable consensus. A major one is ability to do reliable smart contracts and code that runs as “stored procedures” on this wonderfully secure network. However, for this to happen, the vaules need to be able to execute code and roll back transactions on a certain command, rather than execute anything that was signed by one of the “owners” of the resource. Right now the owners are a trusted party for the purposes of business logic, but in 2021 we want smart contracts, not trusted parties, and it’s a shame if MaidSAFE falls short in that department.
These expansions could all be possible with one small tweak: making the consensus algorithm pluggable. Allow vaults to run virtual machine code (and perhaps charge for it, but a section running code would be nowhere near the cost of the entire network doing it) and one of the opcodes would be to rollback. Realistically, the EVM is the most popular compilation target, but if you want you can even make the virtual machine opcodes pluggable and only care about implementing rollbacks.
If you do ever implement support for smart contract code at the vault level, to allow them to execute the code and process a rollback — then I can get the Intercoin and Qbix projects to work on top of SAFE as a backend and take advantage of ALL the rest of the features. It would save us a huge amount of work and extend your network by tens of thousands of machines.
Please see these three links:
About Qbix being able to deploy tens of thousands of nodes, we were the first to try to put mining in our apps as a way to pay for them. We are not super proud of this news story three years ago (which broke while I was on a cruise) but it did get into all the major tech publications and even BBC and Newsweek due to how many users we have:
Since then we have even more nodes we could deploy to run MaidSAFE with consentual opt-in agreemenrs with our users. But we would need to achieve our business objectives, which are listed here:
Frankly, if you made MaidSAFE support the EVM, then not only we but most of the DeFi world would take a serious look at MaidSAFE as an infrastructure for executing smart contracts. Today they think of silly financial games, like flash loans and yield farming, but we could do voting, governance, roles, permissions, community currencies, universal basic income, and autonomous smart contracts manipulating entire datasets. Something to think about for an autonomous network!