2

IOTA seeds consist of 81 trytes. Assuming a balanced trinary system, the tryte domain is $[-1, 0, 1]$. The maximum decimal number of a single tryte is 13, because $1\cdot3^0 + 1\cdot3^1 + 1 \cdot 3^2 = 13$. Consequently, I would need 4 bits to store a tryte.

I am wondering how many bits are necessary to store a IOTA seed. The maximum decimal number of an IOTA seed would be $x = \sum\limits_{i=0}^{80} 3^i $. The number of necessary bits would be $log_2(x)$, which is quite large.

Is this calculation correct?

Glorfindel
  • 145
  • 1
  • 1
  • 9
null
  • 123
  • 3
  • While the maximum value is 13, the minimum value is not 0 but -13, so you have a total of 27 values and need 5 bits and not 4 to store a tryte. – mihi Oct 30 '18 at 22:21
  • IOTA seeds consist of 81 trytes?? Programmatically I can create a Seed consisting only of 2 TRYTES. 1 TRYTE is not possible since there is a mechanism to go through a Seeds address space on the first TRYTE. – instantlink Nov 17 '18 at 17:43

2 Answers2

3

You are confusing trits and trytes, see this for details.

A (balanced) trit is something that can represent an element of the set $\{-1,0,1\}$ but a tryte is an element made by 3 trits. As such, it can represent $3^3=27$ values. It follows that 81 trytes can represent $27^{81}$ values and you would need $\lceil \log_2(27^{81}) \rceil=386$ bits to represent that space.

However it could be simpler to represent a trit as two bits, a tryte as 6 bits, and therefore a seed as $6*81=486$ bits as this would be simpler to convert to/from ternary.

0

I do not get why one trit would be able to store 13 decimal values. The difference between trit and bit is that bit can store 2 possible values (thus base 2) and trit can store 3 possible values (base 3).

The calculation $log_2(3^{81})$ seems correct (thanks Christoph).

  • You want $log_2(3^{81})$ without the extra summ around. –  Oct 30 '18 at 15:37
  • Yes, you are right, $3^{81}$ is the maximum decimal number. –  Oct 30 '18 at 15:41
  • A balanced tryte can store 27 values. However, 13 is the largest decimal one, because 13^0 + 13^1 + 1*3^2 = 13. The domain of a balanced tryte is [-13, 13]. – null Oct 31 '18 at 07:59