Safecoin divisibility

True, but divisibility is much larger than rewards :wink:

I just think we need to have a solution for both the farming and spending sides. If we need fine grains at both ends, it suggests to me that we may just need smaller units. I will be interested to see what the solution will be for this.

7 Likes

The balance method I suggested allowed the approx minimal farming rate to be paid each time a GET is done and even the “lottery” can still be done (it is needed)

6 Likes

Nothing will be thought of even till after test safecoin is (to be) implemented. The dev team may review some ideas for divisibility when they go to start implementing safecoin, but that would only be to ensure divisibility can be implemented later on.

4 Likes

The following ideas may be worthless or already considered elsewhere, but here’s to hoping they may give the devs some inspiration. I am not up to speed on all details of the SafeCoin implementation under the hood, but let me suggest the following two options for handling SafeCoin divisibility :

  1. The use of “Ownership Sets”. Monitor nodes would look at a set of previous owners, and a set of current owners. Individuals can transfer their partial ownership in a single SafeCoin to someone else, without changing the identities of other users named on the file. This would fit nicely with the current plan to start with a single owners, then allow for the protocol to expand over time to allow sets of 2, 4, 8, 16, 32 owners etc. as the network performance and resources grow.

  2. A nostalgic Gold, Silver, Copper, natural resource analogy is easy for most people to wrap their brains around. For a period of history the value of gold, silver, and copper was pegged at predetermined ratios. (ex. 100 copper “cents” per 1 silver ounce; 20 silver ounces per 1 gold ounce). These ratios were based on a consensus (or decree) of the relative value of the commodities. Based on my naive understanding of the SAFEnet protocol, this might also be achieved by setting the number of monitor nodes watching a transaction. For example, lets say the original SafeCoin protocol uses 32 nodes to monitor the transaction when reaching consensus. Let us consider this to be the “SafeGold” method. Files falling under the distinction “SafeSilver” might only require a consensus based on 16 nodes, or “SafeCopper” relying on 8 nodes. One might also conceive of a higher degree of consensus such as “SafePlatinum” that would require the use of 64 nodes. Since the chances of double spend or other problems might be higher with “SafeCopper” due to the low consensus count, these coins would be naturally less valuable by the users and traded accordingly. Regardless the total quantities of SafeGold, SafeSilver, SafeCopper, and SafePlatinum would need to be fixed from the instant these features launch on the network. Hypothetically, nodal “exchanges” could then be setup within the network to convert between the different coin type, these exchanges would always take a commission denominated in the lesser valued coin. For example, A "SafeGold " exchange might require a commission in the form of “SafeSilver” or “SafeCopper”, whereas a “SafeSilver” exchange could only charge a commission denominated in “SafeCopper”.

One could imagine a hybrid system that employs a combination of these approaches. Considering the real world analogy, there is a fixed and finite quantity of ounces of precious metals that exist on earth, regardless of mining activity, and these exist in certain ratios. Also, real property often has more than one owner.
The current trend to have the SAFEnet protocol fix the number of SafeCoins that exist from day one is a wise one. Other “layers of value” can always be built around them.

2 Likes

Part of the stated goals of the SAFE network is anonymity and that coin transfers only have the ID of the one who sends the coin and the ID of the new owner.

So to do this is to remove a layer of anonymity. And it does seem like processing increases too. This introduces a larger attack surface to aim at.

Consensuses is a core aspect of SAFE and so for any data object, consensus must be met before anything can be changed, To have a tiered system could see the whole data system unravel by people changing things with the Copper tier which then changes it on the network thus if you do this for one data object then it would be possible to do it to others. Also what is it solving? consensus is one of the core aspects of the network so you are not really saving anything by reducing its securty.

There was a division plan to use coins (MDs) with these names for different denominations. So you could split up a safecoin for say 100 safecents. The issue there was the network load which involved the # of transactions and not the number of nodes to reach consensus.

1 Like

Because that would essentially be the equivalant of printing money which results in inflation. It’s not about the number of coins but rather how much each coin is worth. If you print more coins that means they are worth LESS than if you simply made them divisible. It’s the same concept as how you could buy all kinds of things back in the 30s or 50s with just a few cents but need a wad of bills to buy the same thing now. Hell you could buy a whole cart full of groceries back in the 90s with only a $20 but now that barely gets you anything. Same concept. More coins = less worth per coin.

2 Likes

It’s an interesting topic. Until I understood a little on how the Safecoin will work, i thought the number of tokens was arbitrary, given the divisibility.

I don’t care if i own 1 bitcoin out of 21m total, or 0.001 of a bitcoin out of 21k. Although the former is easier on the eye - as would be 1000 bitcoin out of 21bn.

This has nothing to do with inflation. If the Bank of England decided to scrap the pound and just use pence, your bank balance would increase a hundred fold but it would impact neither your wealth nor the cost of goods you wish to buy. The money supply hasn’t been increased, just the unit of account.

The market capitalisation of a stock doesn’t change if they do a stock split.

This is also why i only care about the price of bitcoin as the sum of all bitcoin, bitcoin cash and gold.

But maybe there is some wiggle room when MAID token is exchanged for SAFE coin. People seem to have got their heads around 21m bitcoin and 8 numbers to right of the decimal - which is about 2^51. I am not suggesting that every MAID should be swapped for 2^19 SAFE, but while i am writing this, it occured to me that it isn’t so stupid, as this number doesn’t have to reflect what is shown in a wallet. 1 MAID = 1 SAFE = 2^19 “safeties” .

No idea if this works from a tech point of view, or indeed if it makes any sense within the project, or if changing 2^32 is easier, cleaner, more secure than creating divisibility.

1 Like

The problem with multiplying the #coins assuming each person gets the multiple per MAID, is the transaction rate. When buying something for 10 safecoins is 10 SAFEcoin transactions. But if we multiply by say 1000 to solve divisibility today then there will be 10000 transactions to do the same thing.

The other issue is that you will have to multiply every so often as the fiat value increases just to maintain the status quo.

This is where the balance method for the fraction of a coin solves all this since it allows dividing the coin billions of billions of times and more. And only adds one transaction to the payment process.

9 Likes

But isn’t it a problem if i only own fractions, say 10_000 x 0.0001 SC, and want to transfer 1SC in total? The total amount of fractions will also increase over time as more fractions are needed resulting in inefficient handling of SCs?

Thinking out loud here :

What if we have not only coins for amounts, but also “divider” coins ? Or “operator coins” ?

Dividers are single objects in Safe, just like Safecoins. They are piggybacked on whole coins, and cannot be separated. Once a whole coin is “marked” with a divider, the value of the ensemble is 0.5 the value of the original coin ( ie, for a /2 divider ) You cannot unglue them, and you cannot hide the divider.

Say I want to pay 3.5 coins. I own 4 whole coins.
When I want to make the transaction, my wallet goes to the Safe bank, or to the Safe bakery next corner, and politely asks for exchange : my wallet gives them 1 whole coin, and they give it back two " /2" marked coins.

So now my wallet can send 3 whole coins and a “/2” marked coin.

At the end of the transaction, I have a “/2” marked coin left. I can either spend it if needed, or wait until I have more, then I can exchange pairs for whole coins if someone needs divided ones : I become the “bakery next corner”.

If you put together 2 “/2” marked coins in a bag and shake it, the dividers self destruct, one whole coin is burned for recycling by farmers, and one whole cleaned coin remains.

We could have “/2”, “/4” , “/1000” dividers, and the day we need finer grains, we create /10000 ones, and so on.

Maybe multipliers could work too ?

To “create” dividers if the supply is short , the network would “spend” a whole coin with itself, and instead of having it recycled for a whole coin, it asks farmers to produce the corresponding amount of dividers/coins pairs.

This just popped to my mind as I was eating a sausage, and you will probably find why it cannot be implemented :slight_smile:

But you don’t hold many fractions. The balance is held in a network updated field of the wallet MD.

Any fractions are added/subtracted to/from that balance.

I did a whole proposal on it.

1 Like

And eventually any coin that is not being hoarded will have to be divided.

Also now you have 2^32 safecoins and maybe an equivalent number of divisions out there. So the supply gets doubled and dilutes the supply. And maybe many times the original divisions will exist. The reason is that when you divide a coin into two divisions the original is destroyed. Then that coin can be farmed. So in effect you doubled that coin and dilutes the value of safecoin.

Also its a lot of work for he network to be handling all these types of data structures.

1 Like

Yes, in the UI, but you still need to do 10.000 TXes.

Is there a way to tag each coin with a unique identifier that only the network would know such that the network would keep track of how much of a coin was spent or owned? What I mean is, let’s say I own 1 coin but want to buy a service for 0.75 coin. I complete the transaction through the SAFE network, which remains aware that 0.25 coin is yet to be spent; therefore, the network cannot allow another Safecoin to be farmed until the remaining 0.25 “original” coin has been spent.

Or alternatively, the network could allow only 0.25 “new” coin to be farmed and nothing more until the remaining 0.25 “original” coin has been spent.

Hmmm…as I write this, I can already see how this may not work. Imagine if the person who received the 0.75 “original” coin decided to spend 0.5 somewhere, and then the recipient of that 0.5 decided to use 0.25 somewhere, and so on. That would be a lot for the network to track to prevent double spending/coin creation.

The more I think of it, it seems like trying to solve the divisibility problem is like trying to reinvent blockchain technology. It would appear that blockchain–as an immutable database/ledger–solves the issue of double spending/creation. I’m going to re-read the blockchain on SAFE thread. Maybe there is something to be borrowed from blockchain in solving this matter…

Or what happens if a Safecoin doesn’t disappear forever when spent, but rather ownership permanently transfers to the recipient? This would mean that only 4.3B coins could ever be farmed (rather than only 4.3B coins could ever exist at once). Not destroying the coin would mean that you don’t have to worry about too many coins coming into existence or being spent more than once.

These of course–are a non-developer’s musings, so take with a cup of salt.

Is it really that hard for the network to track the amount of SCs as a number? The group which is has the least XOR distance to you (the group you’r in. We could change that by adding an offset to the net id) is responsible for tracking the amount of your SCs.
The amount of SC would be just a special type of a simple versioned MutableData.

@neo seems to have this covered. I’ll go back to my day job now.

1 Like

An Astroman’s work is never done

7 Likes

If i write LOL in capitals, will you believe me when i say i did actually laugh out loud there.

It all helps to get to level 2 though.

7 Likes

I won’t pretend to understand your entire post here but you got me thinking. What if we created a lower value altcoin that people traded in exchange for @neo 's SAFE notes? Think about Bitcoin compared to litecoin compared to dogecoin. Litecoin is worth less than bitcoin and dogecoin is woth less than litecoin. If you want to trade up you buy some litecoin with your dogecoin and buy some bitcoin with your litecoin. Similarily if say we had an altcoin that was worth say 0.1 in safecoin or that much in safe notes and another worth 0.01 in safecoin. Then we could label the two coins. Thus we could create small change. SAFE notes may or may not be more precise but having higher denominations might make things easier to understand. Instead of worrying about rounding to the 10th decimal point you just trade coins up or down. How many of what coin do you want? Just like regular money. A silver coin is approximately a tenth of a safecoin. A copper coin is hundredth. A red coin is a thousanth. So on and so on. (colors/names are arbitrary) But the point is to peg the smaller demoninations to a set value of safecoin, or more precisely a set amount of the SAFE notes. You could even get the network to automate the process. Insert amount of SAFE note and spit out appropriate number of coins of the correct amount just like an ATM cash machine.

Forgive me if I’m old fashioned and like dealing with cash and coins when calculating my money, even if it is electronic cryptocurrency.

1 Like