Is quasi-infinite divisibility useful?

Yes, I understand what you are saying and what you have said. I fully understand your reasoning and felt similar at first glance. I also see the point you have made on how uses for (1/2^64) sized divs would likely satisfy all monetization requirements and if they don’t it could be fixed with an update at that point in time. This isn’t a criticism of your proposal, or an attempt to change your mind (except maybe that you at least consider uint32[2] rather than uint64) or serve as my hobby-horse as you would say. It’s just a prodding at the opposite extreme of the cannibalism thread where only the use of 2^32 network objects was my own self-imposed constraint in that thought experiment. I thought it might be fun to probe whether or not forum readers had any ideas as to applications or use cases that near infinite divisibility would/may open up or solve. In no way would I ever be so haughty as to demand features that could require holding up launch; so if you think this type of thread/thought experiment is going to be counter-productive in the long run I’ll leave it alone. That being said, I wanted to throw a few other thoughts out there for you before the thread is dead.


TL;DR

Very true, but which 1 billion dollars are you referring to? Australian? USD? Zimbabwean? The current system of measuring worth is always in flux. Consider 1908 dollars vs. 2008 dollars vs. 2108 dollars… can we predict the world’s economic future with any accuracy? (I know this is what you would call sidestepping… just trying to add some humor. ) Regardless, infinitesimal yet finite amounts of safecoin may have other uses inside the network beside a direct off-network relative purchasing power. What might be those uses? I don’t necessarily have the answer for that right now, hence the OP question. (Hardware/software performance metrics? Orthogonal Persistence? Votes/Likes? A sentiment of moral support for an open source project? Guilt-free Gambling?) Yes, I know that minimum PUT charge is a deciding factor.

I agree on face value it might seem that 2^128 divs per safecoin is crazy for all practical purposes (I’m hoping someone reading this has a practical example…). But isn’t a statement like this contrary to your “proving a negative” assertion from past conversations? Also, you’ll need a bigger number to represent all the atoms on earth though, something closer to 2^167 bits at least if this reference can be trusted. And what do you say to the humans who bring SAFE with them to colonize Mars? They might like an Earth backed currency out in space, literally… but I digress. :upside_down_face:


For just a brief moment let us agree that the least number of bits that are required for essentially infinite divisibility is 128, corresponding to ((2^128) - 1) divs. Now, to get closer to your point of view let us consider not the quasi-infinite divisibility of a single safecoin, but rather the sum total of SAFE network currency as a whole. Since the number of safecoins is and forever will be hardcapped to ~2^32, we’re left with 96bits worth of divs per safecoin (ex. safebalance_96bit_divs = new uint32_t[3]) to meet the minimum requirement for infinity if we are willing to agree and accept the consensus based IEEE 754 standard definitions.

  • uint96_max —> uint32[3]_max = 79228162514264337593543950335 divs/SC

This is a big number, but not quite as insane when compared to the other IEEE 754 extreme of 2^1024, and it would technically still meet a minimum standard for infinite divisibility of the network’s internal currency. Coupled with the network farming mechanisms of recycling coins when computing resources are purchased, consider PR optics and other non-technical objectives. The common and annoying questions that often comes up in the forums consist of, “When/How/Why will safecoin be divisible?” While it may still not be enticing to the engineering types and practical minded such as yourself, increasing to a minimum of 96 bits worth of divs per safecoin may be desirable for the marketing opportunities alone. Project SAFE could then advertise that “Safecoin, the currency inside the SAFE network, efficiently provides near infinite divisibility.” Anyone who would scoff could be pointed to IEEE 754 and the layperson would find themselves even more intrigued.

The problem with agreeing to a “lesser infinity” is that one is always left with sour feelings of inadequacy. Considering that the Project Safe whitepaper described the possibility for eventually achieving 2^248 bits of divisibility using “classic safecoin”, why not just allow for a balance system like you proposed with multiple precision (uint32[8] or uint64[4] for example) that more closely matches the div resolution hinted at in the whitepaper? Sets of uint32 are nice since this keeps the aesthetics of the original ico stipulations of 2^32 safecoins with 2^32 divisibility. This also opens up the opportunity for a simple non-decimal denomination system for each 32bits (2^32 troons/SC, 2^32 irvines/troon, 2^32 divs/irvine, etc.) since about 4 billion parts per denomination level is a lot easier to manage for the layperson, as compared to about 18 million trillion via a uint64. Although, even in this case I’ll admit that even in this example more than four levels of denomination becomes unruly. Of course, due to the high degree of divisibility the customary decimal transfers are trivial, it’s just that trading in @happybeing’s troons may be just has fun as safecoin from time to time. :smile:


Yes, the reasoning for the minimalist KISS approach of a single uint64 is quite logical; but at this instant the major concern I would see against adding a few more bits is “the waste of space” for functionality that (subjectively) isn’t seen as being necessary in the short term. However, the problem with the “wasted space” perspective, as you’ve proved to me prior, is that it becomes a question of relativity for a maximum-growth network regime. Maybe we can bound the magnitude of this wasted space? I know the following is also completely subjective, but let’s play with some numbers:

  • Average number of accounts controlled by a unique human including IOT management = 128
  • Storage required per unique human per 32bits of divisibility = 512B
  • Assumed network redundancy: 16
  • Network storage per 64bits of div/SC per unique human : ~16.3kB
  • Network storage per 96bits of div/SC per unique human : ~24.5kB
  • Network storage per 128bits of div/SC per unique human : ~32.7kB
  • Network storage per 256bits of div/SC per unique human : ~65.5kB
  • Network storage per 512bits of div/SC per unique human : ~131kB

Relative to all the other data stored by a single user, any one of these divisibility levels requires negligible storage resources. If I am not mistaken your balance method incurs O(1) constant time/bandwidth computational complexity per fractional transaction, regardless of size. If this is the case, then why not just let the People have a gratuitous number of bits for quasi-infinite divisibility to experiment and play around with? It then becomes a non-issue, forever, since people could never complain if the amount of divisibility they have been given is essentially infinite. In SAFE, it’s about wants not needs right? It’s about secure access and letting the user decide, right? You may want IOT, I may now want infinity, others may want the network bots to serve up a cup of tea, but none of these are a need or requisite for launch or otherwise. Humans don’t really need computers either, but they’re fun tools to have around… :wink: