MaidSafe should hire @neo as their SafeCoin consultant :0 he literally talks about the coin properties every day on here. Seems to be the most open about this specific area of the SAFE Network
But a balance has all the benefits of splitting and does not have the issues around recombination or needing to split even further.
For instance if you only have a 12/13th of a coin but want to spend 1/64th then you need to do a split to say 11/13th and 819/832 and 13/832.
But when recombination happens it becomes messy. For instance how do you get the 1/13th and the 11/13 and the 819/832 and the 13/832 all owned by one person to be able then recombine them?
And if you took the concept of any splits can be recombined then that too is interesting. But like my example above even with this nice recombining you will still end up with 100 million people having billions and billions of âlose changeâ objects and with micro transactions this could easily require 1000âs of billions of objects because very few people will have a full coin when the vaule is high enough for âsplittingâ
Whereas a balance allows simple transaction payments of micro-transactions or nano-transactions and recombination automatically done when someone get their balance to 1 safecoin worth. Also the number of extra data objects to store all the sub safecoin amounts is Nothing since it just uses the required MD for a walletâs data structure. Want to pay 1/1000000th of a safecoin then just send it and the transaction simply takes 1/100000th from the balance and adds it to the recipients walletâs sub-safecoin balance.
Splitting into denominations or fractions will cause there to be from 1000 times the data objects to a million times depending on how people do transactions and how popular micro-transactions are
Now nano-transactions would not be feasible since just one safecoinâs worth of nano-safecoins would be 1 billion and so just 10000 coins transferred to nano-safecoins might swamp the storage of the network. Yet a balance system does not see any increase in storage requirements of the network and only require one transaction if its 1 nano-safecoin or 999 nano-safecoins.
Hey guys, love the discussion.
I did some playing around with the idea of @nice yesterday, the repo can be found here:
https://github.com/oetyng/SAFECoin.Simulations
Next up is to try out @neoâs idea.
Very interesting. Shared ownership is a definitely a dead end then⌠or is it?
There is still no record of how ownership of a single coin has changed over time.
All you know is that A) One set of IDs that previously owned a coin, and B) the current set of IDs that have ownership. Itâs not like you can recreate a block chain record of all transactions⌠right?
For example, if a given version of the network allows for up to 4 owners. How do I discover other IDs on the network any differently than if I completed 4 separate transactions in a row? Is it a situation where a bad actor could gain ownership of a portion of a coin and then monitor the ids of how other owners are changing? If so, then yeah⌠that would definitely be a bad/dead idea.
I think your suggestion is unnecessarily complicated. Consider the following quote I pulled off of the old âSafeCoin Inflationâ thread:
This is the best suggestion Iâve seen when talking about SafeCoin divisibility so far, mostly because it mimics everyday life transactions in cash and coin. Alternatively, increasing the total amount of SafeCoin ie. inflation or partial SafeCoins from a user perspective is a horrible idea. Neglecting inflation issues, in real life the different denominations for any given fiat currency (.01, .05, $0.1, $0.25, $0.50, $1,$5,$10,$20,$50,$100 etc. in USA) exist and circulate independently. When you want change for your purchase at a store, they donât tear up your $1 into 4 quarters and hand over the pieces, you make a trade with the seller between âdenomination networksâ. This reinforces the idea that there is little need to worry about divisibility within the SafeCoin protocol, because once the base network is running and stable, there is no doubt that alt-SafeCoin networks will arise with slightly different properties that will serve this function. I would think the most likely trade-off with the different alt-SafeCoins would be tradeoffs in transaction speed vs. data redundancy or security. Iâm no expert on the SAFE consensus code, but as I mentioned before, consider a âPlatinum SafeCoinâ network that requires 128 consensus nodes in order to validate a transaction and makes 128 redundant copies of the data, compared to a âSilver SafeCoinâ network that only requires 16 consensus nodes and makes 16 redundant data copies. Youâre mostly likely correct that trying to program this into a single network would be a nightmare, but there is no need to assume that the original SAFE network will be the only SAFE network. For now, I think the devs have made a good choice to focus on a single system with reasonable consensus requirements and redundancy, ie. creating the initial âGoldâ SafeCoin standard.
The 32-bit safecoin address space could be split up among a number of denominations. Large denominations with few coins, small denominations with many. A coinâs value is determined by its address. There is no need for divisible coins or to deviate from the original safecoin idea significantly.
The specific example below has over 300 times the granularity of bitcoinâs 2.1 quadrillion satoshis with just 2³² safecoins. It works for micropayments and it uses few coins for everyday transactions and huge amounts alike.
This demonstration uses 40 denominations of the 1-2-5 series, and 1 is conceptually equivalent to 1 satoshi. The lowest 25,000 coins belong to the largest denomination (10,000,000,000,000 safecoin-satoshis), the next 32,825 coins to the one smaller denomination (5,000,000,000,000), and so on. The number of coins grows by 1.31299858325 at each step which fills up the entire address space at the final, lowest, denomination with 1,023,872,905 coins, which is about 23.84% of the total supply.
This system doesnât upset farming because over 55% of the coins are of value 1, 2, or 5 and over 80% of them are below 50. When somebody gets lucky and farms a coin from the largest denomination, that is worth little more than 0.0015% of the total market cap so it canât affect the valuation of safecoin seriously.
Almost a quarter of the coins will stay equivalent to the original safecoin, so everything can work as it was originally designed. For example, if the cost of a PUT is fixed at 1 coin, one can use their 1-coin safecoins for that and the rest for storage of value or commerce. When there is a need for giving change, that and the paying should be turned into a single atomic operation. Such payments could be represented by special escrow blocks.
Finally, the possibility of winning a large amount makes farming exciting, and hype helps adoption.
Please note. This was started as a separate thread. Mods merged it here. I donât know why. It solves similar problem. But without dividing coins. So no divisibility.
Wouldnât this essentially be a form of inflation like we now have with debt based fiat currency? Eventually this would lead to worthless coins except we couldnât wallpaper our houses with them.
Except when the government was on the gold standard. You youâre basing your assumptions on fiat. Crypto is more like gold or other resource based currencies like precious metals and the like. Itâs a commodity. So no the government WOULDNâT just stamp more coins as the population grew. Instead the DEMAND for coins would increase the value of the coins. So the buying power of a SAFE dollar would increase over time as the demand for it went up. Subsequently so would the buying power of safecents. Thatâs why youâd need further fractions or lower valued coins. But I see your point. Whereas math is infinite, an altcoin is a set number of coins and eventually needs to be replaced by another altcoin. And since you canât estimate how many youâll actually need in a growing population the math works better.
However if the network can create and destroy coins could not you get the network or an app to create and destroy small change as is needed? So instead of having a set number of alt coins created one would plug in a safecoin and get the appropriate change. I see what you mean by the problem of a billlion safecoin in change floating around. What if small change had an expiry date attached to it? Nothing unrealistic but something like every 6 months if you donât spend it or exchange it then it gets returned to the frozen safecoin it spawned from? You donât lose your money so much as it converts itself back into safecoin if you donât use it. This melts the safecoin and gets it back in circulation. After 3 years if you STILL havenât used that change the network writes off petty small change, repossesses frozen safecoin and puts them back in circulation. In short itâs in a userâs best interest to recombine small change as soon as possible and use whole numbers as often as possible.
So what youâre saying is once split each coin becomes itâs own unique object and unlike physical coins you canât just group them together again. Two coins are literally never alike, theyâre like snowflakes, and you canât join them together once you divide them. Then wouldnât the answer be to have the network assess their value then melt them (destroy them) and pump out a new coin of a larger value? In short if you have two unique swords that could never be combined you donât try. You melt down the metal and build a new sword. So you take coin A with ID 1 and Coin B with ID 2 and record their financial values, destroy the coins and pump out coin C with the sum of the financial values of Coins A and B and assign a new ID to it.
The issue is not revealing total knowledge but the fact it is revealing more knowledge than before. And the more knowledge you reveal increases the potential for information leakage.
Just look at what the LEAs do, they look at purchase times and people spend times and have convictions based on that information. We might think that an anonymous payment system is making people safe from being found out, but by using other information the linkage is made.
SAFEcoin removes time and only has sender/receiver. So the only info is that the receiver knows the sender for that coin. This is still some leakage of info but considered the minimal amount so the receiver can verify what the coins were for.
There is in the works a optional receipt system were a copy of the coin is made as a receipt. Now this optional so not considered a problem.
This is more for higher denominations and does not have the issue with scaling
The issue here is that once you go the other way down to sub coin amounts of micro and nano and smaller amounts. The scaling does not work in favor of having data objects as you coins.
Even using this logic which has some merit for higher denominations, it cannot handle 10000 coins that have been converted into nano-safecoins. And if you go lower again then the earth would have probelms even storing such amounts of data objects
And in my opinion backfire badly since MOST people will be paid a lot less than they would with the current system. So a few lucky ones and masses of unlacky ones.
No thanks. I donât buy lottery tickets for the same reasons. Its a totally unfair system and designed to keep the masses poor while hoping/praying for that big win
NO, because everything is scaled so that every one gets the same worth.
The only change is that farming rewards occur 8 times more often but each one is worth 1/8 of what it was with the old coin. So the network is paying out the same value, just spread better.
So with safecoin the farming rate was say 1 safecoin per million GETs
With the same conditions the farming rate would become 1 safe8coin per 1/8 million GETs This is 8 safe8coins per million GETs - exactly the same value generated - no inflation.
An object costed 1 safecoin becomes 8 safe8coins
You had 100 safecoin you then have 800 safe8coins
Its like saying we will talk cents instead of dollars. You have the same amount of wealth just the numbers are bigger
Inflation is where something is now costing more wealth per item.
Hype is only an interesting side effect. Rewards more-or-less even out over a longer period so there are no unlucky masses. Though it favors those who contribute consistently. Itâs some additional randomness in exchange for broadening the scale of values without adding much complexity.
The example is just an example. It used 40 denominations and 25,000 coins for the largest. You can come up with something that works by balancing those two things. If you use fewer denominations, the difference between the rewards becomes smaller, but the market cap will also shrink. Or you can allocate more of the coins to the largest denomination.
The small chance to win a large amount may excite a number of people, but thatâs not why this is an interesting idea. These are:
- Farming can stay as it is.
- No need for divisible coins.
- The number of coins for an amount doesnât depend on its magnitude.
- No need for wallets or other data structures. Coins can be independent blocks with just an owner.
- Payments can work as before. (There may be a demand for a simple escrow service to facilitate giving back change.)
No that is not right because a few get most of the coins, so you cannot have it even out. Thats the major point.
If it takes a day to get one coin or a week to get one, and 90% of the coins are worth much less than the original coin, then those getting one coin per week have on average one coin worth morethan a safecoin per 2 YEARS. And on average that coin is worth less than 5 x a safecoin. Even one coin per day is the same.
So the lucky 5% get rich and they run farms with that wealth so they have so much more opportunity to get rich again.
No it is a very unfair system.
The purpose of having one safecoin per 1/farming-rate GETs is to be FAIR, to treat everyone the same. That is an underlying principle of the SAFE network. Its not to make people rich by unfair means, but to give that poor person the opportunity to earn something from farming the most valuable resource in the world. Unfortunately SAFE cannot help those who cannot farm, and that at this time is beyond the ability for SAFE to help. Thus the foundation is formed.
That is what the whole proposal you gave is about. It is the essence of fiat divisibility
But cannot handle the micro payments on the scale we expect to see. Millions and millions across the world per hour or per day.
The the nano-transactions for IoT and billions per day.
A wallet is just storing your addresses. How else are you going to remember your coins. Or do expect that magically the network knows which addresses are your when you log in. Obviously there is a wallet to record the addresses. The network is not going to scan every coin address to see which are yours when you go to spend or ask for a balance.
So a balance method uses no extra data structures.
Yours will use 1000s of billions of data structures so you can provide micro-payaments and nano-payments when we expect upto billions of them a day. How do you handle 1/1000000000000 of a safecoin. (Say farming rewards when farming rate is low.
This method uses the 4 billion addresses as the original safecoin (not 1000 billions) but not all are worth one safecoin.
The example used 40 denominations, but it could use more or less. The smallest could be 1 safecoin or, as in the example, it could be a safecoin-satoshi worth 1/10000000 safecoin. That is just an agreement.
There are few parameters:
- How many coins total. Fixed at 2³² so the example followed that.
- How many denominations to use. I used 40 with the 1-2-5 series. It gives a range of 10š³.
- How many coins are assigned to the largest. I used 25,000 because not even one of these big coins canât affect the value in circulation much.
The rest depends on them:
- How many of the smallest denomination to add up. It came out to just over a billion. About 23% of all coins.
- How big is the market cap. Somewhere over 6 billion.
Technically simple, and unfair only if randomness is unfair. It is. Thereâs no level field. Born in the right country? The wrong one? This method is not trying to fix that. It is trying to make safecoin more useful without adding much complexity.
So how can you provide the billions of micro-safecoins that will be needed. Or the 100âs of billions of nano-safecoin for IoT
Also your system does not limit the value to 2^32 safecoin worth. Thus the ICO rules are broken. Thus you cannot implement this without lawsuits on Maidsafe
That may be outside the scope of safecoin. No reason to shoehorn all use cases. Safecoin is tied to farming. It needs a small amount of coins to pick from. Iâd like 2â´â° but 4 billion is okay. IoT has very different requirements. Passenger jets arenât good as fighters, but that isnât a problem. My method doesnât interfere with the basic mechanism of safecoin so it wonât break it or complicate it. It can facilitate very small and very big payments but it canât do billions of transactions. Not sure thatâs a problem. There are others.
is and has been a major call for divisibility apart from the obvious reason of SAFEcoin being worth too much.
With IoT to reach 100 billion devices by the time SAFE releases then reliable micro/nano transactions will be a ever so much bigger draw card than any unfair lottery. And likely to see every home security system switch over to SAFE comms within the decade
Then people want to tip blog entries and at 10$ per safecoin 1 micro-safecoin is $0.00001 or 0.001 cents. So not even a micro tip but a thousandth tip. To get true micro-tipping you need nano-safecoin.
So YES micro and nano safecoins are going to be a huge drawcard to potentially every user of SAFE not just potentially every farmer. That drawing in 100 times the people to use safe.
But unless you can solve the future then why adopt a system that breaks one desired goal of fairness at the core level and the ICO legal promise of what SAFEcoin is.
Now when SAFEcoin reaches 1000$ in a few years /decade then a micro-safecoin is worth 0.1 cent.
See also
The use of 32 or 64 bit integer addresses is a nice means of achieving divisibility. This is the same principle employed for adaptive mesh resolution in large scale HPC codes for computational fluid dynamics and solid mechanics. A grid datastructure is represented by these addresses, where in some locations of the domain you want large elements, and other locations require small elements. Typically, the resolution and refinement is continuously changing through time which would be analogous to exchanging safecoin denominations. A single element is identified by two integers, its address and level. The data structure is traversed by reading the address bits sequentially from left to right for a given number of levels. The use of this datastructure offers a form of compression since you donât need to build the entire tree initially to do the traversals, it can be refined and increase in resolution until all addresses and levels have been assigned. My brief description doesnât do justice to the elegance of representing tree structures by bit sequences. This is an old idea related to âtriesâ, but a recent rediscovery of the techniques are well described by:
Frisken, S.; Perry, R., âSimple and Efficient Traversal Methods for Quadtrees and Octreesâ, Journal of Graphics Tools, Vol. 7, No. 3, May 2003.
This looks awesome. It is intuitive and in-line with everyday denominations that people are accustomed to seeing in their pockets. I would only add that the binary series (1-2-4-8-16-32-64) used to encode trie/tree structures might allow for efficient spatial organization of the network, but this is probably not desired if complete randomness is required to ensure security.
The same scheme you describe using 64-bit addresses would cover any foreseeable need for nano or pico-transactions years into the future. Nice work!
Just have a think of the number of data objects if you use 64 bits.
This is a major issue once you go micro safecoin transactions let alone nano safecoins
2^32 is 4 billion objects, 2^48 is around 281000 billion objects and 2^64 is 18 billion billion objects.
Now if a coin requires a minimum of 10K to store it then 2^32 is 40000 billion bytes. 2^48 is 2 billion billion bytes (2814 PB) and 2^64 is 184 million PB
Imagine trying to store all these coins let alone trying to operate them. There is a reason 2^32 was chosen. Tying to operate 2^48 coins ignoring the massive storage needed, is going to chew though the resources of the network. 2^48 is basically impossible for a decade and more, we need the disk space for actual storage since the network is for storage not currency. And 2^64 is fantasy stuff for a very long time.
Where as a balance method gives us (for sub-safecoin) all the denominations you would ever need since its a simple decimal value. Only need zero more data structures/objects to store it. And can keep to the legal requirements of what was said in the ICO
The method described is a very nice idea and fits in with denominations sounds great and novel but is not practical for implementing and keeping to some requirements.
- Fairness in rewards,
- legal requirements of the ICO,
- keeping storage requirements reasonable while providing micro and nano safecoins
- keeping the code KISS