I need help gathering info. I’m creating a somewhat crude graphic (among other things) of how SAFE works and I need a few details to complete it.
These are the sections I’m working on. Any new sections are welcomed.
=======================================
–LAUNCHER–
The launcher is a software module (installed on any compatible computing device) that sits between the client and the network (or is it the client). Its basic purpose is to package the information provided by the client into something the network can understand.
Authentication:
To store private data on the network, an account must be created. Upon creation, only your files are encrypted with your username and password. Your keys are never stored on the network or your machine. They don’t even get sent to the network. This avoids theft.
When you desire to access your files or personal apps, the network uses your username and password to find a map of your files. Once found your client uses your key to decrypt them the moment they get to your machine.
Network drive:
Users with accounts will be provided a personal network drive that will allow them to store as much data as they can afford via safecoin. This drive is similar in functionality to other cloud storage services. The key differences are that your data is encrypted by a key only you have, your data is spread throughout the world with no companies in control of it, you only pay for it once and it will remain in the network for as long as you want.
======================================
–CLIENT–
The client is a software module (installed on any compatible computing device) that sits between the user, the vault, and the launcher. A hub if you will. It communicates with the network via the launcher, monitors and controls a users’ vaults, and receives input from the user to send/retrieve resources on the network.
I think I have the launcher and client roles reversed. Do I?
Ease of app development:
The launcher has been designed to simplify app development by handling…???
======================================
–VAULTS–
Data vaults are devoted portions of a users hard drive that store chunks of encrypted data uploaded to the network. Vaults also allow for anyone with free hard drive space to earn safecoin by providing that unused space to the network.
Data redundancy:
Data is self encrypted before upload and split into 1MB chunks. Each chunk is again self encrypted and stored with a minimum of 4 redundant pieces spread throughout the network.
Farming:
Whenever a user accesses a chunk stored on your node, you are rewarded with safecoin.
Reputation system:
The reputation of your vault depends on the stability of your vault. Your reputation is reset the moment it goes offline and all of the data it stores becomes invalid unless a massive outage occurs. Fortunately, a decent reputation is quickly regained.
========================================
–E-MAIL/MESSAGING–
How is this expected to work?
========================================
–SAFECOIN–
Safecoin is a digital coin that is created and protected by the SAFE Network and stays on the SAFE Network. Safecoins will only come into existence once the network is launched. Wallets will actually ask the network what their balance is. The network maintains only current owner ID and previous owner ID. The value of safecoin is based on the amount of storage space available on the network. More space means less value/cost.
More info here: https://safenetwork.wiki/en/FAQ#What_is_safecoin.3F
======================================
–DATA MANAGER–
Data managers are deterministically chosen remote vault groups responsible for handling data requests. They ensure that data is routed properly throughout the network by verifying the flow of data from node to node.
=======================================
–SELF ENCRYPTION–
Self encryption is the process by which data is encrypted using its own hash and user credentials as entropy. Files that are split use the hash of it counter parts to further layer the encryption.
Is this accurate?
================================
–CLOSE GROUP–
The close group quorum is a set of nodes that must reach a 28/32 consensus before safecoin can be transferred to another owner.
Any other responsibilities/functions?
================================
–TRANSACTION MANAGERS–
Transaction managers verify and assign ownership of the cash like currency called Safecoin. No block-chain is used. Instead these managers keep track of the previous and current owner of a safecoin.
Did I get this right?
================================
–SOLVED ATTACKS–
Birthday paradox/Sybil Attacks:
In this attack, an attacker floods the network with Vaults it controls, to surround a single Vault with a majority or more malicious Vaults in order to exert control over that Vault.
The SAFE Network requires all requests be processed by at least two groups of Vaults. The Client passes a request to it’s Data Managers, who verify the request based on the Client’s signature. The request is then passed to a deterministically selected group of other Vaults which also verify the request based on its signature. By deterministically selecting the second group of Data Managers, this attack no longer holds true for the SAFE Network, since it is not possible for the attacker to gain control over a Vault by simply surrounding it.
To circumvent this, the attacker would require the ability to surround specific Vaults in the SAFE Network. This cannot be achieved, as it would require being able to effectively generate different values which, when hashed with SHA-512, result in close hashes around one particular point.
More here: https://safenetwork.wiki/en/FAQ#Attacks_on_the_SAFE_Network
Can anyone elaborate or simplify?
ISP attack:
In this attack an ISP creates a simulated or fake network. In this case the Client or Vault will not be able to connect to the bootstrap Vaults listed in the cache file. This file contains the IP port and public key of bootstrap Vaults. Without the public key of any bootstrap Vaults, the connect request will fail. The SAFE Network Client then detects this is not a valid network.
Alternately. An ISP’s machine pretends to be the user’s machine and asks for the bootstrap information on the users behalf. The ISP could request the information and pass it back to the user. That information is encrypted to the user, so an ISP cannot really access it (unless they can break RSA 4096). If the closest Vaults are fake they will not be able to process the connect request, which is encrypted to each end. So again this attack fails.
This attack is only applicable for SAFE Network Clients that have not yet logged in. On receipt of the login packet, the SAFE Client encrypts a close Vault request to the bootstrap Vault. Again this is returned encrypted, so the attack is circumvented.
Denial of service:
Denial of service attacks are circumvented by the lack of DNS. Can someone further expound on this for those used to a DNS networking model.
What other protection does this afford the network?
What are the anonymity implications?
================================
–XOR USE IN THE NETWORK–
What part of the network determines a nodes XOR id and what keeps an attacker from associating the IP with the XOR id?
What scrubs the IP after the first hop? Data managers?
How is routing handled after the IP is scrubbed?
Can someone list and detail all of the uses of XOR in SAFE?
================================
–PATENTS–
Several defensive patents were received by CEO and co-founder David Irvine. These were subsequently transferred to a non profit humanitarian organization. This ensures that others cannot abuse the systems developed by maidsafe in an attempt to hinder communicative freedom provided by the technologies employed in networks Like SAFE and any future forks.
================================
Please help by responding to each point separately so that I can easily organize this information. This is not just about how Freenet compares to SAFE but the ease of technical orientation for newcomers. A succinct overview to wet the palate and encourage further exploration. Help me out guys.
@nicklambert, @19eddyjohn75, @Ross, @happybeing, @jreighley, @BenMS, @frabrunelle, @anon86652309, @janitor, @zankfrappa, @smacz, @4M8B, @atleticofa, @jm5, @riddim, @fergish, @betterthantrav
And anyone else I can’t remember at the moment. Sorry to call you guys out like this, but I really think this can be helpful. An all in one overview of the safe protocol. I am shooting for two versions. A very simplified and a moderately technical one. Both will point at each other and to the wiki.