Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Devil's advocate arguments, from someone who has never really paid attention to IOTA:

There's one place ternary logic already exists—the https://en.wikipedia.org/wiki/Content-addressable_memory found in network switches. You need to be able to put essentially "trit vectors" on the address bus (think e.g. "0110??10?1") to describe the search queries you want your CAM to execute; and the CAM itself needs to be able to store trits so that it can represent bits that "don't matter" and could match a search query with any value in that position. (The "third value" here acts like a NULL does in an RDBMS, but comparing equal to everything rather than unequal.)

That's... pretty much the only existing real-world use I know of for ternary, though.

For a non-real-world argument: ternary is closest to the theoretical "base e" that would have the best numeric packing factor, and therefore be able to represent numbers in the fewest digits. If you're incredibly space-constrained but only somewhat CPU-constrained, it might make sense to encode numbers as ternary when persisting them, as a kind of compression; and then to persist them to something else that stores natively in ternary (like an imaginary NAND cell design half-way between SLC and MLC with three voltage levels per cell.) But that's probably nothing to do with what IOTA's doing with it, if they're using ternary as a live representation for computation.



Disclaimer: I'm not IOTA's biggest fan, I broke their ternary hash function and one of the IOTA co-founders threatened to sue me after I disclosed the vulnerability to them. See previous hn thread on it: https://news.ycombinator.com/item?id=16457120

Following on with your discussion of Ternary in networking networking switches, I think Balanced Ternary can be mathematically elegant way to represent numbers. We shouldn't completely dismiss it just because currently we have massive path dependencies on binary.

However in the context of a highly ambitious project, such as IOTA, which is attempting to integrate with a large number of deployed systems that use binary, it is a mistake to switch to ternary. None of the existing tooling works, you have to write custom software for stuff that in binary have already been built and well tested.

tl;dr Doing one impossible thing is hard enough, never try to do two impossible things at the same time.


> Balanced Ternary can be mathematically elegant way to represent numbers

When discussing ternary computation, I always see people talking about representation and storage. In these aspects, ternary can indeed be more elegant and efficient than binary.

I never see any discussion about the complexity of the physical circuits, though. From the little I have seen (see [1]) it seems that using ternary circuits for computation will never be a good idea. Even though you'd need fewer wires to carry information, that advantage is more than cancelled by the increased complexity of the computation circuits themselves (those papers compare specifically binary and ternary adders and multipliers).

[1]:

https://arxiv.org/pdf/1908.06841.pdf

https://arxiv.org/pdf/1908.07299.pdf


What you are talking about is data transfer and storage, but what IOTA seems to claim is that somehow the math for cryptography changes and is better when it is 'trinary'.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: