Using new (modified) MData to Model Safecoin

Been suggested a number of times in the other forum.

The main drawback of that is the transaction load. When you get to microSAFE or nanoSAFE and someone only has the payments for farming rewards that are nano (maybe micro) SAFE MDs. Say after a time they served up 100 million GETs and has 100 million times 7 x 1 nanoSAFE. Now they want to pay for an item that costs 1/2 of a SAFEcoin. The network does 500 million transactions to transfer the amount.

There are simpler ways that would reduce that to one 2 transactions.

1 Like

Nano divisions may be overkill. Even micro divisions. I was thinking that the smallest denomination is milli: 0.001 safecoins. And the largest denomination is 100 or 1,000 or something like that.

The automatic exchange service is very efficient since it just burns coins and replaces them with new coins of other denominations.

And transactions between wallets become very efficient. For example if Alice wants to send 4,500.75 safecoins to Bob, then that’s only 21 MutableData objects to transfer: 41000 + 5100 + 70.1 + 50.01.

The plan has always been for micro transactions to be possible in the future. You mentioned earlier that planning for the future is important. And you are correct so micro is definitely needed and nano gets close to paying for each GET no matter the conditions.

But when its possible to do a sub-safecoin worth of transfer/payment with 1 to 3 transactions depending if a coin needs to be divided then that has to be so much better than the potential of many hundreds of transactions if the person only has 0.001 of a safecoin MDs

And the sub coin amounts can be much lower than nano (1/10^9), it is very easy to have 1/10^18 as the smallest amount. And no extra load if transfer/payment is 0.0000000000003476374 or 0.1

Also instead of the potential after a few years of having half (or more) of the coins as 0.1, 0.01, 0.001 safecoin MDs. you only use the wallet’s MD with a network updated division amount. That means no extra MD’s for division whereas having MDs for 0.1, 0.01, 0.001 denominations could mean anywhere from 1 to 1000 times the safecoins generated in extra MDs

BUT only if she has those denominations, or she has to ask the network to convert all of her sub coin MDs into those values first. This involves transactions per MD being combined. If the network rewards to her had been 100 thousand 0.001 denominations then there has to have been 100 thousand additional transactions to recombine them into higher denominations.

tl;dr
Simply put,

  • it is not necessary for separate denominations to divide safecoin
  • separate denominations is very wasteful on MD storage
  • separate denominations dramatically increases transaction load when payment includes sub safecoin amounts (MDs)
  • Storing divided coin amount in wallet MD is not affected on how the coins are divided whereas denominations can involve from 1 MD up to 1000 * amount to be transferred (actual number is dependent on the users current holdings.
1 Like

The idea is that wallets automatically convert coins in the background to optimize so that a low number of MDs are maintained. Yes, if let’s say that a thousand 0.001 coins have been farmed then 100 + 10 + 1 automatic exchanges are done by the wallet to convert the coins into one safecoin of denomination 1.

But the transactions between wallets, which is important from an end user perspective, are very efficient with denominations.

EDIT: In practice the automatic conversion done by the wallets is gradual for farming. For example if 19 0.001 coins have been farmed then the wallet can convert 10 of those coins into one 0.01 coin. And when the wallet has nineteen 0.01 coins then ten of those are converted into one 0.1 coin and so on.

Yes, and that requires transactions for each and every reward payment. So 100 million reward payments EACH requires 2 additional transactions to take and combine the 0.001 reward with something bigger. Or if you like 11 additional transactions to combine each 10 into one. 10 transactions to “burn” the 0.001 amounts and one to combine. This is occurring for every ten rewards. Its a massive overhead for the network when its simply not needed, especially when it can be just the transaction to pay the reward without the additional transactions to combine MDs.

So the potential is there for up to 1000 times the transaction load for just milli-safecoins as the minimum

You cannot get away from the additional transaction load having separate MDs for various denominations.[quote=“Anders, post:24, topic:398”]
Yes, if let’s say that a thousand 0.001 coins have been farmed then 100 + 10 + 1 automatic exchanges are done by the wallet to convert the coins into one safecoin of denomination 1
[/quote]

NO its 11 transactions per 10 0.001 payments. Each 10 x 0.001 reward payments made requires combining to 0.01 Then each 10 0.01 need 11 transactions to combine to 0.1 then 11 transactions are needed to combine 10 0.1 to 1.0

So 1000 reward payments of 0.001 requires ADDITIONAL (at a minimum)

  • 11 * 100 for the recombination to 0.01 MDs
  • 11 * 10 for the recombination to 0.1 MDs
  • 11 for the recombination to 1.0
  • total of at least 1221 additional transactions to do that recombination of 1000 x 0.001 rewards to 1 safecoin.

But that is not the total. It took 1000 transactions to do the reward payments, so 2221 transactions (at least) to get you one safecoin from 1000 reward payments of 0.001

Whereas using the method suggested last easter there is the 1000 transactions for the reward payments and 1 final transaction for the conversion of the balance (which reached the value of a coin) back into a coin.


Of course denominations goes nowhere near solving how to do micro transactions. And people want nano as the minimum possible with any division system.

Yes, when 10 coins are exchanged for 1 coin, then 10 coins need to be burned and 1 new coin created. I should have made it more clear.

If the farming reward is 0.001 safecoins, then yes that means an additional load. But if the farming reward is larger then there is less extra load.

The best solution is if micro transactions can be done directly with safecoins. My solution is only for ordinary payments and farming. But I thought it would be useful for efficient wallet to wallet transactions.

I doubt the reward will even be 0.001 for the majority of the time. Just think about world wide serving up of data and 1000 GETs per SAFEcoin. And thin consider the 100 million people using SAFE per day. We have to consider at least that since the network is designed for much more.

There will be statistical times when PUTs are low for a period and GETs are high. 100 million people GETting a few thousand chunks in a day including MDs (3K to 1MB each chunk) and paying in 0.01 denominations will represent a very large amount of coin. 10^8 people * 10^3 chunks ave = 10^11 rewards of 1/10^2 (0.01) ==> 10^9 coins worth PER DAY in rewards.

The only way that can be sustained is to have a lot of PUTs occurring at the same time. Even 0.001 as the minimum GET amount is too much in a sustained manner.

At 0.001 reward minimum means that PUTs are > 0.001 and because minimum denomination is 0.001 then minimum PUT amount is 0.002 So you would then be saying that to upload a 4.7 GB DVD movie rip will cost a minimum of 9.4 safe coin.

When you start thinking about it 0.001 as a reward will be during times when space is scarce and the network wants more farmers. The current algo allows for GET reward to be as low as 1/10^18 when available space is plentiful. Only when available space is critical will the reward be anywhere near 0.01 per GET.[quote=“Anders, post:26, topic:398”]
The best solution is if micro transactions can be done directly with safecoins. My solution is only for ordinary payments and farming. But I thought it would be useful for efficient wallet to wallet transactions
[/quote]

Yes and that is what was proposed last easter and I plan to expand on that soon. Using a balance in a Safecoin like MD (wallet master MD) will solve the additional load problem, allow division to 1/10^18 of a coin as easily as 1/10 of a coin and be secure.

Denominations maybe an outwardly elegant solution, but when using actual storage objects to implement it, it becomes cumbersome and a heavy load on the network.

Its only because you suggested using denominations for Safecoin division that I pointed out these issues. For a general transaction coin/token apart from Safecoin then the there maybe no issues in using it. The problems come from the uses of Safecoin, its more than currency and heavily used by the network for its operation and the use of amounts as low as 1/2^63 (~ 1/10^18)

3 Likes