The awesome thing about Safecoins is that they are actual coins: they exist on the network as actual objects; one can own a coin, pass it on, burn it, etc. Payments are like those in real life: no history is kept as we exchange payments (not as a side-effect; we may or may not keep records of payments, but it’s not part of the system.)
So, here I am, joining in with the fad. This coin (name pending) uses memory and computing power as its basis, much like “classic” cryptocurrencies, where your mining gear doubles as a heating system for your apartment I support solar.
Instead of divisibility, I’m introducing denominations. This way, we can use the same mechanism (i.e. no virtual whatnots just to allow for divisibility) for micropayments and buying small islands while retaining the concept of discrete coins.
It’s nothing revolutionary, just a combination of existing ideas:
Let’s have a series of denominations, following the powers of 2, each with a fixed supply of coins. With properly chosen parameters, this can result in a supply of coins and market cap that approximate real-life requirements.
A coin therefore is the combination of a denomination (signed 8-bit integer) and a serial number (unsigned 32-bit integer).
Vaults determine the block address of the coin based on a hash of this 40-bit coin id. This makes it easy to look up a given coin and verify its existence.
Vaults must check if this block is already taken (in which case: sorry), and if the given nonce (see later) satisfies the requirement. They can decide about the lowest/highest accepted denominations as defense against DoS attacks.
Coins are mined:
The address is combined with a nonce, pushed through a hashing algorithm; it’s found if the result is smaller than a static number.
The difficulty depends on the denomination as this:
The memory requirement doubles with each larger denomination.
The number of hashing steps almost doubles with each larger denomination.
In effect, the most economic choice is to go for the larger possible denomination.
The hashing algorithm needs the original address and nonce at each step to make pooled mining infeasible. The miner needs to know everything at each step to be able to continue, so there’s nothing to hide that can be used for the pool.
Coins inflate very slowly as memory and computing power are becoming more available. It would take years (decades?) for the next higher denomination to take the place of the current one.
Wallets would need to handle matters such as keeping the right mix of coins, handling rounding errors, exchanging them when necessary, etc.
Sanity check: We could cover just beyond the current USD coin & bill market cap and number of coins/bills in circulation with about 30 denominations of values between 1e-6 and 1e+3 USD. Having very small denominations would allow for micropayments.
The management of different denominations seems to be the tricky part. Let’s say that Alice has a coin of denomination 4 and wants to send 2 coins (one coin of denomination 2 or two coins of denomination 1) to Bob who has no coins. If you can achieve that with some automatic exchange service or split functionality with sufficient efficiency then I want to copy that solution.
I meant in the example that Alice only has one coin with the denomination 4 (and no other coins). This means that her single coin has to be exchanged or split into several coins with lower denominations.
Well, I guess we have to deal with this problem in real life all the time, and the world happens to work just fine. We always have a bunch of various coins (I even hinted at that wallets will have to take care of maintaining a level of variety) and I’m sure somebody will make exchange services for the times when we don’t.
I guess you’re right in that we’ll need some “management,” after all. Let’s say Alice owns 3 coins to Bob, sends him a 4-coin with a note that she expects 1 coin back. In cases like this, we’ll need a kind of authorization document, handled by the Vaults:
Alice could say “here’s this 4-coin; change the owner to Bob if he sends me 1 coin in return”
Bob would append a response saying “okay then, here are these two 1/2-coins”
Once the Vault sees this (with groups doing all that cool quorum magic, of course), it executes the transfers atomically, then deletes the document. These cases, when we can’t just transfer the exact amount, will have an overhead cost because of the additional document involved. In many cases, the wallets could just agree upon an acceptable rounding error.
The problem is different to the real world in that there is a penalty for holding small denominations in the real world - they become difficult to hold and use. Similarly there is a penalty, well difficulty, in acquiring a large proportion of all the larger denominations.
In order to freely exchange denominations, everyone had to be confident that they won’t become scarce. But if a wealthy group could capture a large proportion of the smallest denomination, it would cause problems for everyone else (and ways for the group to profit from that). So there is an incentive to do this which is not present with fiat money.
I think the key to any multiple denomination scheme is ensuring that denominations are readilly exchangeable at negligible cost, and the issue I’ve highlighted would need to be solved. Otherwise I’ll grab loads of the smallest denomination and force you to pay double if you want any.
I disagree with this, there are places like Argentina where you will always have issues with the lack of change/smaller denominations, to the point I’ve been wondering if this is a real issue or just a cultural and/or psychological problem. I think one of the problems is that ATMs give you only the highest denominations bills in order to be able to deliver more money, and I think this happened due to inflation. It’s not like in the USA, Canada or the UK that ATMs (in my experience) always give you bills with lower or equal denomination to $20.
People don’t want to change your money for smaller denominations because they then have issues trying to pay someone else with high denomination bills. It’s really annoying, sometimes you have to wonder around to find someone willing to accept your high denomination bill for a very low price item you are trying to buy.
Some years ago, the 1 peso coins were being sold to a higher price in Bs.As. Back at that time, the only way to pay for the local busses in all greatest Bs.As. was with coins (no bills or RF cards like they have now) on a huge machine located inside the bus, and the coins became very scarce, people were buying coins and paying more than $1 for a $1 coin, because they needed to take the bus to go to work…I know…insane but real!
Well, you can’t ask for double because I would just use the next larger denomination instead
How would one go about collecting all the coins of a given denomination? It would take a lot of time even if it’s possible. Let’s not forget they should also collect the coins from at least a few denominations below the targeted one, or else people would use those instead, and then one or two denominations above, or else people would just accept the slightly larger rounding error than before.
Also, driving up the price of one denomination is likely to ripple through the whole thing (it would have the time, as this is not something that can be done overnight), which would render the operation meaningless.
We would have a little more finer grained set of denominations with a much smoother distribution of coins. We would also have wallets that would spend your coins carefully, making sure you had a variety of coins if you need them later.
I don’t necessarily find them satisfying either. It would need some modelling (if at all possible) to figure out how such attempts affected this thing without actually building it and seeing how it worked.
As as oursider I still marvel over the ability to create a fungible class of things (coins) and be assured that despite their virtual almost instantaneous nature they are not counterfeit.
Its like identifying a particular twin among a set of truely identical twins. It must be a member of the class and its actual legetimate right to existence must be verifiable efficiently and accurately.
Mullah Nasaridin walks into a bank and asks the teller: have you ever seen me before? Then how did you know it was me?
What if someone could counterfeit? Would it bring it all down? It doesn’t with physical coins. Its strange how much the world requires us to trust without the capacity, energy or inclination to practically do so