- 1 Getting started
- 2 General
- 3 Data storage
- 4 Apps
- 5 Safecoin
- 5.1 What is safecoin?
- 5.2 How can I buy safecoins?
- 5.3 How does SAFE Network prevent double-spends of safecoin?
- 5.4 What's the use of safecoin in the SAFE Network?
- 5.5 Will it be possible to trade safecoins at other exchanges?
- 5.6 Where do I store MaidSafeCoins?
- 5.7 How are safecoins distributed?
- 5.8 How will MaidSafeCoin be converted to safecoin?
- 5.9 What gives safecoin value?
- 5.10 How is safecoin valued?
- 6 Farming
- 7 Attacks on the SAFE Network
- 8 Comparison to other technologies
- 9 Technical
- 10 API
- 11 Miscellaneous
When will I be able to start using the SAFE Network?
The SAFE Network alpha 1 is now available for immediate use on Windows, Mac and Linux!
You will need to install both the Launcher and Demo App to be able to store private data, publish public data, create your own SAFE webpage and public identity, and even host an existing website without charge!
This alpha is currently a Client only network, users cannot run Vaults (contribute their resources), and all data will be hosted on a network managed by MaidSafe. The ability for users to run their own Vaults is currently in testing. A more detailed list of limitations is available here.
The SAFE Network is under active development and new features are being added every few weeks. Click here to see the list of active RFCs.
Here are the main phases of the impending and iterative release process:
- Alpha – the core network and fundamental functionality is provided via an initial implementation, this is the first public testing phase.
- Beta – alpha implementations are reiterated and improved, based on user feedback.
- Release candidate – the fundamental feature set is stabilised to provide greater security, resilience and efficiency.
- Release – privacy, security, freedom!
The best way to follow the progress is to read the MaidSafe Dev Updates, which are published on a weekly basis (on Thursdays) in the development updates category of the SAFE Network Forum. For less frequent updates, you can subscribe to MaidSafe's blog. And if you're on Twitter, we recommend following @maidsafe and @safenetforum.
What is the difference between the SAFE Network and MaidSafe?
The SAFE Network is a technology and MaidSafe is a company.
- SAFE Network
- an open source, decentralized data storage and communication platform.
- a company based in Troon, Scotland. They have been working on designing and implementing the SAFE Network since 2006. The developers at MaidSafe are currently the main contributors to the source code of the SAFE Network libraries.
What is the SAFE Network?
The SAFE (Secure Access For Everyone) Network is a new secure way to access apps that put the security of your data above all else. Downloading the free SAFE software will provide access to: messaging, apps, email, social networks, data storage, video conferencing, and much more.
Rather than using data centers and servers which are prone to data theft and surveillance, as is common on today's Internet, the SAFE Network uses advanced peer-to-peer technology that joins together the spare computing capacity of all SAFE users, creating a global network.
The SAFE Network is made up of the unused hard drive space, processing power and data connection of its users. It offers a level of security and privacy not currently available on the existing Internet and turns the tables on companies, putting users in control of their data, rather than trusting it to organizations.
By providing your unused computing resources to SAFE, you will be paid in a network token called safecoin.
To learn more about the SAFE Network, we recommend that you start by reading the following sections of SAFE Network Wiki:
You might also be interested in listening to SAFE Network School, a series of podcasts that covers in depth the content of those sections.
What is MaidSafe?
MaidSafe is a company based in Troon, Scotland. They have been working on designing and implementing the SAFE Network since 2006. MaidSafe initially raised $5 million USD in investments from local individuals, friends and family to make the SAFE Network a reality.
In April 2014, MaidSafe announced a 30 day crowdsale for safecoin, the underlying cryptocurrency of the SAFE Network. The goal of the crowdsale was to raise $7 million USD by pre-selling 429,496,729 safecoins (this represents 10% of all the safecoins that can ever be produced) via an intermediary coin called MaidSafeCoin. Although the crowdsale didn't go as planned, MaidSafe is still in a good position to deliver a feature complete network. It's worth noting that the network will be released in iterations as opposed to a single launch event.
Here are some resources to learn more about MaidSafe:
- MaidSafe's company page
- What are the founding principles of MaidSafe?
- The Story and Vision of MaidSafe
- MaidSafe - The Story So Far...
Why the name MaidSafe?
It’s an acronym: Massive Array of Internet Disks, Secure Access For Everyone.
Why should I use the SAFE Network?
Applications and programs on the existing Internet sell your privacy through advertising and effectively control your data, granting you access when you login. On the SAFE Network, only you control who has access to your data and the distributed security features make your data safer than ever before. If you contribute some of your spare computing resource to the network you are also compensated for doing so with the built-in token, safecoin.
Who owns the SAFE Network?
No one. The network is open source and MaidSafe set out to create a resource that can be used by everyone to spread all human knowledge and to facilitate sharing between everyone on the planet, regardless of your country of residence, culture, or economic background.
MaidSafe is encouraging developers around the world to start independent development pods (called SAFE Pods) to decentralize the knowledge and development of the underlying code.
How much will it cost to store data?
The amount of safecoin it will cost to store data will depend upon how much resource is available to the network and how much demand there is to store data. Unfortunately, the cost cannot be predicted prior to SAFE's launch and will change in line with supply and demand after launch.
As SAFE does not have many of the overheads and costs of existing services, like Dropbox, it is anticipated that storage will be significantly cheaper than using any current solutions. It is important to note that when storage is bought, it will last forever and is not just provided on an annual basis.
Do I store other people's data on my machine?
SAFE is a network made up of the spare computing resources of its users. It can be thought of as a crowd-sourced Internet. When you contribute to the network, you allow it to store encrypted pieces (not complete files) of other people's files onto your computer. As you turn your computer off all network data is removed from your machine and will start to fill up again when you turn it back on.
Is there such a thing as SAFE websites?
Yes, and it will be possible to view many of them without creating a free SAFE account!
See this link for more info on how to configure your operating system (Windows 10, Windows 7, OS X, Ubuntu, etc.) to use the safe_proxy.pac file.
The safe_proxy.pac file will redirect requests with the
.safenet TLD to a local HTTP proxy handled by your SAFE Launcher application.
We are also working on building a SAFE Browser. See this topic for more info.
How is data stored and retrieved?
Files uploaded to the network are broken into pieces, encrypted and distributed across the network. This process is called Self-Encryption.
When a user uploads (or saves) a ﬁle to the network, via one of the SAFE Network apps, the file is automatically broken up into chunks. These chunks are then encrypted (encoded so that only authorised parties can read it), randomised and stored on the computers of other SAFE Network users. These encrypted chunks are completely unreadable and inaccessible to anyone other than the owner.
Once a ﬁle is uploaded, other users who upload the same ﬁle will be automatically referred to the original, limiting the number of copies and reducing the computing resources needed to store it.
The network is programmed to keep duplicate copies of each piece of data at all times. As users turn their computers off, the network makes more copies and stores them on other machines, ensuring that users always have access to their files.
This constant movement of data (called churn) is a key part of the security that the SAFE Network offers because there is no central point for hackers to target as the data locations keep changing.
Example: A User uploads a 10 MB file. The file is split into 10 chunks (1 MB each) and made into 4 copies. This means there are 40 chunks spread out to 40 Vaults. When the User requests that file, they call on 40 Vaults. But only the fastest of each (4 Vaults per 1 MB chunk) are used to complete the retrieval. The speed at which the User can retrieve their completed file is limited by the fastest copy of the slowest 1 MB chunk arriving at their location.
Instead of a whole 10 MB file being called from only 4 Vaults... you call 40 (1 MB) chunks from 40 Vaults. This makes a BIG difference in retrieval speed.
Also, the feature called Opportunistic Caching automatically creates more copies of popular data closer to where it is being requested, so popular websites and other data feeds will actually speed up as they get more visitors, rather than slow down and crash as they do on today’s web.
What is the SAFE Launcher?
The SAFE Launcher is an application that enables users to create their SAFE account and log into other applications on the SAFE Network without passing your login credentials (pin, username and password) to anyone else. It can be thought of as the single point of contact with the network and keeps you in control of your data at all times.
For more information, see [this website](https://maidsafe.readme.io/).
What is safecoin?
Safecoin is a coin that is generated and protected by the SAFE Network and stays on the SAFE Network. (It of course can be copied as it is data, but off-network copies are of no value as a coin.) Wallets will actually ask the network what their balance is and allow transactions to happen. The network can confirm and exchange coin ownership via a digitally signed authority from the coins last owner. This operation is "network atomic" which basically means the network will make sure all copies update to show the transaction. This is a different approach to the "blockchain" mechanism employed by Bitcoin.
The SAFE Network allows many millions of transactions per second and the larger the network the more transactions per second can be executed. A safecoin only holds the last and current owner. It does this to make sure the current owner has signed authority from the last owner to take ownership. This allows coins to be transferred between people very easily and without delay. Safecoins use a proof of resource to create coins and this is a system that is waste free, so the proof is that a node or application is providing immediate value to society.
How can I buy safecoins?
Safecoins will only come into existence once the network is launched.
However, it is currently possible to buy MaidSafeCoins, a proxy coin that uses the Omni protocol. MaidSafeCoins will be exchanged 1:1 to safecoins once the SAFE Network goes live.
The initial way to obtain MaidSafeCoins was to buy them during the crowdsale organized by MaidSafe in April 2014. Now, the current way to obtain MaidSafeCoins is to purchase them on an exchange:
A SAFE Network community member has created a tutorial on how to buy and store MaidSafeCoins from Poloniex.
To see the tutorial on buying MaidSafeCoins with bitcoins on Poloniex:
To see the tutorial on buying MaidSafeCoins with bitcoins and many altcoins on ShapeShift.io:
To see the tutorial on safely storing OMNI tokens:
How does SAFE Network prevent double-spends of safecoin?
Each safecoin has its own unique ID. The network maintains only the following information relating to an individual safecoin:
---------------------- current owner ID ---------------------- previous owner ID ---------------------- signature of previous owner
Only the current owner of the coin can transfer ownership of that coin by cryptographic signature. For illustration purposes, when Alice pays a coin to Bob via the Client, she submits a payment request. The Transaction Managers (the close group of Vault persona responsible for the managing of coin transactions) check that Alice is the current owner of the coin by retrieving her public key and confirming that the transfer request has been signed by the correct and corresponding private key. The Transaction Managers will only accept a signed message from the existing owner. This proves beyond doubt that Alice is the owner of the coin and the ownership of that specific coin is then transferred to Bob.
This process is sometimes called “network atomic” in that the transfer is done at the level of each individual safecoin, though to a User the process of transferring a number of safecoins will appear to be a single transaction.
What's the use of safecoin in the SAFE Network?
Safecoin is the currency of the SAFE Network and is a mechanism to incentivise and reward End Users and developers, as well as provide access to network services. Participants who provide their unused computing resources to the network, called Farmers, are rewarded in safecoin, while application developers, called Builders, earn safecoin in proportion to how much their applications are used. Core Developers who improve the core SAFE Network code base can also earn safecoin by providing bug fixes and new features. In the case of Farmers and Builders, safecoins are generated and distributed entirely by the network, without any human involvement.
Safecoin can only reside within the SAFE Network and will be stored in a User's wallet and used in exchange for network services, such as increased storage space and access to network applications. There is no set distribution time for the 4.3 billion safecoins produced during the life of the SAFE Network.
Unlike many currencies, the distribution of safecoin is backed by information and the amount of coins generated by the SAFE Network is directly related to the use of the network. Safecoin is required to access certain services provided by the SAFE Network itself. For instance, it is necessary to pay in safecoin for the ability to store data on the network.
Will it be possible to trade safecoins at other exchanges?
Yes, there will be exchanges that will make the exchange of safecoins possible into a number of other currencies. It is anticipated that these purchases will be made from decentralized peer-to-peer exchanges that will be built by third-party developers. It will also be possible to have centralised exchanges.
Where do I store MaidSafeCoins?
Until the SAFE Network is launched, MaidSafeCoin will continue to be the only unit of currency. If you bought them as part of the crowd sale they will be at the Bitcoin address used to purchase them. Although they may not be visible within all wallet software, your MaidSafeCoin will be OK there as long as your machine and private key for that address are secure. You will be able to view them using Omnichest.info explorer by inserting that Bitcoin address into the search bar. However, you can also set up an Omniwallet account (a third party web wallet) which will enable you to view MaidSafeCoins within the wallet and to be able to transfer them to another address, or offline Bitcoin wallet.
In order to transfer your coins into Omniwallet you will need to import your private key. The following screen grabs show this process using a blockchain.info wallet. PLEASE NOTE THAT ALL SOFTWARE SHOWN IS PRODUCED BY THIRD PARTIES AND MAIDSAFE DOES NOT TAKE RESPONSIBILITY FOR THEIR SECURITY.
How are safecoins distributed?
The total number of whole safecoins which can exist on the SAFE Network is 232, or just under 4.3 billion. 5% of that number have been allocated to compensate early investors who have backed the network over a long period of time, and 10% were sold to crowdsale participants in early 2014, in the form of MaidSafeCoin--a blockchain-based token which will be exchangeable one-for-one for safecoin when the network is live. These safecoins will be available to their designated recipients soon after network launch, at which time they will circulate and be recycled like any other safecoins, at the discretion of their holders.
Beyond that, safecoins will come into and go out of circulation in a continuous flow, according to the following description, which has been made as non-technical as possible.
All new safecoins are generated as a part of the farming process and distributed to Farmers, App Builders and the Core Developer pool according to their individual algorithms, as described below.
Safecoins are distributed as the product of a successful “farming attempt.” The sequence leading up to a successful farming attempt starts when a Farmer’s Vault accurately delivers up stored data when the data is requested. When this is successfully done, the Vault seeks to qualify for a farming attempt. The chance of gaining a farming attempt is regulated by the network Farming Rate (FR) which prevails at that moment, and adjusts the ease or difficulty of gaining a farming attempt, depending on prevailing network conditions (availability or scarcity of storage resources).
- Farmers qualify for farming attempts at 100% of the Farming Rate (FR) (as modified by Vault performance ranking).
- App Builders qualify for farming attempts at 10% of the FR.
- The pool from which Core Developers are rewarded for their contributions qualifies for farming attempts at 5% of the FR.
When a farming attempt is qualified for, the Vault queries a random safecoin address (deterministically computed) to see if a safecoin exists in that location. If there is a safecoin there, the attempt fails. If no safecoin currently exists at that valid safecoin address, the network creates a safecoin and enters the public safecoin address of the successful requestor, whether it be the Farmer, App Builder or Core Dev pool. The recipient of the safecoin then holds, transfers or spends it as they choose.
Ultimately, when a holder of the safecoin wishes to use it to purchase network resources, such as the capacity to write a certain quantity of data to the network (or computational services, which will be implemented later on), the safecoin is recycled (erased), leaving the address open for farming when a new farming attempt is made to that address. In this fashion, safecoins come into and go out of existence in response to the needs of the network and those who contribute to maintaining it, and the End Users who ultimately benefit from using the network.
How will MaidSafeCoin be converted to safecoin?
Once the SAFE Network goes live, MaidSafeCoin can be exchanged for safecoin at a ratio of 1:1. This will probably be achieved by sending MaidSafeCoins to an unspendable address, thereby burning them. In return, an equal number of safecoins will then be issued to the sender's User account on the SAFE Network.
What gives safecoin value?
Safecoin's value will lie in its utility and its ability to access and utilise services on the network, such as storing data, or making VoIP calls. Additionally, safecoin provides a cryptographically secure and near instant method of value exchange, facilitating micro transactions without transaction fees. It is important to note that this is value backed by the value of securing User data and communications.
How is safecoin valued?
The value of safecoin will be set by the market--i.e., the demand to acquire safecoin versus the demand to acquire other things in exchange for it (e.g., other currency, products, services, etc.). Safecoin will need to be acquired by those Users looking to utilise services on the network other than just viewing data, which is free. Such services which will acquire safecoin will be distributed data storage and communications initially, though other services will be available as the network matures, such as distributed computing. Those who choose to participate in the network as Farmers should earn more than enough safecoin to accommodate their needs as Users. For those who have larger needs or who cannot/choose not to contribute to the network as Farmers, safecoin will be sold by those Farmers looking to exchange the excess safecoin they have earned. This will be accomplished by various exchange options. It is worth noting that the generation and distribution of safecoin will be entirely network-led, meaning that if the SAFE Network is in great demand a large volume of safecoins will be created, while low demand will lead to minimal coins being generated. These factors will also have an impact on price.
What kind of equipment will be required for dedicated farming?
Until the network is tested with a variety of hardware configurations the best setup will not be known conclusively. However, this doesn't stop the community speculating:
- Hardware on the FreeBSD supported hardware list (https://www.freebsd.org/relnotes/CURRENT/hardware/index.html)
- A low end Haswell or later CPU, preferably with ECC RAM support. These have really excellent idle power consumption, if you don't care about power consumption then Ivy or Sandy Bridge CPUs are fine. Note that FreeBSD currently has poor support for Haswell CPUs.
- As fast and low latency a network connection as you can afford.
- Running FreeBSD 10 64 bit or later.
- ZFS as the filing system (http://en.wikipedia.org/wiki/ZFS) with 4k alignment during config.
- As many hard drives as you can afford for the main ZFS backing. Ideally mirrored so they can self heal bit rot, but not strictly necessary.
- A small but fast SSD as the ZFS log intent device. This makes synchronous (fsynced) writes very fast. You don't need it bigger than the largest amount of synchronously written data to occur at once, so even a 16Gb SSD is probably way overkill. Make sure you only allocate half of the device to the intent log leaving the other half trimmed empty, ZFS does a ton of writing and will wear out a SSD quickly if you give it the full device.
- As much (preferably ECC) RAM as you can afford for read caching by ZFS. 32Gb is probably enough. Some like to add another SSD for this, you can if you want.
That is probably a good best estimate for ideal dedicated farming hardware in terms of balancing power consumption, earnings and cost.
What is stopping a hosting provider from farming?
Nothing. Everyone is welcomed to farm and thereby contribute to the network. To prevent centralisation, the use of one huge farming rig will be economically discouraged as compared to running multiple smaller nodes. As the following diagram demonstrates, the safecoin earning algorithm is based on a Sigmoid curve, in that all Vaults earn, slowly at first and the rate increases as the Farmer stores up to the network average. The earning rate also takes into account the rank of the Vault, a process whereby the network scores the usefulness of each node from 0 (being the worst) to 1 (the best). The safecoin farming rate is ultimately the result of the network rate (a balance of the demand and supply on the network) multiplied by the Vault rank. The network rate will start to level at 20% above average, thus discouraging massive Vaults which would bring centralisation to the network’s farming process.
What is the best farming hardware?
At this stage of development no conclusions can be drawn, although some are looking to small energy efficient single board computers such as a Raspberry PI or Odroid's. As MaidSafe progress through their development roadmap and implement test safecoin, the most efficient farming rigs will become clearer.
It should also be considered that dedicating a portion of hardware you already own and are using is probably the most cost effective way to participate as a Farmer, as long as the system is not too antiquated and inefficient. The marginal cost for running a Vault in the background is very small in this case, especially if one already their device on and connected most of the time anyway. The network has been designed with this as the primary expectation use case.
Attacks on the SAFE Network
Birthday paradox/Sybil Attacks
In this attack, an attacker ﬂoods 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 SAFE Network Client passes a request to it's DataManagers, 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 DataManagers, 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.
Can an ISP thwart the network?
In this attack an ISP creates a simulated or fake network. On this network the ISP gets data that the User has requested, but does not actually store data the User has attempted to store. The purpose of this attack is to force Users to lose data that may be important to them or simply discredit the SAFE Network.
In this case the bootstrapping SAFE Network 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. As the bootstrap session is encrypted with the public key of any bootstrap Vaults then the connect request will fail. The SAFE Network Client then detects this is not a valid network.
ISP simulates network
An ISP's machine pretends to be the user's machine and asks for the bootstrap information on the users behalf. In this case an ISP's machine 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). The user then connects to their closest Vaults. 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 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.
Storing illegal or immoral data
If an attacker were to subvert the self-encryption to attempt to create illegal or immoral data of under 1Mb in size, and named with the hash of its content, then potentially the attacker would be able to store this immoral data on the SAFE Network. As self-encrypted data is highly obfuscated and nearly impossible to decode, then storing data normally would not yield this attack. There is no mechanism to force the data onto any specific Vault, but the data would simply be on the SAFE Network.
The purpose of this attack would be purely to discredit the network. It is unlikely any attacker would know where the data was stored and the network does not disclose this information at any rate. In any case an attacker could state they did manage to do this to alarm users.
Due to not knowing where the immoral data is stored in the SAFE Network, this attack is already thwarted as the attacker could not retrieve it. In itself this is a form of protection, however the SAFE Network also goes a step further.
As data is stored in the SAFE Network, the key used to store it is also used to encrypt the content. This key is then hashed itself and the content renamed to this key. The original key and content are then deleted. In this manner, the Vault storing the data has no ability to decrypt its stored chunks of data.
The SAFE Network can ask for a chunk, and the Vault will hash this request and look in its storage for the hash of the requested chunk. On finding this, the Vault will use the requested key to decode the content in memory and send the data on, named with the requesting key. This will then be able to reform as an immutable data chunk, but only for the requesting Vault.
This therefore is similar to an attacker fully encrypting the data themselves and storing on any computer or network.
Comparison to other technologies
Difference between Freenet and Maidsafe
The SAFE Network differs from many of the organisations and products in the space because it offers the decentralized Internet at the core of it's design. Some of these projects are currently trying to add components that bend them into the shape of a decentralized Internet, but this is not what they were designed for. As a result, many of these projects require significant set up and only work on certain platforms. It is worth noting that MaidSafe, and it's community, supports any project that backs a decentralized Internet, however we don't see any with the same goals as the SAFE Network: Privacy, Security and Freedom for everyone!
Bitcoin vs Safecoin
David Irvine explains.. "User Defined data" of a SafeCoin can hold a file/directory (no blockchain bloat issues cos SafeCoin confess with its own storage, accessible to everyone, free, all the time - nothing to pre-download as in bitcoin-QT).
Safecoin can be used for anything, such as bets, shares, trades, smart contracts etc." ----> SAFE is Bitcoin/Ethereum on steroids!
Safecoin are held differently to immutable data chunks (to be documented):
"Coins are held as group data and maintained by that group, so not distributed like immutable chunks, but managed more like structured_data_versions." ~ David Irvine
Safecoin is a secure decentralised currency secured by cryptography and a decentralised network, with similar characteristics, but wholly different technology.
- Secure (safecoin is at least as secure as Bitcoin. For example, the famous Bitcoin "51% attack", would require at least 75%, and even then have only limited vulnerability.)
- Truly Anonymous (no blockchain--only anonymous IDs are recorded, and only the current and immediately preceding owners' IDs are retained.)
- Massively Scalable (Instant or near-instant transactions, regardless of transaction volume--no blockchain bottleneck.)
- Accessible (Anyone with a computing device can obtain safecoin simply by joining the network and farming by sharing bandwidth and disk space with the network, whereas this was only feasible with Bitcoin during the early days and now a small number specialised "miners" earn almost all the bitcoin available. On the SAFE Network, farming capability will remain much more evenly distributed even as the network matures and farming rates decline. See @fergish's post).
These factors have very significant implications for the widespread adoption, application and longevity of safecoin as opposed to other cryptocurrencies which are, in the case of Bitcoin and other blockchain based currencies, for example, severely hamstrung by deficiencies in several of the above areas.
Ethereum vs SAFE
Architecturally, Ethereum and the SAFE Network are quite different. Ethereum is based on a blockchain that features a turing complete scripting language, while the SAFE Network has no blockchain at all but achieves consensus within close groups. As for the applications that can be built on top of each system, it's too early to say. Ethereum is primarily envisioned for the writing of smart contracts while SAFE has the potential to replace the entire internet.
Storj vs SAFE
The goal of Storj to provide a decentralized solution for users to store data and uses a blockchain-based approach to achieve this. While the storing of data is also a very basic goal for the SAFE Network, its scope is much larger. The SAFE Network is a fully decentralized data and communications platform upon which every existing service of the internet can be built. Furthermore, the SAFE Network will offer advanced features such as distributed computation in time.
Bitcloud vs SAFE
Tor vs SAFE
Tor is a routing layer that is built on top of the current internet. It works by routing traffic through a relay of nodes, thereby concealing its origin. While Tor can offer anonymity, it comes at the cost of decreased performance. One problem inherent to Tor is that the exit nodes remove the last layer of encryption and therefore are able to read the traffic. Governments can maintain a large number of exit nodes and thereby read some of the traffic. Furthermore, successful attacks on the Tor network have been reported . There is no built-in reward mechanism to incentivize individuals to run nodes, hence their number is still rather small.
The SAFE Network is designed from the ground up to provide strong anonymity by default and does not suffer from any of the weaknesses of the Tor network. Successful attacks on the SAFE Network would require the attacker to gain control over very large percentage of vaults. Even then, the damage an attacker could possibly do is very limited.
How does the SAFE Network work?
The SAFE Network Vault/Client software turns all connected devices into SAFE Network nodes that collectively store data for all SAFE Network Users. The SAFE Network allows public and private cloud data storage and processing. Data storage is automatically decentralized. This means a web application using the SAFE Network does not store its Users' data on any central server, rather the data is spread across many disks and devices owned and managed by many different users. No one person or corporation has an intact copy of a User's file.
For a more technical explanation, you can watch this series of talks by Erick Lavoie.
How exactly does self-encrypted data work and why does it use a custom algorithm?
Security of a User's data is critical in the SAFE Network and this is, in part, provided by the self-encryption process. The SAFE Network requires that data be unrecognisable as data and resistant to decryption, even in the event of an encryption algorithm being compromised.
Self-encryption is used to mix up and encrypt data before it is sent out to the SAFE Network. This process is automatic and happens instantaneously.
As data is saved to a User's virtual hard drive, it is broken up into a minimum of three chunks, hashedand then encrypted. To further obfuscate the data, every chunk is passed through an XOR function using the hashes of other chunks. Each chunk is then broken up and key value pairs are added to a table in the Users account, called a data map. The data map contains the locations of each chunk that makes up the file. The data map, with hashes before and after encryption, is used when retrieving and decoding the User's data, as the encryption process is non-reversible.
This entire process takes place on the Client so that data is always encrypted on the network and only Users with the correct credentials can decrypt the file. This also means that passwords can never be stolen from the network as they never pass beyond the Users computer. For additional security the data map is also run through the self-encryption process.
The SAFE Network uses data deduplication to ensure that space is used efficiently when storing multiple copies of data which have been uniquely encrypted. The network is able to distinguish identical pieces of data by comparing the hashes of each chunk. As is described in Guaranteed Vault identification, Vaults also use hashes to identify themselves.
Below you can see a video explaining the self encryption process.
Why switch from C++ to Rust?
The SAFE Network was originally conceived to be fully written in C++. However, during testnet2 a decision was made to trial rewriting some of the code in Rust for comparison. Advantages expected from using Rust were stated as:
1: No crashes because of code misuse
2: No memory leaks
3: No data races
4: Cross platform
5: Inbuilt version management, build system and test harness
6: Package management system
7: Inbuilt generics and traits
8: Very strongly typed
9: Very fast
10: Compiles into a C library basically
Because the trial in Rust was perceived as a success, a decision was made to fully switch from C++ to Rust. This led to a simplification of the codebase both in terms of length and complexity.
What is Proof of Resource?
Proof of resource is the process measures a Vaults ability to store and retrieve data chunks. This depends on the following user's computer criteria:
- CPU speed
- Bandwidth availability
- Disk space
- On-line time
Proof of Resource in the SAFE Network uses a mechanism similar to a zero knowledge proof. In this case the checking mechanism does not require to know the content of any data to be checked, but must know the data is in fact held and held in a manner that is accurate.
The Proof of Resource follows a series of steps.
- A checking group of Vaults creates a random string
- This random string is sent encrypted to all holders of the data
- The data holder takes this string, appends it to the original data, and hashes the result
- The result is collected and decrypted by the checking group and compared
- If any Vault returns a different result then it is believed compromised and de-ranked
This mechanism is triggered on GET requests and during account transfers. Account transfers are where information about a data chunk, or information about nodes holding a chunk are passed to new members of a close group. Proof of Resource is non-deterministic and randomised by use by users. It is considered to be secure and uses zero knowledge, not to conceal content (as anyone can ask for any data), but to ensure any data which is contaminated is not required to be transferred.
Here is an overview of the Proof of Resource process.
What’s in it for developers?
15% of all safecoin earned will be allocated to the developer pool. This will ensure the developer community is highly motivated and rewarded for providing free-to-use applications as their revenue model. It is proposed that developers are able to use the SAFE Network to publish their applications. These application developers are called Builders and the network will reward use of these applications by paying the Builders in safecoin based on the application use by users of the system. This is possible since the application developer can insert their own network immutable wallet address in their application. This creates a fully automatic revenue model for both open source projects, private individuals and application development companies. Developers who contribute code that enhances or fixes bugs in the SAFE Network that are accepted into the master branch of the codebase will also be able to earn safecoin.
Reasons for developing on the SAFE Network:
- Get your apps everywhere
- No API key - just download our code and start using it
- Extremely low customer acquisition costs and no infrastructure costs
- Apps that adapt in real-time to changes in demand
- Provide security, privacy and anonymity to all your users
What language are SAFE Apps written in?
At the point of launch it is anticipated that it will be possible to write apps in:
Why does MaidSafe have patents?
The existing patent system is broken in so many ways, and an alternative is clearly required, but MaidSafe cannot ignore that it exists. Shouting our disagreement from the sidelines won’t do it. Not protecting MaidSafe, the network and the companies that will develop on it, and the people using it, represents a significant risk. Not protecting these stakeholders leaves us all at the mercy of patent trolls and large corporates who have proven time and again that they value money above all else.
Ownership of all MaidSafe patents has been transferred to the MaidSafe Foundation, a charitable not-for-profit organization set up to foster education and innovation.
MaidSafe has released all its code (which the patents cover) under the open-source General Public License (GPL), version 3, which we openly encourage anyone and everyone to fork. This license contains a clause (number 11) that states:
“Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.”
This clause stops the MaidSafe Foundation from legally challenging and enforcing a patent against a person or company using the SAFE Network.
Why did you choose an open source license?
MaidSafe uses an Open Source license because we believe that the potential for the SAFE Network to become so pervasive throughout peoples lives, means that no person, company or organization should own the technology. It should be there for everyone to use as they see fit (and always will be) and can be forked at any time. We also feel that being Open Source leads to greater auditability of the software and while this isn’t obviously a guarantee that a piece of code is well written or secure, it provides the opportunity for knowledgeable and open peer review and public debate.
All MaidSafe code is available under GPLv3. This license is available on the GNU website http://www.gnu.org/licenses/gpl.html.
What happened with the crowdsale?
It's evident that the crowdsale of MaidSafeCoin (MAID) did not go as planned. The MaidSafe and Mastercoin teams collaborated on a crowdsale of safecoins through the proxy coin, MaidSafeCoin which was created using the Mastercoin protocol (now known as Omni). You could participate in the fundraiser with Bitcoin (BTC) or Mastercoin (MSC) and in order to pre-sell these coins to raise funds, some sort of fixed price was needed. Both prices were fixed too low for the actual demand (MSC, more so) and created a scramble to get in on what many were seeing as a great investment. It definitely wasn't the most ideal circumstance for a crowdsale initially thought to last around 30 days. Unfortunately, lots of individuals didn't get to buy in (most of those being Mastercoin buyers) and this situation could have been better prepared for. Those who did get an opportunity to purchase MAID have received the proxy tokens.