Tonal Bitcoin: Difference between revisions
(55 intermediate revisions by 13 users not shown) | |||
Line 1: | Line 1: | ||
Tonal Bitcoin is a representation of the Bitcoin | Tonal Bitcoin is a representation of the Bitcoin system aimed toward people who prefer the Tonal number system. | ||
== Number system == | |||
The Tonal number system is an alternative to the decimal and SI ("metric") system, which improves usability by allowing for infinite binary division (note that Bitcoin protocol support is still finite). | |||
Instead of counting: one, two, three, four, five, six, seven, eight, nine, ten, eleven, etc... | |||
In tonal, you would count: an, de, ti, go, su, by, ra, me, ni, ko, hu, vy, la, po, fy, ton, ton-an, etc... | |||
This means you get common binary divisions like one sixteenth (0.0625 in decimal) as a clean number: 0.1 in tonal. | |||
The tonal number system, prior to Bitcoin, already defines everyday units of measure including [http://books.google.com/books?id=aNYGAAAAYAAJ&pg=PA30#v=onepage&q&f=false lengths], [http://books.google.com/books?id=aNYGAAAAYAAJ&pg=PA32#v=onepage&q&f=false time], [http://books.google.com/books?id=aNYGAAAAYAAJ&pg=PA37#v=onepage&q&f=false capacity, weight], [http://books.google.com/books?id=aNYGAAAAYAAJ&pg=PA38#v=onepage&q&f=false power, gold/silver coinage], [http://books.google.com/books?id=aNYGAAAAYAAJ&pg=PA43#v=onepage&q&f=false calendar], [http://books.google.com/books?id=aNYGAAAAYAAJ&pg=PA44#v=onepage&q&f=false temperature], and even [http://books.google.com/books?id=aNYGAAAAYAAJ&pg=PA42#v=onepage&q&f=false postage stamps] and [http://books.google.com/books?id=aNYGAAAAYAAJ&pg=PA45#v=onepage&q&f=false music]. | |||
For more information on the Tonal system in general, please see [http://www.lulu.com/product/file-download/tonal-system/10991091 the book]. | For more information on the Tonal system in general, please see [http://www.lulu.com/product/file-download/tonal-system/10991091 the book]. | ||
== As an altcoin == | |||
While Tonal Bitcoin shares a common blockchain and network with decimal Bitcoin (BTC), it is still also considered to be alternative cryptocurrency ("altcoin") since the units are non-trivially presented differently. | |||
That is, merchants who wish to advertise their product to TBC users would be best to advertise an equivalent TBC price alongside the BTC price. | |||
Additionally, had a separate [[block chain]] ("altchain") been created for TBC, there would have been no advantage to it, and instead enabled a number of abuses and reduced compatibility. | |||
Therefore, as an altcoin, TBC demonstrates an ideal way to extend Bitcoin without needing to resort to unnecessary complications. | |||
From the altcoin perspective, TBC is seen to have a number of benefits over more common altchain-based altcoins: | |||
* It shares the same blockchain as BTC, so benefits from the full security and difficulty backing the Bitcoin blockchain. | |||
* TBC is mined together with BTC - unlike ordinary merged mining, you don't get BTC plus TBC, just one or the other at your choice. | |||
* TBC is completely compatible with all Bitcoin addresses: if you send BTC to a TBC client's address, it will automatically get converted and vice-versa. | |||
Tonal Bitcoin is also notably the first altcoin ever, having been created in 2011 January. | |||
== Specification == | |||
Please note, that all numbers of TBC and its divisions/multipliers are written in [http://en.wikipedia.org/wiki/Tonal_System Tonal], not decimal. | Please note, that all numbers of TBC and its divisions/multipliers are written in [http://en.wikipedia.org/wiki/Tonal_System Tonal], not decimal. | ||
This means that instead of counting 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10-- you count: 0, 1, 2, 3, 4, 5, 6, 7, 8, , 9, , , , , , 10 | This means that instead of counting 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10-- you count: <span class="tonal">0</span>, <span class="tonal">1</span>, <span class="tonal">2</span>, <span class="tonal">3</span>, <span class="tonal">4</span>, <span class="tonal">5</span>, <span class="tonal">6</span>, <span class="tonal">7</span>, <span class="tonal">8</span>, <span class="tonal"></span>, <span class="tonal">9</span>, <span class="tonal"></span>, <span class="tonal"></span>, <span class="tonal"></span>, <span class="tonal"></span>, <span class="tonal"></span>, <span class="tonal">10</span>. | ||
{| border="1" style="text-align:right;font-family:Console, Luxi Mono, fixed" | {| border="1" style="text-align:right;font-family:Console, Luxi Mono, fixed" | ||
Line 10: | Line 34: | ||
! Abbreviation | ! Abbreviation | ||
! Pronunciation | ! Pronunciation | ||
! [[Tonal | ! [[Tonal Bitcoin|Tonal (TBC)]] | ||
! Decimal (BTC) | ! Decimal (BTC) | ||
|- | |- | ||
| | | | ||
| Tam- | | Tam-Bitcoin | ||
| 1 | | 1 0000 0000 | ||
| 2 | | 2 814 749.767 106 56 | ||
|- | |- | ||
| ᵇTBC | | ᵇTBC | ||
| Bong- | | Bong-Bitcoin | ||
| 1 | | 1 0000 | ||
| 42. | | 42.949 672 96 | ||
|- | |- | ||
| ᵐTBC | | ᵐTBC | ||
| Mill- | | Mill-Bitcoin | ||
| 1000 | | 1000 | ||
| 2. | | 2.684 354 56 | ||
|- | |- | ||
| ˢTBC | | ˢTBC | ||
| San-Bitcoin | | San-Bitcoin | ||
| 100 | | 100 | ||
| 0. | | 0.167 772 16 | ||
|- | |- | ||
| ᵗTBC | | ᵗTBC | ||
| Ton- | | Ton-Bitcoin | ||
| 10 | | 10 | ||
| 0. | | 0.010 485 76 | ||
|- | |- | ||
| TBC | | TBC | ||
| | | Bitcoin* | ||
| 1 | | 1 | ||
| 0. | | 0.000 655 36 | ||
|- | |- | ||
| TBCᵗ | | TBCᵗ | ||
| | | Bitcoin-ton | ||
| 0.1 | | 0.1 | ||
| 0. | | 0.000 040 96 | ||
|- | |- | ||
| TBCˢ | | TBCˢ | ||
| | | Bitcoin-san | ||
| 0.01 | | 0.01 | ||
| 0. | | 0.000 002 56 | ||
|- | |- | ||
| TBCᵐ | | TBCᵐ | ||
| | | Bitcoin-mill | ||
| 0.001 | | 0.001 | ||
| 0. | | 0.000 000 16 | ||
|- | |- | ||
| TBCᵇ | | TBCᵇ | ||
| | | Bitcoin-bong | ||
| 0.0001 | | 0.0001 | ||
| 0. | | 0.000 000 01 | ||
|} | |} | ||
<small>* Tonal | <small>* Tonal Bitcoin and Decimal Bitcoin can be differentiated by the pronunciation of the numbers. "One bitcoin", "two bitcoin", etc is decimal, but "an bitcoin", "de bitcoin" is tonal.</small> | ||
The total number of Tonal | The total number of Tonal Bitcoins ever (analogous to the 21mil BTC in decimal representation) is just over <span class="tonal">7.75059</span> tam-bitcoin. | ||
== Compatible Clients == | == Compatible Clients == | ||
While all | While all Bitcoin clients will correctly approximate values in decimal bitcoin, actual Tonal compatibility is sparse. | ||
* [[Spesmilo]], despite its name, | * [[Bitcoin Knots]] has native TBC support. | ||
* Patches exist for [[Bitcoin Core]] to support TBC (for example, [https://github.com/luke-jr/bitcoin/commit/tbc Luke Dashjr's TBC patch for Bitcoin Core master]). | |||
* [[Spesmilo]], despite its name, could be configured to display TBC. However, it is no longer maintained and does not work with recent versions of Bitcoin Core. | |||
== Guessing TBC or BTC == | == Guessing TBC or BTC == | ||
Given variable 'value' in base units (uBTCents/TBCᵇ), one can guess whether it is properly Decimal | Given variable 'value' in base units (uBTCents/TBCᵇ), one can guess whether it is properly Decimal Bitcoin or Tonal Bitcoin with the following pseudo-code: | ||
if ( ! ( this % 0x10000 ) ) | if ( ! ( this % 0x10000 ) ) | ||
Choose Tonal | Choose Tonal Bitcoin | ||
if ( ! ( this % 1000000 ) ) | if ( ! ( this % 1000000 ) ) | ||
Choose Decimal | Choose Decimal Bitcoin | ||
if ( ! ( this % 0x100 ) ) | if ( ! ( this % 0x100 ) ) | ||
Choose Tonal | Choose Tonal Bitcoin | ||
=== Python === | === Python === | ||
Line 132: | Line 158: | ||
== Criticism == | == Criticism == | ||
=== Hexadecimal could be done without new fonts as characters === | |||
The tonal notation is not supported by fonts bundled with popular operating systems, and so usually requires extra fonts to use. | |||
Within the programming community there is a widely accepted convention for hexadecimal notation: use A-F for the higher order digits. Thus, one counts 0,1,2,3, ... , 9,A,B,C,D,E,F,10,11 .... There are even two conventions, (which are lacking in tonal notation) for distinguishing a base-16 number from a decimal. The C convention prefixes 0x and the Motorola convention suffixes h. So, the number san, 256 (decimal) would be written 0x100 or 100h. In tonal notation, it would only be written 100, and thus potentially confused with decimal 100 which is 0x64, though this confusion is less of a problem for Bitcoin since the context is always explicit (SI/BTC vs Tonal/TBC units). | |||
Thus hexadecimal notation accomplishes most of the same goals as tonal notation, at least for Bitcoin, with no requirement for changing fonts, thus is more suited to wider usage. Further the prefix and suffix conventions lead to less ambiguity within the tonal community. | |||
'''However,''' the goal of Tonal Bitcoin is to bring Bitcoin to Tonal, not to redefine Tonal (which is older than hexadecimal) or advocate change to the number system itself, so this is out of scope. | |||
Additionally, hexadecimal would make referring to "a bitcoin" ambiguous - such a value could mean the equivalent of either one or ten in decimal! | |||
=== Not relevant to Bitcoin === | |||
Contrary to common myth, Bitcoin is not all about anonymity (and in fact, Bitcoin is ''not'' even anonymous itself). | |||
Most people in the world don't care about anonymity, and Bitcoin would never get off the ground if it had a niche one-issue purpose. | |||
Bitcoin is many things to many people, and not everyone has the same ideals or goals in mind. | |||
For people who use the Tonal number system, Bitcoin's ability to adapt to it is a "killer feature", and gives them reason to prefer it over their local fiat currencies. |
Latest revision as of 23:59, 3 May 2017
Tonal Bitcoin is a representation of the Bitcoin system aimed toward people who prefer the Tonal number system.
Number system
The Tonal number system is an alternative to the decimal and SI ("metric") system, which improves usability by allowing for infinite binary division (note that Bitcoin protocol support is still finite). Instead of counting: one, two, three, four, five, six, seven, eight, nine, ten, eleven, etc... In tonal, you would count: an, de, ti, go, su, by, ra, me, ni, ko, hu, vy, la, po, fy, ton, ton-an, etc... This means you get common binary divisions like one sixteenth (0.0625 in decimal) as a clean number: 0.1 in tonal. The tonal number system, prior to Bitcoin, already defines everyday units of measure including lengths, time, capacity, weight, power, gold/silver coinage, calendar, temperature, and even postage stamps and music.
For more information on the Tonal system in general, please see the book.
As an altcoin
While Tonal Bitcoin shares a common blockchain and network with decimal Bitcoin (BTC), it is still also considered to be alternative cryptocurrency ("altcoin") since the units are non-trivially presented differently. That is, merchants who wish to advertise their product to TBC users would be best to advertise an equivalent TBC price alongside the BTC price. Additionally, had a separate block chain ("altchain") been created for TBC, there would have been no advantage to it, and instead enabled a number of abuses and reduced compatibility. Therefore, as an altcoin, TBC demonstrates an ideal way to extend Bitcoin without needing to resort to unnecessary complications.
From the altcoin perspective, TBC is seen to have a number of benefits over more common altchain-based altcoins:
- It shares the same blockchain as BTC, so benefits from the full security and difficulty backing the Bitcoin blockchain.
- TBC is mined together with BTC - unlike ordinary merged mining, you don't get BTC plus TBC, just one or the other at your choice.
- TBC is completely compatible with all Bitcoin addresses: if you send BTC to a TBC client's address, it will automatically get converted and vice-versa.
Tonal Bitcoin is also notably the first altcoin ever, having been created in 2011 January.
Specification
Please note, that all numbers of TBC and its divisions/multipliers are written in Tonal, not decimal. This means that instead of counting 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10-- you count: 0, 1, 2, 3, 4, 5, 6, 7, 8, , 9, , , , , , 10.
Abbreviation | Pronunciation | Tonal (TBC) | Decimal (BTC) |
---|---|---|---|
Tam-Bitcoin | 1 0000 0000 | 2 814 749.767 106 56 | |
ᵇTBC | Bong-Bitcoin | 1 0000 | 42.949 672 96 |
ᵐTBC | Mill-Bitcoin | 1000 | 2.684 354 56 |
ˢTBC | San-Bitcoin | 100 | 0.167 772 16 |
ᵗTBC | Ton-Bitcoin | 10 | 0.010 485 76 |
TBC | Bitcoin* | 1 | 0.000 655 36 |
TBCᵗ | Bitcoin-ton | 0.1 | 0.000 040 96 |
TBCˢ | Bitcoin-san | 0.01 | 0.000 002 56 |
TBCᵐ | Bitcoin-mill | 0.001 | 0.000 000 16 |
TBCᵇ | Bitcoin-bong | 0.0001 | 0.000 000 01 |
* Tonal Bitcoin and Decimal Bitcoin can be differentiated by the pronunciation of the numbers. "One bitcoin", "two bitcoin", etc is decimal, but "an bitcoin", "de bitcoin" is tonal.
The total number of Tonal Bitcoins ever (analogous to the 21mil BTC in decimal representation) is just over 7.75059 tam-bitcoin.
Compatible Clients
While all Bitcoin clients will correctly approximate values in decimal bitcoin, actual Tonal compatibility is sparse.
- Bitcoin Knots has native TBC support.
- Patches exist for Bitcoin Core to support TBC (for example, Luke Dashjr's TBC patch for Bitcoin Core master).
- Spesmilo, despite its name, could be configured to display TBC. However, it is no longer maintained and does not work with recent versions of Bitcoin Core.
Guessing TBC or BTC
Given variable 'value' in base units (uBTCents/TBCᵇ), one can guess whether it is properly Decimal Bitcoin or Tonal Bitcoin with the following pseudo-code:
if ( ! ( this % 0x10000 ) ) Choose Tonal Bitcoin if ( ! ( this % 1000000 ) ) Choose Decimal Bitcoin if ( ! ( this % 0x100 ) ) Choose Tonal Bitcoin
Python
import math def formatBTC(n, addSign = False): s = "%0.2f BTC" % (math.ceil(n * 100) / 100.,) if addSign and n >= 0: s = "+" + s return s def Bitcoin2BTC(n): return n / 100000000. toTonalDict = dict(((57, u'\ue9d9'), (65, u'\ue9da'), (66, u'\ue9db'), (67, u'\ue9dc'), (68, u'\ue9dd'), (69, u'\ue9de'), (70, u'\ue9df'), (97, u'\ue9da'), (98, u'\ue9db'), (99, u'\ue9dc'), (100, u'\ue9dd'), (101, u'\ue9de'), (102, u'\ue9df'))) def formatTBC(n, addSign = False): s = "%x" % n n %= 1 if n: s += '.' while n: n *= 16 s += "%x" % n n %= 1 s = unicode(s).translate(toTonalDict) s += " TBC" if addSign and n >= 0: s = "+" + s return s def Bitcoin2TBC(n): return n / 65536. def formatBitcoin(n, addSign = False): if not n % 0x10000: return formatTBC(Bitcoin2TBC(n), addSign); if not n % 1000000: return formatBTC(Bitcoin2BTC(n), addSign); if not n % 0x100: return formatTBC(Bitcoin2TBC(n), addSign); s = "%d uBTCents" % (n,); if addSign and n > 0: s = "+" + s; return s;
Criticism
Hexadecimal could be done without new fonts as characters
The tonal notation is not supported by fonts bundled with popular operating systems, and so usually requires extra fonts to use. Within the programming community there is a widely accepted convention for hexadecimal notation: use A-F for the higher order digits. Thus, one counts 0,1,2,3, ... , 9,A,B,C,D,E,F,10,11 .... There are even two conventions, (which are lacking in tonal notation) for distinguishing a base-16 number from a decimal. The C convention prefixes 0x and the Motorola convention suffixes h. So, the number san, 256 (decimal) would be written 0x100 or 100h. In tonal notation, it would only be written 100, and thus potentially confused with decimal 100 which is 0x64, though this confusion is less of a problem for Bitcoin since the context is always explicit (SI/BTC vs Tonal/TBC units).
Thus hexadecimal notation accomplishes most of the same goals as tonal notation, at least for Bitcoin, with no requirement for changing fonts, thus is more suited to wider usage. Further the prefix and suffix conventions lead to less ambiguity within the tonal community.
However, the goal of Tonal Bitcoin is to bring Bitcoin to Tonal, not to redefine Tonal (which is older than hexadecimal) or advocate change to the number system itself, so this is out of scope. Additionally, hexadecimal would make referring to "a bitcoin" ambiguous - such a value could mean the equivalent of either one or ten in decimal!
Not relevant to Bitcoin
Contrary to common myth, Bitcoin is not all about anonymity (and in fact, Bitcoin is not even anonymous itself). Most people in the world don't care about anonymity, and Bitcoin would never get off the ground if it had a niche one-issue purpose. Bitcoin is many things to many people, and not everyone has the same ideals or goals in mind. For people who use the Tonal number system, Bitcoin's ability to adapt to it is a "killer feature", and gives them reason to prefer it over their local fiat currencies.