Questions for the IOTA Foundation

in #iota6 years ago (edited)

I've been researching IOTA lately, and I've developed a list of 3 core questions that I'd like to have answered about IOTA.



IOTA is a cryptocurrency that was founded a few years ago and rose to prominence during the great crypto bull market of 2017. Its proponents bill it as an ideal distributed ledger technology for Internet-of-Things (IoT) applications, since it's designed to have no fees and to run well on small low-power devices.

At first glance, it's a deeply intriguing system. The designers seem to have based their entire work on the premise that blockchains are the wrong tool to use to build a decentralized ledger; rather, you should use a Directed Acyclic Graph (DAG). A key concept of a DAG-based cryptocurrency is that transactions aren't bundled into blocks. Instead, each transaction sits all by itself in the database. Apparently there is some work that's shown that DAG-based cryptocurrencies can have some advantages over blockchains; I won't get into any of that here.

The Tangle

In IOTA, the main database (network of transactions) is called the "Tangle." It's a web of interconnected transactions. See this figure:

Screenshot 2018-04-24 11.30.40.png

Each box is a transaction, and note how each box has arrows pointing to the left to two other boxes. These arrows represent "approvals." Every transaction in IOTA has to choose two previous transactions to approve, and then you hope that eventually some other transaction will choose your transaction to approve. In the Tangle whitepaper, a lot of work goes into specifying how new transactions should choose old transactions to approve, and then there's a second technical paper that argues further about why users might choose a particular attachment algorithm over some other one.

Confirmation in the Tangle

Fundamentally, your transaction in the Tangle is considered to be confirmed if a lot of newer transactions approve it (directly or indirectly). "But," you say, "how many is a lot?" Well, this is where some people start being tempted to get skeptical of the Tangle's security: "a lot" means exactly that. "A lot." There isn't really a number; it's just that the deeper you are in a popular branch of the Tangle, the more likely it is that your transaction is considered to be "confirmed."

This could sound a bit flaky, but give it a chance: it's analogous to the concept of "confirmation" in Bitcoin. A transaction in bitcoin is popularly considered to be confirmed once 6 blocks have passed. However, there isn't anything magical about 6 blocks. A wildly lucky (or extremely wealthy) selfish miner could mine on a competing fork, outpace the chain that your transaction is on, and cause your transaction to un-confirm. But the deeper you are in the bitcoin blockchain, the less likely this is to happen and/or the more this attack would cost. It's roughly the same in IOTA: the deeper you are in the Tangle, the more likely it will be that your particular branch of the Tangle is irreversible.

The Coordinator

Right now, the Tangle is being coordinated in a centralized fashion by the IOTA Foundation (IF). What this means is that every couple minutes, a special transaction goes into the Tangle that says "here is a list of all IF-approved transactions. You may consider these approved." Unlike many in the crypto community, I'm not a decentralization maximalist, so I don't think this is evil. But it does raise the question: Why is it necessary? Bitcoin didn't need a coordinator to bootstrap itself; why does IOTA need one? Marketing materials from the IF seem to indicate that eventually, the coordinator will be shut down and the Tangle left to evolve on its own. However, I haven't seen much that says when this might happen. Granted, I've only been looking into IOTA for the past week or so.

My Questions About IOTA

I'm a total newcomer to IOTA. I don't have a long or short position on it. If it's a good system, I want in; if it's not, I want to stay out. With that in mind, here are my questions. If they sound skeptical, that's because I'm a well-practiced skeptic -- it's not because I'm out to destroy IOTA.

  1. What is the plan for shutting down the coordinator? To me, IOTA isn't really interesting if it requires a centralized coordinator permanently. Does the IF have a formal justification for why the coordinator is needed, or some kind of formal reasoning for how they'll be able to tell that the coordinator can be safely shut down? In other words, If the Tangle is fragile when it's small, why should we expect it to be robust when it's big? I'm not saying that I don't think this is true, but some formal analysis would be nice.
  2. In the equilibrium paper, why should we think that "almost symmetric" equilibria are an interesting class of equilibria? It seems to me that a much more interesting place to start would be to ask whether the reference policy is a Nash equilibrium strategy. That is, suppose everyone is using the reference policy. Can one of those individuals switch to some other policy and be better off? I think it's fairly obvious that they can: a single individual is trivially better off using a policy which deterministically confirms the transactions with highest probabilities under the reference policy. If my reasoning is correct, this means that the situation where all nodes use the reference policy is not a Nash equilibrium. Should this trouble me? Should it trouble me that no mention is made of this in the paper entitled "Equilibria in the Tangle?"
  3. When you attach a transaction to the Tangle, it might not get confirmed. This isn't really a problem. Just wait to see if it's confirmed quickly, and if not, you can just reattach it again somewhere else. If it doesn't get confirmed that time, just wait a little while, and then reattach. As far as I can tell, this is the official way to deal with a transaction not getting confirmed quickly. My question is this: Wouldn't it be smarter for me to modify the software so it does all of these "reattachments" simultaneously? In other words, "why wait?" It's pretty clear that a single node could decide to improve his confirmation times by spamming the network with multiple identical copies of each transaction. Of course, even if this is a good strategy for me, it makes life worse for everyone else. If I submit 3 copies of the same transaction, only 1 can be valid in the long run -- so if anybody else attaches to one of my 2 invalid ones, their transaction (even if it was attached honestly) is invalidated by my selfish spamming. Then they have to reattach their transaction somewhere else, which gives them an additional incentive to use my selfish-spam software. A vicious cycle ensues. What am I missing?

Are there any IOTA fans here? What other questions should I be asking?

EDIT: I also posted the questions on the Iota subreddit: my post.

Sort:  

I can answer 1 and 3, but i dont have the technical knowhow for 2, i suggest going in the IOTA discord, lots of great minds there who can probably explain that.

  1. Coordinator will be phased out in steps, ETA is Q4 2018/Q1 2019 for it to be completely removed(ETA not a deadline).
  2. check discord?
  3. There will be an automated function for this in the newly developed Trinity wallet which is in alpha testing and just went thru its first audit, beta should be expected soon.

Hope this helps a bit, good luck!

Yeah, they pointed me to discord on the subreddit too. I clearly need to do more reading on 1. I'm going to keep chewing on 3. Someone on reddit had answers that seemed decent, about submitting new trx that connect your unconfirmed trx to the main tangle better.

  1. The Coordinator has been shut off before so the network itself isn't depending on it, from what i read its safety reason to keep it on now (like training wheels until the network is strong/large enough on its own) 3. The IXI hub, which is in development right now, will help with that also, as well with protection against seed reuse.

defenitely have a look around their discord, lots of helpfull people there to get your answers.

For anybody interested in game theory, I just realized that my reasoning in question 2 has an "unless." I wrote this:

I think it's fairly obvious that they can: a single individual is trivially better off using a policy which deterministically confirms the transactions with highest probabilities under the reference policy. If my reasoning is correct, this means that the situation where all nodes use the reference policy is not a Nash equilibrium.

The last sentence should say "... is not a Nash equilibrium unless...." Can anybody tell me what should come after the "unless?"

I really liked the article, @biophill.
Those are valid questions. Unfortunately, I do not have answers to them but I would love to read the answer if it exists.
So, I will upvote and resteem

@biophil You have received a random upvote from @looktothefuture because this post did not use any bidbots.

If you use the the #nobidbot tag as one of your five tags on future posts, you may be selected for a random upvote from @transparencybot.

This would be more useful if you didn't require the tag. I also assume you have an algorithm running that identifies spam posts and doesn't upvote them.

Thanks for the great reply.

There are actually two random upvote routines. One is based on the #nobidbot tag, the other is not. @whatamidoing is in charge of the #nobidbot tag and is looking to add manual curation for it if you are interested, please contact him.

Both routes do employ some AI, but only manual curation is truly effective.

Agreed. One of the solutions I imagine would be effective would be an AI that can filter out obvious spam, then a team of humans that can filter out the less obvious spam, then another team of humans that can actually curate. Oh, how to automate taste, eh?

Nice post,please vote me on my comment

That's not a reason.

w.r.t. points 2 and 3 . I am not in game theory, if I understood the problem somehow (?) I would just place the tangle into a potential V like a half-cylinder , its axis nearly parallel to the arrows. transaction in the lower parts of V get a weight (number>0) higher than transactions in the upper parts of V (near the 'shore'). every x-minutes there is a pulse in the tangle and all weights along each valid path contribute to S=sum of weights, a second number in each transaction. The path has opposite direction than each arrow. Where the path ends, the S there are priorities in order to put new transactions there. The tangle will grow faster, where the priorities are higher. If there are parts in the tangle, that have not changed for y-times, the pulse can start from there using the S in the new starting-points. Transactions in the upper parts of V should be confirmed with velocity 0.1 compared to the velocity in the lower parts of V, just think of a v_e_r_y long bath-tub, if You want to see V.

Those of you begging for upvote please stop or when next time you don't get that lucky and do that with the wrong person will get you a nice down vote as a reward @biophil is nice and cool enough but hey guys a question has been thrown here just Google do some reading and come up with something that you may also earn something from him rather than expecting without any effort. No hard feeling sorry if I offend you but hard work pays thank you.

Loading...

Will do, thanks.

Congratulations @biophil! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Upvote this notification to help all Steemit users. Learn why here!

Coin Marketplace

STEEM 0.29
TRX 0.11
JST 0.033
BTC 63458.69
ETH 3084.37
USDT 1.00
SBD 3.99