Using Tokens on the SAFE Network
Bitcoin is a hot topic these days. The crypto currencies ability to disrupt the status quo and its price volatility has attracted admirers and critics in equal measure. Bitcoin proposed and executed a very innovative idea, coupled with a well-considered system design based on the block-chain and proof-of-work concepts. In essence, Bitcoin is a decentralised digital currency on centralised network. In this article, I am going to propose a token based system on the SAFE Network. In effect, a decentralised digital currency system on decentralised network.
Part I Proof Of Resource
Section I.1 Proof of work for Bitcoin
There are many thousands of articles that have explained what Bitcoin is and how it works and it is not my intention here to get too deep into specifics. However, I do want to explain and highlight some key points:
It is possible to obtain Bitcoin by a process called mining. Mining involves adding transaction records to a virtual currencies public ledger of past transactions and it is the mechanism used to introduce bitcoins into the system. Miners solve computationally difficult problems in order to allow Bitcoin nodes to reach a secure, tamper-resistant consensus about all the transactions that have taken place and miners are rewarded by the network in the shape of bitcoins.This proof, call it ‘Proof of Work’ is recognized by all the members of Bitcoin network. As the Bitcoin network has grown and become popular, people are willing to pay to acquire coins (which is actually the proof). This has led to exchange rates being established, assuring bitcoin of it’s digital currency status.
Section I.2 What is proof of resource?
To further expand the concept of Proof of Work, you can think about Proof of Resource as; validation that the specific amount of resource you have committed has been accepted by the community. The resource here can be anything, such as; man power, knowledge, CPU power, electric power…etc…
Take our monetary system for example, banknotes represent the certification (proof) you received payment for your resource (manpower, knowledge, food…etc…). Within BitCoin, the coin (which is a digital transaction to your account) is the proof of your computation work (mainly CPU power).
Section I.3 What features make a proof a currency?
Proof of Resource has two aspects, proof itself and the resource that proof refers to.
Proof of Resource has the potential to be a currency when the resource it references is of value. Everyone trusts banknotes as the resource it references is valued by the majority of people. The computation power fulfills this need in the Bitcoin network to validate transactions.The ‘guarantee of uniqueness’ is one of the features that enables that Proof of Resource to be considered a currency. Banknotes are backed by government and governments limit the amount of currency issued (printing too much causes inflation to occur). It is hard to produce fake banknotes and once they are spotted they will be removed immediately. The Bitcoin algorithm ensures there is a limit to the amount that can be issued, while the Bitcoin block chain makes it near impossible to fake transactions.
A further feature of currency is its acceptance from the public. When a government issues a banknote, it gains acceptance from that country’s people immediately. However, it takes time for legal tender to be accepted as a global currency as it has to gain acceptance from foreign governments. When bitcoin was first issued, not many people accepted it, so it was not considered to be legitimate at that time. Only after years of evolution, and ultimately acceptance, will it be considered a valid currency.
Part II The SAFE Network
Section II.1 The decentralised network
The Internet has been described using the 7-layer ISO model, a concept initially introduced years ago. The lower three layers are mainly hardware infrastructure. It is hierarchical and centralised, based on the masking of IP addresses and centralised ownership, describing the centralised Internet that we have today. Centralised architecture was implemented for many reasons, mainly because of the limitation of technology (especially average connection speed) at that time.
The SAFE network proposes an upper layer network solution, utilising a mathematically complete Public Key Infrastructure (PKI) authorisation, secured key-value storage and reliable Kademlia based routing. The network is designed to be decentralised and has the ability to get rid of Domain Name System (DNS), which is not part of the hardware infrastructure. The peer-to-peer routing layer can be embedded into hardware and easily updated, provided manufactures support it. Once that’s done, the Internet can be totally decentralised. However, this will involve a significant amount of reorganisation amongst corporations and governments.
The PKI solution deployed within the SAFE Nnetwork, validates with mathematical certainty a users identity. Bitcoin uses the block-chain to secure the transaction, creating a validated proof of work. In the SAFE Network, the account itself is self authorised, by combining key-chain verification with nearby group authorisation.
Section II.2 Generate proof of resource on the SAFE Network
The SAFE Network deploys a de-centralised key-value store mechanism. This mechanism is focused on data, managing the way it is stored. Any upper layer application can be counted as ‘data’ to network. Every functional node in the SAFE Network is referred to as a vault. Each vault is provided by users and is responsible for the storage of data on the network. When users create an account, a vault is created, providing a commitment of resource to the network. At this point, the user claims that they can store X amount of data in their vault. However, it doesn’t become proof yet, as the claim cannot yet be verified.
In order to be validated, this vault needs to successfully store data to prove its resource. When the network is required to store chunks of data, it randomly picks a number of vaults in which to store it. When the vault claiming X amount of available space is chosen, the network asks a series of challenge questions. Correct answers enable the chunks to be successfully stored and the proof of resource validated, while the user account records how much space the network has used. It is interesting to note that the proof of resource is not only the committed disk space, the network also takes into account the users CPU power and bandwidth.
Section II.3 Advantages of SAFE Network generated proof of resource
Regarding the ‘proof’ side, as SAFE Network is designed as de-centralised, the authorization problem meanwhile keep anonymous on de-centralized network is already resolved. For the end-users, they can just think it as a traditional bank account (you have an account which is secure and unique. The account holds something what will be accepted by others and can be exchanged. Only you can access the account). This will be much easier for them to pick-up the concept as the similarity to normal life experience. (Bitcoin has to solve authorization problem, which is a barrier to end users to understand and trust the system.)
Regarding the ‘resource’ side, proof of resource on the SAFE Network is mainly focused on storage space for data (call it proof of space if you like). As data can be anything, and used for any purpose, storage space is always desirable. The process for generating proof of resource is totally random and therefore could take an indeterminate length of time. It is not controlled by human beings but by the network using a pre-defined algorithm.
Part III Token on SAFE Network
With the proof of resource being generated on the SAFE Network, a token system can be setup relatively easily and there are many ways such a system can be implemented. Here, I will just illustrate one approach, serving as a demonstration of using MaidSafe proof of resource. To keep things simple you can think of this token system as a new digital currency, similar to Bitcoin. We can call it SpaceCoin (as this token system does use disk-space as main measurement).
Section III.1 SpaceCoin based on the SAFE Network
On the SAFE Network, a user’s MaidAccount will look like this:
maid_account(<pmid_account1(pmid_node1, claimed_space, stored_space), pmid_account1(pmid_node2, claimed_space, stored_space), …)
Bear in mind that as mentioned previously, the stored_space is a proof of resource generated by SAFE Network. It has the key features of a digital currency system : approval (validation) by others, to be fairly distributed and no trace bundled to proof itself. With these attributes in place SpaceCoin can be easily introduced into the SAFE Network.
Imagine there is another field called SpaceCoin in MaidAccount. By using MaidAccount, the tokens immediately become anonymous, requiring no central authorisation, while still retaining the many security features provided by the network. The SpaceCoinAccount will look like this:
There are two parameters: available_coins (coins the user has) and coins_can_receive (coins the user can receive). A user can credit their available_coins by either providing storage space, or by purchasing coins from others.
Furthermore, coins_can_receive is calculated based on the sum of stored_space across all pmid_accounts that a user holds (a user can have more than one account), multiplied by a global factor (which can be fixed or fetched dynamically from the network). The algorithm that generates the global factor will ensure the token system is immune from inflation. Bitcoin manages this problem by reducing the speed at which new coins are released (or mined); halving the number generated every four years and spacecoin could adopt similar logic.
In essence, available_coins reflects how many coins users own from their previous work, while coins_can_receive relates to how many coins users can obtain in future, based on current proof of resource.
Section III.2 Transactions for Different Scenario
Mining is a relatively simple concept to introduce into a SAFE Network token scheme, as the stored_space already carried out the mining part. When claimed space is randomly picked by the network to store data, the spacecoin_account gets credited. When mining bitcoin, miners run hardware hoping that their computer solves the hashing algorithm which subsequently earns them coins. Similarly, when mining spacecoin, users will hope that their available storage space will be randomly picked by the network to store data, enabling spacecoins to be earned.
SpaceCoin can also provide an additional feature that other digital currency can’t, that is, ranking the reputation of the user automatically. When a MaidAccount’s pmid_node gets de-ranked or marked down (through undesireable behavior), it will be reflected in the pmid_account’s stored space. This allows SpaceCoin to update coins_can_receive. This can be seen as some kind of ranking in that higher coins_can_receive value indicates a more stable and reliable commitment to the network. Furthermore, this reputation can only be gained over time, similar to a personal credit score, for example.
When user A wants to give some coins to user B, the network check against user B : coins_can_receive > (available_coins + coins_to_sent)
If user B can receive coins, the transaction is agreed and available_coins of A is deducted, while B’s account is credited. If user B cannot receive coins, the network rejects the transaction.
The transaction can become immediately valid by using MaidAccount, as authorization is already completed. This avoids the delay that Bitcoin users currently experience with the block chain, where it takes the Bitcoin network 60 minutes to confirm transactions. In addition, the SAFE Network provides a further advantage of not leaving any trace of any transactions, ensuring user identities cannot be traced.
Section III.3 Pre-mining of Spacecoin?
Pre-mining is a term used to describe a process where a virtual currency is mined prior to public launch. Typically this is cause for concern as the portion that the initial stakeholders reserve for themselves is open to abuse and potentially reduces the reward for future participants.
Bitcoin had a very limited pre-mining stage with only 50 coins for the original seed. This low number ensured that pre-mining was never really an issue for the Bitcoin community. Interestingly, getting into mining early on is advantageous as the odds of solving the computational problems is initially very high, becoming less so as the difficulty of the problems increase and the number of miners grows.
Other proposed token systems have suggested a fixed portion share model where, for example, 10% is set aside for the original developers and investors. This encourages development and investment to speed the deployment of the currency. However, it raises similar concerns to those raised during a pre-mining process.
SpaceCoin intends to follow the model of BitCoin with a strategy that benefits both early developers and investors: provide seed storage space to form a seed network. This seed storage space can be awarded to early developers for their commits or to investors for their funding.