I’ve been having some thoughts around how to make use of the farming reward mechanism and economy, for not only rewarding real contributors as planned, but also for having it to play a role in the kick-start, adoption and growth of the SAFE Network.
I’ll try to not go into too much detail but just describe the overall idea and how I’m imagining this can impact some aspects of the network, in what I believe would be positive ways. I won’t be surprised if this proposal is somewhat controversial, but I see some potential in it, so I thought it could be good to run it by you here to find out flaws and downsides, or why not more upsides that those I (maybe biased) believe to see.
I’m thinking that safecoins which were acquired directly from farming, i.e. those safecoins which were sent to a wallet/keys by vaults as the result of a farming reward transfer, could have an additional value within the network as we can be sure they are owned by a real contributor of the network.
The idea is simple, the cost of a very specific set of operations can be paid only by these type of safecoins, the rest of operations can be paid by any type of safecoins.
Since these safecoins are a bit more precious or special, since they come directly from a sucessful farming event, I’m trying to make an analogy with fresh goods from farmers, which can be considered more special as some tastier food can be prepared with them, and this is why I thought that calling them
fresh-safecoins would make some sense.
High level implementation details
The implementation wouldn’t be complicated either, I’m basing the proposal on the revised safecoin RFC #57.
CoinBalance is the data type which can hold a safecoin balance, an special kind of
CoinBalance can be added which is the one that vaults will be able to transfer the farmed coins to. This special kind of
CoinBalance can be implemented either by adding a flag to its structure, which defines what type it is, or perhaps by just having a second struct. Regardless of such a detail, to this new type of struct I’ll be calling it
FreshCoinBalance from now on.
Vaults will follow the exact same mechanism described in RFC #57 with the only additional restriction that they won’t transfer a farming reward if the destination is a
CoinBalance, they would only do it if the destination is a
Farming rewards are received in a
fresh-safecoins are transferred to a
CoinBalance they become regular safecoins which can be used for any operation except for a few specific ones which are restricted to
fresh-safecoins (I’m describing a couple of them in the next sections).
safecoins from a
CoinBalance to a
FreshCoinBalance are not allowed.
fresh-safecoins to another
FreshCoinBalance is not allowed either, this is to prevent the existence of a
fresh-safecoins market which could be problematic, or at least add complexity to the economy of the network and safecoins. Thus I’m not including it in the proposal, but perhaps can be considered if all its implications are well studied.
Public Names (DNS names) owned by
One of the operations that can be restricted to be payable by only
fresh-safecoins is the creation of Public Names (Note that updating/appending versions to a Public Name would still be possible with non
fresh-safecoins). I’m thinking this can help to discourage users from doing public names squatting.
A Public Name can be a special type of
AppendOnlyData which has the following characteristics:
- The costs for its creation can be paid only with
fresh-safecoins, i.e. a Public Name can only be created with a
- The owner of a Public Name is set to be the same owner of the
fresh-safecoinsused to pay for its creation, i.e. the source
FreshCoinBalance's PublicKey becomes the owner of the Public Name being created. The user cannot choose any other owner for it, neither when creating it nor later on
- Ownership is not transferable
By having Public Names to be a specific data type on the network with such characteristics, selling Public Names is simply not possible, ownership is not transferable, thus name squatting could start to not make sense unless the owner plans to really use them for their own content.
It could still be possible for users to rent Public Names though, i.e. allow others to publish content for a fee. It’s my belief that renting a Public Name from someone else won’t be something desirable by many/most/any users, renting it means that the owner will always have the secret key to decide what to do with the Public Name. As an example, a company decides to rent a Public Name, and after some time the owner decides to make use of the popularity of the Public Name and publish its own content ending the rental contract with the company. This can even happen without notifying the company.
So it sounds to me that no serious business would take the risk of renting a Public Name, well even regular users wouldn’t take such risk I believe. Note that buying the key pair of a
FreshCoinBalance from its owner has the same problems/risks as renting a Public Name from someone, the owner already knows the secret keys (unless a neuralyzer is used in such transactions ).
There is a scenario which is worth mentioning explicitly to explain how it’s covered. Let’s imagine a user who owns a Public Name created with a
FreshCoinBalance, but he/she doesn’t have enough funds in it for updating a website/app published at it, either because the user decided to not farm anymore, or if the farming rate is not enough for the amount of safecoins he/she needs to spend to update such website/app. In this case the user can always create a
CoinBalance using the same PublicKey of the
FreshCoinBalance, acquire safecoins by any other means to transfer them to this
CoinBalance, and then use the
CoinBalance to pay for the update costs (for this to work, the
CoinBalance will need to possible to be at the same XOR name, since their PK is the same, and possibly restrict the creation of such a
CoinBalance to be signed with the corresponding SecretKey).
SAFE Accounts creation
A second type of operation that can be restricted to only
FreshCoinBalance is the creation of SAFE Accounts, this should encourage users to become farmers, while it still allows users to create accounts for others which didn’t try to farm safecoins.
Maidsafecoins conversion to
To make sure early investors are well rewarded, and to incentivise people to support the project by owning
Maidsafecoins tokens, converting
safecoins at launch could be done as planned, on a 1:1 basis, but the
safecoins redeemed will be
A more important aspect of this has to do with providing a way of smoothly kick-starting the network at launch.
When the SAFE Network is ready for launch, some farmers will start running the vaults, they won’t get any safecoins farmed because nobody has safecoins to spend, and this will be the case until
Maidsafecoins start getting converted into
fresh-safecoins, which is when they can be used to start creating accounts, creating public names, and uploading data onto the network, and therefore allowing farmers to get their first farming rewards. As farmers and owner of
Maidsafecoins spend more safecoins the whole economy and network would grow smoothly, I believe.