start.1563334434.txt.gz · Last modified: 2019/07/16 23:33 by drirmbda | Draft Newest approved

This is an old revision of the document!


Welcome to the Independent SAFE Network Wiki

The SAFE Network project is vast and complex. While there are great resources available online for study, these resources still tend to be hard to locate and digest. The SAFE Network Forum contains many years-worth of great information but lacks concise and up-to-date summaries which would be convenient for newcomers to catch up.

The purpose of this wiki is to make the SAFE Network project more accessible. This is starting-out as a growing collection of personal notes of the editor trying to thoroughly understand the project, and is intended to evolve into an independent guide to SAFE Network.

All information here is unofficial. You are free to edit and contribute right here as you learn about MaidSafe and SAFE Network yourself. This Wiki fills gaps, referencing existing resources whenever possible. Opinions belong on the Safenet forum.

Before you can start editing your need to through automatic registration. This is needed to avoid spam. There are some rules to follow to keep this fun. The rules page also contains contact information, and legal notices.
Before reading this site you must accept that it is your responsibility to obtain expert judgment and advice before using any information from this site for your particular situation. You accept that you alone are responsible for any losses or damages resulting from using this website.
If you want to find out more about SAFE Network or start contributing, we want to be your guide. For specific topics look at the table on contents on the right. Otherwise pick a subsection based on the desired level of depth you are looking for.

=> Introduction - Start Here TOP

1.1 Basic Level 1.2 Intermediate Level 1.3 Expert Level

The SAFE Network forum also has a start here page which you may want to have a look at.

Wherever you read MDSF, expand it to Maidsafe in your mind, and SFNW to SAFE Network. Feel free to edit the wiki.

Getting up to speed

(a document called SafeNetForDummies is available on Google docs but I lost the link to it)

Contribution ideas

(Marketing, improving documentation, and performing testing?)

Getting up to speed

  • A write-up of September 2017 can be found here.
  • The Documentation topic of September 2017 summarizes many concepts here.

Reading this wiki may one day provide an accurate technical introduction but we are only at the beginning. If you are in the process of trying to go beyond the basic level feel free to share your notes on this wiki.

Contribution ideas

(Testing and validation of code and concepts)

  • Become an ambassador in your region! discussion and pointers. Recognition on the SafeNetwork forum for your work may earn you an official SAFE Ambassador title. See Appendix section People for a list of SAFE Ambassadors.
  • Develop a DAPP prototype. A strong DAPP and developer ecosystem will be important for adoption and through adoption for stronger security.

Getting up to speed

  • Read all papers and patents (Appendix E)
  • Read all RFCs
  • Read all Documentation and Code
RFCs

MaidSafe requests input through a public RFC (Request For Comment) process. RFCs are accessible here on GitHub.

The list of RFCs by status can be found in that repository here.

MAIDSafe has internal “pre-RFC” documents on certain topics, which means that the published RFCs provide an incomplete picture of the status of technology development.

Rust Core Libraries Documentation
SAFE Web App
API Documentation

Contribution Ideas

MaidSafe has an RFC process and discussion takes place on the MAID Safe Forum. (Summaries of the issues and resolutions could be added here for each.)

Unsolved questions (still?)

Discussions

(participate in discussion of RFCs)

List of all RFC discussions

Cutting through marketing and hype, we are interested in which of the many good things SAFE Network will do for it's users will matter most to you. Understand what SAFE Network is really about, and why it's worth the wait.

=> Goals of the SAFE Network TOP

In this section we will try to separate out and have a closer look at the mechanisms that will keep the SAFE Network working as intended. Each of these need to be checked for possible weaknesses that could lead to disastrous malicious attacks.

(work in progress - brainstorming phase. Note that it may not be meaningful to consider each of the items below prematurely, e.g. in the context of an alpha release.)

Data Integrity Guarantee

Node Integrity Guarantee

Protocol Integrity Guarantee

Data Availability Guarantee

Node Availability Guarantee

Data Confidentiality Guarantee

Node Anonymity Guarantee

User Anonymity Guarantee

User Identity and Access control Management IAM Security Guarantee

Access Console and App Security Guarantee

Unknowns due to lack of documentation

(this section is for listing potential gaps in documentation or changes since last review.)

(work in progress)

The following is based on a 2015 peer-reviewed paper. It may not reflect the current code, and the implementation at time of launch may differ from this too. However, it does provides a clear reference for discussion.

Distance in XOR space between entities plays a key role, see discussion elsewhere. Note that:

  • a client must be closest CM-Ps,
  • a data chunk must be closest to DH-Ps, DHM-Ps, and DM-Ps.
Maintaining Security of ClientManager vault Personas (CM-P)
  1. Four CM-Ps per Client
  2. Roles to be guaranteed (Primarily: maintain Client IP address anonymity)
    1. Identify 4 DM-Ps closest to a given key-value pair (data chunk)
    2. Forward request to the 4 DM-Ps
    3. Anonymize Client by protecting Client IP address information
Maintaining Security of DataManager vault Personas (DM-P)
  1. One DM-P per 4 DHM-Ps
  2. Roles to be guaranteed (Primary: data/DH-P availability (churn handling) andintegrity management)
    1. Validate request received from CM-Ps
      1. Check if CM-Ps are the nearest to the Client
    2. Select and maintain 4 random DH-Ps
    3. Determine nearest 4 DHM-Ps to each DH-P
    4. Maintain minimum level of data replication
Maintaining Security of DataHolderManager vault Personas (DHM-P)
  1. One DHM-P per DH-P
  2. Roles to be guaranteed (Primarily: monitoring DH-P availability and integrity, and maintain DH-P IP address anonymity)
    1. Validate requests received from DataManagers
    2. Observe their DH-P and report issues
      1. Maintain and check continued connectivity quickly
      2. Periodically perform PoR check of their DH-P
    3. Anonymize DH-P by protecting their IP address information
Maintaining Security of DataHolder vault Personas (DH-P)
  1. One DH-P per unique data chunk
  2. Roles to be guaranteed (Primarily: proof of resource)
    1. Validate requests received from DataHolderManagers
      1. Check if DHM-Ps are actually the nearest nodes to DH-P
      2. Confirm agreement among DHM-Ps about the request
    2. Store/retrieve key-value pairs (data chunk) as requested
    3. Provide Proof-of-Resource (PoR) to DataManagers (is this correct? or is it DataHolderManagers?)

(documentation of current and future plan would be nice)

Self-configuration process

SAFE Network will create a routed overlay network (OSI Layer 4) on top of an Internet of interconnected computing devices. All aspects from the overlay routing upwards should be de-centralized, consensus-based, and completely autonomous.

Self-Authentication

Self-Encryption

Maintaining the rules

Decentralized Consensus

All transactions or decisions are consented according to the rules of the network and recorded in a transaction ledger that acts as the ground truth to base future transactions on.

MaidSafe claims a world's first decentralized, asynchronous, Byzantine Fault Tolerant consensus mechanism that works in permission-less networks and that is open source.

PARSEC GitHub parsec repo

Incentive system to provide storage space

Open Items
Open Items
  • How to tweak and maintain code?
  • How to reboot SAFE Network to fix issues requiring it without losing data?
  • Decentralized Applications
One special mechanism regulating the network involves SafeCoin, a medium of exchange within the network, but with a reach well beyond it. This section is intended to consider this from an Economist's viewpoint.

SAFE Network will have a native cryptocurrency called SafeCoin, providing incentives to people to support the network with resources and applications, and charging network users for certain kinds of usage.

To raise funding for the project a token called MAID was created. MAID will be exchanged for SafeCoin at the launch of the SAFE Network.

(MAID creation to fund development)

(scenarios impacting the value of MAID at conversion to SafeCoin)

At this time it is expected that one MAID token will be exchanged for son SafeCoin.

Source: this, Project-Safe whitepaper April 2014(outdated??)

  • Pre-launch supply (MAID): 452 M (452,552,412 units)
  • Investor allocation: 226 M
  • Maximum supply: 678 M

5% of total supply [of 678M??] goes to early investor/family

5% of total supply [of 678M??] goes to dev team

(money supply, economic output, inflation)

  • SafeCoin will be almost infinitely divisible

5.3.1 SafeCoin supply

(following needs confirmation.) 4/2017, authoritative April 2017

  • Pre-launch supply (MAID): 452 M (452,552,412 units) - slightly* over 10% (10.5%) of total supply, available at day 1
  • Early investor allocation: 215 M - (about?) 5% of total supply available at day 1
  • Maximum supply: 4.3B (4,294,967,295; 2^32-1)

*) Slighyly more by a few million due to error at MAID sale. @neo

5.3.2 SafeCoin creation

(following needs confirmation.)

4/2017, authoritative April 2017,@neo

SafeCoin goes to

  • Farmers - Depending on supply of available but unused storage; the (instantaneous) farming rate.
  • Network maintenance - Every GET on average pays core devs 5% of farming rate
  • App developers - Every GET due to an App pays 10% of farming rate
  • PtP (Pay the Provider - under discussion) - Every GET for specific data could pay 10% of farming rate

Farming rate is explained in RFC-0012.

5.3.3 SafeCoin destruction

@polpolrene

SafeCoins are destroyed/consumed by the network at:

  • Account creation (address/ID)
  • Domain name purchase
  • PUT of data (immutable data will be much less expensive than mutable data)

What determines the exchange value of SafeCoin

Since SAFE Coin will regulate availability of (secure and perpetual decentralized) storage, it may be expected to be as stable as that commodity. However, speculation and application for predominantly other uses might change the situation significantly.

Dealing with MAID and SAFE Network tokens is much more complicated than dealing with cash. This should be a guide to make things easier.

=> Crypto Charts Page

MAID is a token that exists in the OMNI layer on the Bitcoin Blockchain.

SafeCoin will be the native medium of exchange within SAFE Network, and is supposed to replace MAID at the time of launch of the network.

Warning: SafeCoin is NOT this.

As a general rule, do not leave large amount of MAID (or any other coins) on an exchange.

  • HitBTC: MAID/BTC, MAID/ETH, MAID/USDT. Consider the high level of complaints on social media about losing access to funds. MaidSafe does seem to have some leverage over HitBTC and could help get issues resolved.

MAIDSafe decided to remove MAID from Bitker in July 2019.

Storing large amounts on exchanges is not a good idea. However, before you create a paper BTC wallet and send MAID to it, read through the steps needed to send the MAID back from the paper wallet to an exchange and decide if is worth the trouble and the risks of making mistakes and of reduced liquidity.

Feb 2018 post

(what do you need to join.)

(how to start using apps.)

(how to start app software development)

(this will be the area of the tinkerers. How-to's, experiments, etc.)

Community SAFE Network
XOR Distance

A useful XOR distance calculator on the web. This is an example implementation in JS.