This is a brainstorm ONLY and goes into Sci-fi territory. So please don’t take it too seriously and enjoy the thought process.
LAW 1. The nodes “must” cooperate to reach group consensus.
Achieving Group Consensus
This requires all the nodes in that (group) to use the same terminology. The problem is lack of understanding when the group receives a new term… see below.
Example “GET_watermark”
All 32 nodes understand what “GET” means. But the request comes in as “GET_watermark.” How do the nodes reach consensus with an unfamiliar term?
- If all 32 nodes do not know what “GET_watermark” means… They would ignore/reject the request because it is not part of the protocol.
- If 1 node understands what “GET_watermark” means, the rest would ignore/reject that node because it’s acting “funny.” Or they would deny the request by default.
Theoretical Solution to Problem #1
Could the nodes autonomously lookup “GET_watermark” from the official public source on SAFE? If they can, then 28/32 consensus is possible once they learn what “GET_watermark” means.
Some vault (owners) will refuse to support the new function…“GET_watermark.”
This is a valid point of contention, and the reason for LAW 1. Some people will try to influence the Network, which restricts the ability to try new things.
In order for this to work, all vaults must “accept” new functions from the official public source. This leads to the next problem. How do we safely manage new code coming into the official public source?
LAW 2. No implementation difference can willingly or by accident cause a noticeable disruption to the network (under conditions).
Theorectical Solution to Problem #2
This is the hardest problem to solve because we don’t know what to expect in the future. At the same time, we want the Network open to ALL developers, not just a select few elites in charge.
AFAIK, the SAFE Network is incapable of autonomously enforcing LAW 2 effectively. This means humans have to manage it for the time being, until it learns to make it’s own determinations.
When a developer submits code to the official public source, it goes through a process called “Pending Review.”
Based on a series of “events” to be determined. The new code is either accepted or rejected by whomever: MaidSafe, Dev Pods, Maintainer Federate, Farmers, Archive Nodes. Hopefully, they abide by the principles of privacy, security, freedom… while encouraging innovation.
If accepted, the new code becomes available for vaults to look up.
If rejected, the code goes to SAFE’s knowledge database… see below.
Hackers are invited to attack the Network, and hopefully strengthen its “immune” system.
SAFE’s Knowledge Database (Learning Matrix)
The process above builds a knowledge database to teach the SAFE Network to how to distinguish the difference between “malicious” and “benign” code. And some day in the future, it can autonomously approve/reject by checking it against its own database.
Yes, Skynet/Ultron will be become a reality on that day… RUN FOR YOUR LIVES!
Hopefully, humans teach it to be good instead of evil. Given our own nature, it’s really a coin toss…