goTenna Mesh and Blockchain: Potential Applications and Integrations


#141

@rmyers looks like you and @arcalinea have put a lot of thought into how a token would work. It sounds a lot like how gas is used on Ethereum.

There’s a few side chain efforts out there, and in my opinion, the one that offers the most promise is Lisk, due to being based on JavaScript. Ethereum requires developers to learn Solidity from scratch, while JavaScript is the most well known programming language in the world.

They should have their Software Development Kit out in the next few months.

RSK (Rootstock) uses Bitcoin so it fits in with what you are imagining.

Another good fit for GoTenna, at least architecturally, seems to be IOTA. The goal is to provide services for internet of things, and emphasis is on scalability and no fees. There was some controversy this summer where MIT found a closed-source crypto bug in the code, but this was patched and IOTA seems to be picking up some big name partners as of late. @rmyers the project seems to be trying to tackle the exact challenges you laid out.

If you look at the diagram of the Tangle, it looks exactly like a mesh network.

Of course, Ethereum is always a good choice for developing applications and has created an entire new market based off of decentralized applications.


#142

@MrTSolar You bring up a valid point. I don’t think the goal of integrating a credit system would be to completely replace altruistic relay of messages. The primary motivation is to create an incentivize for people to run relays and gateways where there otherwise wouldn’t be any.

The other reason to consider an incentive system is that mobile nodes must expend battery power and a situation could occur where people disable relay to preserve their battery with out some incentive not to.

The goal isn’t to create a paid service, but as a way to ensure people fairly contribute in proportion to their use of the mesh network.

That doesn’t mean that a value based incentive system is the only way to go. You could design a system that tracks the send vs. relays ratio for nodes. Whether or not to relay for senders with a high ratio of sending versus relaying could be decided by each relay node.

I suspect ultimately tracking a ratio becomes a lot like tracking a balance of credits or tokens. The major difference is whether uses can inject outside value into or take value out of the system.

I’m interested to hear what other people think about this issue.


#143

@Dizzy - sorry, but those IOTA marketing videos don’t really do much to motivate further research. I’ve read a little about DAG based systems for consensus but honestly we need to be pretty conservative in what we design and many of these systems are far from proven to work at scale. There are plenty of challenges adapting proven technology like bitcoin.

Other systems like Ethereum have more of a track record and some potential design advantages, but for me personally, I don’t think most have a solid a scaling road map.

I think @arcalinea is more open minded towards new approaches and has shifted my thinking away from only considering stock bitcoin and more towards some sort of custom blockchain specifically built for low bandwidth mesh networks.


#144

Those aren’t IOTA marketing videos they are just YouTubers who are just trying to explain the technology. I’d take a second look and not just toss them out, they address the low bandwidth situation you mentioned along with the fees issues brought up by @MrTSolar.

It’s important to understand how the Tangle setup differs from a Blockchain in trying to solve latency issues and the low overhead you’re seeking.

Recently, IOTA has announced partnerships with Microsoft, Accenture, Cisco, Volkswagen, and Samsung. Those are some pretty big partners. I am not invested with them as the security issue from the summer scared me off, but apparently not any of the big companies just mentioned, so I’m going to take another look.

That team initially impressed me with their large squad of PHD’s. If Microsoft has done their diligence and vetted the team, that lends credibility to the projects… Also Accenture, Cisco, and Samsung have some of the highest scalability out there.

Even if you don’t like the IOTA project itself, it’s instructive to look at the Tangle part of it. To me it fits in absolutely perfect with a mesh network.

In my honest opinion, Bitcoin isn’t the way to go, even with a sidechain. It is the most successful, and the godfather of the crypto universe, but its main functions outside of digital commerce are being a store of value and providing credibility to the entire crypto ecosystem.

I personally run a Bitcoin node and my node sends out terabytes of traffic per week to help keep the network running. Side chains are still in experimental phase, and the Bitcoin network itself tends to be slow and carries high fees with it. So it has massive scaling issues it’s already dealing with.

There are coins which have built themselves as alternatives to Bitcoin (like Litecoin) to try and solve these issues, waiting in the wings.

Right now an Ethereum-based token is the platform most projects are building off of, but even Ethereum network itself had some congestion issues the past few days from the new online game CryptoKitties.

I’d say if GoTenna is serious about entering into blockchain, they need to get some R&D going, and just start getting their feet wet, and get a small POC going.

Planning is great, but there’s no way to know all problems in advance, and since this is an emerging, early adopter technology, the scaling issues will have to be solved as the size grows. There’s no real precedent out there, which is why it’s an incredible opportunity.


#145

@Dizzy I read the IOTA paper, and think the DAG-based consensus approach being tried right now is interesting (there are some others – SPECTRE, Hashgraph?), but in experimental mode and not suitable for goTenna devices.

For these broadcast mesh devices, message frequency also must be kept to a minimum, so there isn’t capacity for the overhead of a consensus system. Every message makes that band of spectrum temporarily unavailable for others in range. Even most of the payment protocols we’ve discussed seem like too much overhead. So I think running a blockchain over these mesh devices is out of the question, and the more feasible approach is to treat them more like light clients running a payment protocol.

Agree that optimizing for Bitcoin is not the way to go, since you’re constrained to thinking in terms of UTXOs and a limited scripting language. It’s easier to imagine you can have a chain that handles arbitrary state changes, like Ethereum or any other programmable chain.

Do you know of any current applications of DAG-based consensus? That stuff is hard to analyze. Even after reading IOTA’s paper, I had no way to know if the random walks across tips would lead nodes to converge around a shared state, especially in the event of rollbacks or adversarial actors. And their roll-your-own-crypto hash function mishap did not inspire confidence in their predictive equations for consensus. Something involving DAGs might work out eventually though, it seems like a fruitful approach to try out different data structures.

As for running a blockchain in a mobile mesh network: A blockchain tries to achieve global consensus, and in a mobile ad-hoc mesh network, frequent network partitioning will occur. From the perspective of the blockchain, it’s bad for bunch of nodes disappear and then reappear frequently. The clumps of isolated nodes will have built on their own histories in the meantime. To rejoin means reconciling network forks, and as far as I can tell, nobody knows how to do mergers right now.

The considerations for static mesh nodes are different, Althea just has nodes open payment channels with their neighbors. That seems to work for their approach. That would work here if nodes stayed in one place for long enough, or had a hub they could reliably connect through.

What do you think? You had a lot of suggestions for going to market, I think we’ve mainly been talking and focusing on what the technical considerations are though. Or at least I have. It’s good to have different perspectives in the mix. :slight_smile:


#146

Agree altruism mode should always exist. Even when considering a monetary approach, I think it’s important to leave the option of a completely free relay mode, as well as using local trust and maybe even transitive trust to determine who you’re willing to share resources with for free.

I see the utility of cryptocurrency here as helping establish trust that resources will be shared fairly in the network among strangers, and possibly helping transcend the zero-start problem.

Resource allocation:
Like Richard said, the goal is to make sure people contribute proportionally, ensuring everyone remains happy to be a contributor. This could come down to just tracking credit balances between nodes, and settling once online. Money replaces trust as a coordination mechanism for the allocation of resources, so it’s important to make sure that its introduction doesn’t erode existing trust-based reciprocity. But the inverse is that money can enable cooperation between strangers who have no reason to help or trust each other, which lets you scale systems to many more people.

Zero-start:
A huge problem with building out decentralized infrastructure is what Daniela calls the zero-start problem, or bootstrapping a network up to where it’s large enough to be useful for people who participate. goTenna has improved the usability and efficiency of mobile mesh networking a lot, making it more accessible, but they will still probably run up against this problem that other attempts to build mesh networks have. If everyone would put up decentralized mesh relays and access points in their areas, and keep them up for others, that’d be awesome, and we’d all benefit from the network effects. But as it stands, if only one person every few miles runs a relay, it’s not useful for anyone and nobody joins the network, despite the fact that we’d all be better off if everyone joined. Cryptocurrency is a useful new tool to approach collective coordination problems with.

One of the most interesting thing blockchains do is create currencies native to decentralized networks, and thus drive adoption beyond a small band of the committed and altruistic. So a lot of people have had the intuition that this can help overcome the zero-start problem faced by existing attempts to build out decentralized networks. Some even think this is so viral of a mechanism that even traditionally centralized services can now be decentralized. Whatever the outcome, right now is the time to be throwing those ideas at the wall and seeing if they stick.

Forgive me for getting philosophical there, I’ve spent a lot of time thinking about the technical feasibility of this or that protocol, but this is the first time I’ve tried to express why I devoted brain cycles to this.


#147

Haven’t had time to read through everything, but the zero-start or chicken/egg problem caught my attention.

I think that crypto networks are actually the perfect solution to this. People buy-in and they want their “investment” to succeed, so they’ll make their node and encourage others to do the same.


#148

Yeah, with the proliferation of ICOs we’re seeing the viral nature of crypto investments being abused right now, but in the long-run I think this way of gaining buy-in can align incentives around useful things.

I don’t think goTenna should focus on the crazy dynamics of the ICO world right now though. The best first step is to just figure out how to integrate a payment protocol – in such a resource constrained environment, with routing considerations, figuring out how to do that effectively is a technical challenge. You have to track this extra bit of shared state between nodes.

I’ve been going over this with Richard, we think the varieties of possible protocols reduce down to these categories:

  1. Payment channels, with proof of delivery to unlock payment. Nodes have to open channels with their neighbors or a gateway, so this relies on a more static network topology. Adds overhead of protocol messages to open and close channels.
  2. Passing txs that depend upon proof of delivery to unlock payment. Possibility of double spends when nodes don’t have access to blockchain, and nodes have to store a bunch of accumulating txs or pass them forward, adding overhead.
  3. Simply tracking balances between nodes, and settling on-chain. (i.e. sender signs an incrementing message id, receiver turns in highest id for payment) Possibility of double spends when nodes don’t have access to blockchain, but overhead is very low.

It might be possible to adequately address the threat of double spends with identity bonds and timeouts.

Curious to know what people think of any of these – have you thought of any possible protocols, and do they fall into these categories?


#149

You got it, 100%, that is where the blockchain and GoTenna make absolutely 10000000% a perfect match.

I mean, I spend way too much time reading up on all the different projects out there. If there was ever the most obvious use case for driving adoption and building infrastructure, this one is beyond obvious.

We are in one of those rare moments that only comes along every 10 years:

  1. IBM PC (80s)
  2. World Wide Web (90s)
  3. Mobile (2000s)
  4. Blockchain/decentralized web 4.0 (Right now)

#150

@arcalinea you make a lot of good points, especially around trying to drive consensus around an elastic network, where you have nodes coming online and then offline. Trying to predict and serve supply and demand becomes extremely difficult in that situation.

Take any large city. During the day you have a mass of users in industrial and business districts, freeways, and public transit. At night, that capacity returns back to living spaces, causing gaps across the network, and overcapacity in other areas.

In my vision, a permanent mesh network will need static masternodes to solidify the network. However, even these static nodes can be in a mesh topology, and they can also spin up or spin down much like cloud servers do. (In the true decentralized model, the concept of “server” completely disappears, as services are no longer tied to a physical host, but that’s a side topic, and it’s easier to just leave them on 24/7).

The zero-start problem is exactly one that blockchain can help solve. because of the incentive to end users. Masternodes are quite lucrative for their owners in many projects. GoTenna already has a similar concept with static relays, so the idea is already there, but existing on a donation basis.

If you are incentiving the users to build static nodes, they will foot the whole capitalization build out, along with paying for the electricity and cooling. Telecoms spend enormous amounts of money every year on maintaining infrastructure. Imagine this cost being reduced or even eliminated by having the network build it out, but also sharing in the profits.

I guess I would start with the old cliché, what problem are we trying to solve here? If it’s to grow the GoTenna network, keep the same spectrum, and just build out the emergency network to co-exist alongside existing infrastructure, well, I am not sure blockchain is worth looking at right now, and maybe better off revisiting as the network scales and more use cases come to light.

However, if the goal is to build something bigger, expand the spectrum, continuously improve the hardware and infrastructure, with the end goal to expand services to re-decentralize the web, in order to compete with the ATTs and Verizons, then blockchain makes absolute perfect sense.

There are projects out there already with the latter vision, but from what I’ve seen, the GoTenna hardware, community, and network is already miles ahead of them. Out of all the projects I’ve looked at, this one seems to be the most obvious to me as a problem that can be solved, and a platform that’s already up and solving it.

Regarding the partitioning, I’d say that is definitely a challenge with a mesh network. However, the scope of each mesh network can be provisioned out like this:

  1. Neighborhood network
  2. District network
  3. Citywide network
  4. Statewide network
  5. Regional network
  6. National Network
  7. Continental Network
  8. Worldwide network

The neighborhood network is obviously the easiest to solve. Many houses, townhomes, apartments, and business, can already communicate with each other over existing home networking equipment, due to their close proximity.

As the distance grows, that’s where things like static nodes, and bridges become critical. However, the incentives for closing those gaps should also be increased substantially. Depending on strategy and legislation, it may even be possible to sell back capacity to the telecoms in the same way that excess solar generation can be sold back to the power company.

A good model here is one you have probably read about, the Brooklyn neighborhood that is using the blockchain to share electricity:

Non-blockchain projects like SunPort and Arcadia Power have taken this to a national level, through energy certificates, allowing home consumers, who don’t have access to solar or wind, to source 100% of their power from these sources. The consumers are opting in to these services, and help drive additional capacity and buildout. Other projects like Power Ledger and WePower are even trying to cross national borders for a worldwide energy system.

I also bring up clean energy projects because it shows the pent up demand that I sense is also here with decentralized network services. Consumers are fed up with high fees, slow speeds, privacy, and reliability issues.

So I would say, the goal would be to try and get a neighborhood up and running, then once that’s successful, try and get two neighborhoods up and running, and then go from there. I’m sure this was originally done with GoTenna testing.

Regarding DAG systems like IOTA/Tangle, you are right to point out the roll your own crypto issue, along with having a good solid use case that’s out of the lab. IOTA also is reliant on coordinator nodes, which are controversial because they are considered centralized and a crutch until the network is able to achieve a scale where they are no longer needed. They are definitely not an “out of the box” solution, and could take quite a bit of R&D time to find a workable solution.

I don’t think IOTA is the end all, be all solution, but the Tangle protocol is instructive to look at to drive the type of protocols that match an elastic, low-bandwidth /payload type of network.

Ethereum still has the best portfolio of use cases, although sleeper Factom counts Bank of America and Sony Pictures among their clients, and have a grant from the Gates Foundation. They are more about storage, though, but just mentioning them as a reference as I thought they do a good job of illustrating the problems they are solving.

Appreciate your thoughtful comments.


#151

Read this article today that looks really relevant to the thread. Speaker from IBM is discussing how business needs drive the tool selection, not the other way around.

The domain here is insurance, so not the same use case, but the thought process is the most important. His slides and presentation are in the article:

https://blog.etherisc.com/no-wrong-or-right-blockchains-its-all-about-business-needs-fae0940e2eca

Don’t get fooled by your own choice.


#152

Question - mathematically, how does one calculate if gotenna will do better or worse if moving from a free model to a micropayment one tracked with BC tech?

Some folks attracted to the free model will not move forward to a payment based one. Some who provide stationary nodes altruistically would not do so as part of a payment system.

For example, I think nothing of leaving my gotenna on, plugged in and charging while at work, even though other meshies benefit. If I was getting payments for messages hopping through that device, could the arguement be made that I was ‘stealing’ from my employer?


#154

I think that the “call for help” scenario should not be considered while designing a blockchain-based decentralized messaging system. The system should be blind to this, like other blockchains. It’s not the main problem we are necessarily trying to solve here. The bitcoin or ethereum network don’t differentiate between a transaction that is might save a life or one used for CryptoKitties. Transactions don’t go through no matter what. We need to build an incentive system based on cryptoeconomics for this to grow. The “call for help” scenario is something that could be solved with some kind of smart contract based insurance system, but this is a whole other problem.


#155

Here’s a good think piece from Nick Szabo (from 1996!) on micropayments. Food for thought:
The Mental Accounting Barrier to Micropayments

Even once we have the capability for micropayments between mesh nodes, there’s still the problem of when and how much to pay.


#156

Easiest way is likely a survey.

I’m still having a hard time figuring out how a blockchain would work on GoTenna. There would be nearly as many forks as there are GoTenna devices. Plus, there are many times where a message barely gets through, let alone with all the overhead of a monetary transaction on top of that. And even if all these technical details get worked out, will block creation be variable-time or variable-difficulty? Bitcoin transactions currently take upwards of an hour to be confirmed.

In a world where everything is moving to subscriptions, GoTenna Mesh is the exception that provides a free service with only a one-time hardware buy-in, which I prefer.


#157

Can you elaborate on why LoRa chips are no good?


#158

If incentive is needed (beyond the obvious benefit we each get from a stronger mesh betwork) to add nodes…how about the far simpler method of allowing customers to become direct investors in gotenna?
Microventures.com provides a platform for this.
If someone has invested in gotenna as a company, they will natuarly do what they can to strengthen the network.
Advantages over a blockchain token:

  1. Optional.
  2. Simplicity.

#159

I was thinking exactly the same thing!! We need to completely nix the isp’s though. That is where the security breach would come from undoubtedly. I think that data should be stored amongst many like the dark web+p2p


#160

@MrTSolar I see what you’re saying about not wanting to recreate the mobile phone style subscription model. The motiviation for decentralized micropayments is for helping with the zero-start problem.

Until you have a sufficient density, the network isn’t useful, so people don’t join the network. In some areas this won’t be a problem; places like LA and NYC will naturally achieve density just because there are a critical mass of technology loving people who can afford to buy a unit. But there are asymmetric situations where without incentivizing nodes a critical mass might never be achieved.

As an example, imagine radio nodes acting as an SMS gateway from their mobile phone near an international airport in the developing world where SMS costs are metered (and there’s no free wifi). As demand for gateway service increased it would cost message budget and drain the battery power of gateway nodes. Some gateway nodes might still operate altruistically, but if you empower gateway nodes to collect a nominal fee to offset the battery and message usage it would be more likely people would run a gateway node and the density of all nodes, gateways and non-gateways, would increase.

Another example is at a national park or some other large outdoor area. Until you have a critical mass of nodes to relay your messages people won’t have an incentive to keep their nodes on and in relay mode. But if there was some small incentive payment whenever you participated as a relay it would properly reward users who run their nodes as relays more often and not just when they are expecting to send or receive a message.

A micropayment based incentive system is a way to compete with subscription based services because nodes pay and receive payment from each other instead of paying a central provider to build and operate the network. In situations where density is high and reciprocity between nodes is high the service should still be free.

It’s where you have natural gaps or one way flows of data that small incentives to nudge people to expend the extra effort or cost needed to make the network more robust. Also, unlike monopoly mobile phone providers, there would be natural competition between nodes that keeps the fees nodes charge each other at the marginal cost of providing the service or even free once some critical mass is achieved.


#161

Nodes that relay altruistically are the cornerstone of any mesh system and I don’t see how being invested in the company that produces the hardware really adds that much incentive to run a relay or gateway node.

Any investor can still free-ride by turning on their node to use the network when they want to send or receive, but not otherwise supporting the network for others. Perhaps as investors they have more incentive than pure altruism to help strengthen the network, but ultimately they benefit as much by convincing others to be altruistic then by actually doing the same themselves.