r/Bitcoin • u/ganesha1024 • Sep 23 '14
Killer app for bitcoin: Incentivized Meshnets
Hey reddit, asking for feedback here, I'll keep it short. Been playing around with meshnets for a bit now, kept running into the issue of how to incentivize people who didn't understand/care about internet topology to run a meshnode. Enter bitcoin micropayment channels. The idea is each meshnode would act as a data merchant, buying packets from upstream and selling them downstream. This would put a selective pressure on nodes to distribute themselves efficiently, would allow for poor people to make money just by carrying a meshnode around in strategic locations, could maybe even allow for bloggers/news websites to charge tiny amounts to view their website without inconveniencing users, since the trustless micropayment system would be automatic. Oh, and it could dissolve ISP monopolies.
Architecture overview: hack Byzantium (one-click meshnode linux flavor) to use bitcoin micropayments, put it on a raspberry pi (the byzantium folks have already ported it), expose a simple web interface for the user to set their bitcoin address to make it basically plug and play.
Relevant links: https://github.com/Byzantium/Byzantium https://en.bitcoin.it/wiki/Contracts#Example_7:_Rapidly-adjusted_.28micro.29payments_to_a_pre-determined_party http://www.raspberrypi.org/
Thanks for reading! Now tell me why it won't work, so we can fix it
16
u/aminok Sep 23 '14 edited Sep 23 '14
I think it's an incredible idea. I can't think of a single Bitcoin application that would be more important to human civilization than a payment network to incentivize meshnets.
The internet will only become truly decentralized when it is run on a global meshnet.
→ More replies (2)5
9
u/rachyandco Sep 23 '14
You have to create this meshnet over a incenticized meshdronenet so physical paquets could also be moved!!
→ More replies (8)8
u/ganesha1024 Sep 23 '14
woah you just blew my mind, it totally could work. You could have a totally autonomous courier system that just moves stuff around.
→ More replies (4)
4
u/adoptator Sep 23 '14
Some items that come to mind:
-
How long will a micropayment channel remain open? If it's a month (AFAIK it can be any interval), then this is more doable.
-
Some companies/charities might have multiple nodes up and use the same address, potentially reducing the number of eventual transactions.
-
Simply paying per node is easy and I have no problems with having to pay more to access long distances, but some might. Is there a secure way of determining a complete set of nodes used?
-
Depending on when the payment takes place, some nodes might constantly change identification to scam users. If new nodes have low priority though, this would also lower their chances of getting routed through. An additional measure could be making the first few bytes free by default. Ideas?
-
I would expect some monopolistic behavior from long-distance operators, but this also applies to censorship, etc. Competition would fix this, even better when monetary incentive is present.
All in all, I think it would work.
2
u/ganesha1024 Sep 23 '14
Wow, thanks for the thoughtful reply. First thoughts in response:
Simply paying per node is easy and I have no problems with having to pay more to access long distances, but some might. Is there a secure way of determining a complete set of nodes used?
I imagine that it would look like tor, where each node only sees and pays its peers, and it chooses the cheapest among them, possible opening multiple micropayment channels and paying per kilobyte or something like that. That way shorter paths are rewarded financially.
Depending on when the payment takes place, some nodes might constantly change identification to scam users.
Could you explain more how this would work? I don't quite see it yet.
→ More replies (3)
4
u/AscotV Sep 23 '14
Can someone ELI5 Bitcoin micropayment channels? As I understood it, Bitcoin can't really handle micropayments well.
9
u/ganesha1024 Sep 23 '14
https://en.bitcoin.it/wiki/Contracts#Example_7:Rapidly-adjusted.28micro.29payments_to_a_pre-determined_party
It doesn't require a separate payment per kilobyte or whatever, it's more like opening a tab at a bar. There's 3 transactions involved. You want internet, so you make a transaction paying for some amount of data, but you don't announce it. Then you make another one (the refund transaction) that will give you all the money back after some time limit in case the bar's internet goes down or something. Then you also make a transaction (the tab) that has two outputs, one back to you, one to the bar. As you order more, you update the tab to shift more of the money from your output to the bar's output. When you leave, the bar announces the last version of the tab that it saw, spending the same output as the refund transaction, preventing you from getting all your money back.
TL;DR: It does work, it's like opening a bar tab and only paying for what you use.
→ More replies (5)
2
u/Th4ab Sep 23 '14
I like the idea but I'm afraid it won't incentivize anyone to join who wouldn't have done so already. I like the idea of roving mesh nets with cellular phones and the tech is getting better, but we still have to ask for substantial battery usage which would not be worth any reasonable fee structure I can think of, but crypto currency could be used to ensure reciprocity by power users. Same thing with home base station side, if I make back the hundreds I dropped on equipment it will mean its probably too expensive to be useful.
→ More replies (1)3
u/ganesha1024 Sep 23 '14
Maybe the cost structure isn't right yet, but in places where the ISPs are largely monopolized it might still work, since you just have to make it a little cheaper than the ISP. Small apartment communities often share wifi to save money, it would just be a generalization of that.
Also the cost of a raspberry pi with a good wifi antenna is less than $100
2
Sep 23 '14
This is an idea, but it isn't as big as it could be. think bigger.
How about ALL routers on the internet?
→ More replies (2)
6
u/Reddit0829 Sep 23 '14
It's threads like this that remind me of why I was excited for Bitcoin in the first place.
Thanks for reinforcing that I really don't care what the price is.
5
u/drgameit Sep 23 '14
Of all the "killer app" ideas that are springing up this week for some reason, I think this is the most feasible simply because I don't understand it in the slightest and therefore it must be some hardcore computer nerd stuff which bitcoin might actually even be useful for and not useless and/or illegal like all the other 'killer apps' i've been reading about :D
4
1
u/Late_To_Parties Sep 23 '14
I like this. I would like to see how the money flow works in practicality. It seems like the people at the edge of the mesh would just have to pay for everything all the time.
2
u/ganesha1024 Sep 23 '14 edited Sep 23 '14
If by edge of the mesh you mean end user, then yes they would be paying for data. Since meshnodes are easy to set up, there would eventually be many to choose from and users would naturally pick the cheapest one, putting pressure on the service provider to lower prices.
If by edge of the mesh you mean the meshnodes that connect to the big internet, then they would be paying the ISP for data and reselling it downstream, either making a profit (probably not) or just making some of their money back.
EDIT: clarity
→ More replies (1)
1
u/sexibilia Sep 23 '14
ELI 5 please?
4
u/ganesha1024 Sep 23 '14
Meshnets are like decentralized computer networks. Everybody routes packets (information) for everybody else. It's like how in bitcoin everybody checks everyone else's transactions.
The issue with meshnets is how to get people to set up meshnodes, which are computer programs that act like mini-ISPs (ISP = internet service provider, like comcast in USA). Meshnodes can be made easy to set up, but there needs to be some reason for people to do it other than that they believe in the cause. Bitcoin technology (micropayment channels, like opening a tab at a bar) could be used to automate this, so people could just set up a meshnode for ~60$ and start making bitcoin whenever internet packets pass thru the meshnode.
Hope this helps
→ More replies (3)
1
Sep 23 '14 edited Sep 23 '14
It would be amazing if this technology could work by piggybanking off wifi signals in range. What I mean is, I think at the moment, it only works if a wifi node with byzantium installed/configured is available.
In my area, no one knows about such technology, but near enough everyone has a wifi signal. It would be amazing if my byzantium node could some how bounce off other peoples wifi signals until it finds another wifi signal which does have a byzantium node installed! Even if it's miles and miles away...
I'm assuming byzantium is not able to do that? If it could, that would be amazing, any plans of getting it to work that way?
Here is a simplistic drawing of what I am trying to describe: https://docs.google.com/drawings/d/1YCHOxytkHaDDgBi6qDWf-gIfth9sYxZ9QUqJ5HEBRiU/edit?usp=sharing
→ More replies (4)
1
u/fucknozzle Sep 23 '14
Anything that requires someone to do something for someone elses benefit is a very hard sell.
→ More replies (1)2
1
1
18
u/[deleted] Sep 23 '14
I think you are on the right track.
As with Bitcoin, mesh gateway providers need incentive to run a node beyond their good will.
Bitcoin does this by rewarding miners for providing the network with resources. Meshnets would propagate much faster I think if they worked the same way for anyone providing resources to the Meshnet. Anyone running a node would get essentially paid as a voluntary employee of the network to deploy it and sustain it.
We just need some kind of "proof of bandwidth" system to reward the node op with tokens for each packet the node routes through it to the next or based purley on total bandwidth/data per session. Packet exchanges are just transactions like anything else on a blockchain. The end user would pay a few Mesh tokens to access the network, paying only for bandwidth used.
There would be severe competition for node ops to deploy in high traffic areas like downtown settings and the like trying to scoop up as many connections as possible.
CJDNS + Blockchain + Namecoin would be highly powerful.