Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Web3Torrent – Adding Ethereum Micropayments to WebTorrent (statechannels.org)
206 points by lihorne on June 22, 2020 | hide | past | favorite | 94 comments


"Torrenting has an incentivization problem. There is sometimes a real lack of incentive to seed a file, especially for obscure files where you may only find a single digit number of people that have it. Adding monetary incentives to the existing torrenting structure should prove to be extremely interesting."

In my opinion, if torrenting meant one needs to pay for download, we would never have heard about torrents. This might give people more incentive to seed, but I'd never use it for what I use torrents - get stuff for free or reduce the load of FOSS servers.

To me it's the usual crypto thing - very cool from a technological perspective, not useful in real life.

edit: typos


I beg to differ. I used to have a Netflix subscription here in France (not anymore), my wife is from Latin America and wanted to use English subtitles instead of French ones (and so did I), funny thing is, English subtitles were not available in France, the only way to get English subtitles was to use a proxy and a US Netflix account (not possible anymore as many proxies are blocked) or just use torrent.

There are many services that streaming companies refuse to offer even to paying customers. Now you may say "streaming companies depend on hollywood licensing per country", sure, but this case also happened on Netflix produced shows...


If you got paid for torrenting, a lot less people would torrent because of the much increased legal liability and massive increase in lawsuits.


As someone with no knowledge on the subject, why would accepting payment increase liability? As in, the target of the lawsuit would also be liable for the money they received, or something else?


Most countries have much different penalties for piracy and selling pirated goods.

For example, in Canada, the penalty for non-commercial infringement is generally about 100$, and it can go up to 5000$ maximum (repeat offenders and so on). For commercial infringement, the penalty is of 20 000$.

Furthermore, in Canada, seeding downloaded files via P2P service is of ambiguous legality, with some interpretations saying that as long as you don't advertise or try to share it with as much people as possible (positive action) required to make it illegal. Receiving payment for this would torpedo that defense, which means even higher liability. All in all, it's not a good idea.


It's probably worth noting the horrible privacy characteristics of Ethereum. With the right resources, It's straightforward to track down the identity behind the seeders.


Yeah, this will probably be integrated with AZTEC or some kind of zk scheme before it becomes a full mainnet protocol due to the risky nature of torrents.


Double criminality! If you are having to launder your micropayment income, you probably should start to question your morals...


I doubt many people have a moral quandary over torrenting. It's like video games with the ease of use of Steam and how game piracy is no longer a big problem since it's easier to just buy them, if there was a simple one-stop shop where I could watch movies and TV shows with one click I would pay for it no problem. I'm not going to pay to jump through hoops and remember 5 different passwords to 5 different services.


This uses state channels for payment which is more secretive than using regular ethereum transactions. To take the cake, the funds can be mixed on tornado.cash or AZTEC or whatever the latest ETH privacy tech is.


There are anonymous torrents thanks to I2P. If those were to become more popular, then it might be more interesting to embed payments there.


There is low chance to find a peer in I2P for some already niche material. Tor with clearnet exit nodes is better although still less peers due to NAT.



I always wondered why I see such limited options for subtitles sometimes. Some of it I'm sure has to have more options but Netflix only offers a couple...


I always wonder how normal, presumably honest, people go from "I can't watch my shows with the subtitles that I like" to "I'll just steal it."


Oh but I was still paying for my netflix subscription at the time. So technically I was just stealing the subtitles license. When I did cut my Netflix subscription, I also stopped watching shows even on torrent, haven't watched a show since 2016 when I had my kids. Youtube, twitter, facebook and now tiktok offer free alternatives and are more entertaining in my opinion. Not to mention the heavy political agenda Netflix has been pushing on their shows lately, already get enough of that on social media, no need to also get it on my show when just looking for entertainment.


Because we don't agree with copyright laws. When you steal something in the physical world, you are depriving someone of the stolen object. In the digital world that doesn't happen, you are just producing yet another copy. For this reason I can't agree with these laws where the government is giving someone/a company a monopoly on ideas or digital things, it's creating scarcity artificially. Patent and copyright laws should not exist.


sounds like some gymnastics


This has implications way beyond torrenting.

This solves the incentivization of bandwidth in a decentralized way. If we now solve the closely related incentivization of long-term encrypted storage, we would be able to build a sustainable decentralized storage service unlike torrents that are powered by fame or Infura which is powered by corporate philanthropy (which never lasts unless we become the product).

This means that we would be able to replicate backup/archive services like BackBlaze or Amazon Glacier or even ensure the longevity of archive.org.


Fun history: Bram Cohen quit Mojo Nation to make BitTorrent. Mojo Nation aimed to solve exactly the problems you're talking about. It was too ambitious for its time, apparently, but trying is how you find out.


How about distributed YouTube with micropayments instead of ads.



storj.io already does this.


Sia, MaidSafe, Storj, Filecoin, a number of networks either out or on the way for this kind of storage, theirs another one too but I can't remember the name of it for the life of me and I was a node a year or 2 ago for them lol.


People are already paying for downloading seeded torrents, they are just hidden behind private trackers, as the public torrent selection is quite small.

I'm also paying for youtube premium, at the same time the people I'm listening to have to be careful not to say ,,COVID-19'', because their revenue would drop to 0, even though it was the main meme of the last few months. I would happily pay them through lightning network instead.


People pay for private trackers? Every private tracker I have heard of is free to use. They handle the seeding motivation problem by having rules in place that require whatever level of seeding they feel is best for the community of the tracker. If you break those rules, you are kicked out. That seems to work fine without the need for micropayments.


Of the private trackers that I know of, only the ones that solicited donations were raided and taken down. I am unaware of any explicitly paid private trackers, and such a business model seems like a great way to conjure the ire of the FBI.


They instead require seeding performance/behaviour that almost necessitates renting a seedbox.


I don't understand the sites that require a > 1.0 seed ratio... Like it's mathematically impossible for everyone to seed to > 1.0


It's possible because of freeleech downloads or finding the files elsewhere and seeding them, but > 1 ratio is very strict indeed.


This doesn't seem to pay creators though, it pays people who have bandwidth to seed (redistribute) their streams instead.


It's paying the people actually doing the work required at the time (the distribution of works which are already public). If creators want to get paid they need to arrange for that before making the work public, not after. There are plenty of perfectly viable options for ensuring that creators get compensated for their work. Copyright just isn't one of them.


> the people I'm listening to have to be careful not to say ,,COVID-19'', because their revenue would drop to 0

I don't understand what you meant by this. As in, everyone's tired of hearing about it?


Early on in the pandemic, Youtube was demonetizing videos related to COVID-19 as they do for numerous other sensitive topics like war, death, or terrorist attacks. Many Youtubers would therefore be cautious even mentioning it tangentially to prevent that potential demonetization. I think it has been months since Youtube adjusted their policy on this to allow monetization (EDIT: Yep, this policy was changed over 3 months ago[1]).

[1] - https://techcrunch.com/2020/03/11/youtube-will-now-allow-cre...


Consider that private torrent networks are already essentially "pay to download" — in that you are able to download from them by maintaining an upload ratio, and you maintain an upload ratio either by renting a cloud seedbox, donating to the network itself, or paying for your own electricity+bandwidth to host your own seedboxes. And yet such networks are manifold.

I'd love something that took the incentive system that makes private torrent networks work, and made it possible to have that incentive system "accessible to the public" without destroying it. Then maybe I could finally get access to the collections that contain those weird old movies I watched once but almost nobody's ever heard of.


You would only have to pay if you download more then you consume. If you contribute back to the network, equal resources you used then it is still "free".


But you don't have to pay - you have to seed. Anyone can start seeding and selling their bandwidth back to the network.

This means that people who can't afford the content but do have a network connection actually can obtain it and contribute to the network.


Furthermore, downloading the Ethereum Blockchain, going through shady exchanges to buy ether coins, and maintaining a secure wallet is a much bigger headache than simply paying for Amazon Prime.

This is a nice tech demo but not of any practical significance.


That’s like someone in the 90s saying paying for an internet connection, getting an email address and signing up for YouTube is too much of a headache than turning on the TV.

Besides, you can earn currency from just seeding the torrent- presumably there would be a way to download some initial torrents for free and then you can contribute to the network directly without needing to get a wallet or set anything up.

It’s on the web as well, so it could be as seamless as YouTube, only you’d have a small currency counter that goes up if you leave the tab open, and you can either spend that currency by downloading or withdraw it by selling it to other users who would rather pay than seed.


Cryptocurrency doesn’t look good when it is inevitably compared with the early days of the web. The internet got rapidly better each year, whereas crypto has been around for years without any real improvements, in usability, safety, or efficiency.


I don't know what you mean. Maybe you just don't pay attention?

A few years ago transactions were limited to 15 transactions per second, today there are multiple ways to achieve thousands of transactions per second[1]. A few years ago privacy didn't exist and now there are multiple ways to achieve privacy [2][3]. A few years ago end users had to remember long complicated strings to send a transfer or to restore their wallets and now there are easy ways to transfer to human readable names [4] and social wallet recovery [5] if you lose your funds or make a mistake. Argent alone is a huge increase in usability for end users.

There are more but if you even look at these metrics then things are improving at a great clip. Faster than the early web even.

[1] https://medium.com/matter-labs/evaluating-ethereum-l2-scalin... [2] https://tornado.cash/ [3] https://www.aztecprotocol.com/ [4] https://ens.domains/ [5] https://www.argent.xyz/


If torrent required payments when they first existed, probably not. At the moment, people do pay for servers to seed torrents so that they have a positive ratio on private trackers.

Torrents don't run on altruism and they never did. You might be looking at one side of the equation, but what if you could earn cryptocurrency by using extra bandwidth on servers by seeding torrents? What if you could pay for a VPN or private server that has plenty of extra bandwidth? What if you could find something rare much easier or get it much faster?


I would be willing to pay a nominal fee to get faster, more reliable torrents. I already pay for a torrent caching service to get better download speeds.


> To me it's the usual crypto thing - very cool from a technological perspective, not useful in real life.

Indeed, the vast bulk of crypto technologies appear to be solutions out in search of problems.


If you have no problems to solve I'm sure it can seem like that. If your country has international currency controls and you need to get your hands on money that isn't going to inflate away in a few weeks, then a decentralized currency that works well would look a lot more valuable.


Could replace sites like Mega uoload...


I honestly haven't spent much time looking into "virtual state channels", but I guess, as someone from Orchid, where we have been tackling this kind of problem in what I've always felt was a much simpler and "more straightforward" way than needing a full "layer 2" network--we are using "probabilistic nanopayments", which is a concept that goes back to the 90s and thereby doesn't have a lot of "crypto" context associated with it, but even that always felt like a feature ;P) that allows for amortized on-chain settlement in a fully peer-to-peer/distributed way (with no federated network of channel "hubs")--I'm really curious to know if anyone has tried to compare/contrast the techniques. (I'd then offer to help doing an integration of our system, which we've had in production for a bit now as part of an app that looks a bit like a pay-by-the-usage VPN market, into Web3Torrent, but I can't tell if the background goal here is to examine all solutions in an attempt to make Ethereum more usable, or if the effort is to narrowly focus on this specific vision of state channels, at which point that would clearly be an awkward interaction at best ;P.)


I'm supprised no one has mentioned the fair exchange problem: if A, B engage in an exchange protocol, say A sends data to B while B paying to A, how to achieve fairness using an asynchornous protocol. Without a third party, either one of the two parties has to be in a position of advantage where it can choose to walk off without fulfilling his part of the contract.

The problem still exists under "micro-transaction" scheme, but in a less exploitable sense: because each transaction only involves a small amount of money or data, it's probably okay if you encountered with a cheater with one or two transactions. You can just block them after catching them cheating.

But the cheaters can still exploit this problem for their own gain: they just repeat this scheme with all other users on the network, until they received the whoe file without spending anything.

I don't see this protocol preventing such exploitable scenario. In fact it's a very difficult problem to solve efficiently and without a traditional trusted third party. It's even been proved [1] that strong fairness is impossible without a trusted third party. However relying on blockchain as a thrid party, it's possible to achieve this, and there are implementations [2] out there, but the challenge is throughput. Most of these solutions can only handle kilobytes/s of throughput. The computational barrier here is the vast amount of modular exponentiations.

[1] https://www.cs.utexas.edu/~shmat/courses/cs395t_fall04/pagni... [2] https://github.com/sec-bit/zkPoD-node


Great point. Not sure about state channels, but there are proposals for the Lightning Network. You could reveal a packet of data inside the payment confirmation itself, so it becomes atomic [1]. However, there are still issues: throughput, obviously, but then there needs to be a way to check the packet of data for correctness.

[1] https://lists.linuxfoundation.org/pipermail/lightning-dev/20...


Yes, it's the basic idea of all the blockchain based implementations. The challenge here is you have to seal the data packet first, make a layer 2 commitment that has some kind of cryptographic binding to the data. Then you have to have a mechanism to atomically open the data while paying the contract. This can be done with some homomorphic properties of some cryptographic primitives but the computational cost is currently very high.


You could program the rules of the state channel used to provide payment exactly for the piece of the torrent provided. Like you point out, that would use a trusted third party to implement a fair exchange.

We considered doing that, but like you also point out, if you had to sign each piece of the torrent, it would slow throughput to a crawl.


I like this approach to incentivize seeding, this could create a boom in torrenting if it works decently well and enough people hop on board. Too bad this is only running on test net, understandably.


Good luck trying to cash out any meaningful amount. You would need to declare source of funds and you really do not want write "piracy" to your bank.


Right but if you can get priority downloads on torrents, access to early releases or use the currency for other things (eg a VPN) Then you don’t need to cash out at all


You are just shifting the anti-money laundering responsibility for merchants. It is not going to be a long term game.


Cash has been around for millennia



How long until this is built into a decentralized PopcornTime-like service?


This would become the ultimate streaming service. All titles, from everywhere, available on one service. Add in a revenue sharing model for copyright holders and you've got the ultimate entertainment platform.


That was the original idea for Netflix, but the problem is that all the copyright holders decided that they wanted the profits that Netflix was pulling in and created their own streaming services.

Pretty soon some ISP is going to sell a bulk subscription to these streaming services alongside their internet package and we'll have truly come full circle.


Yep, all of the property owners want their rent seeking platforms.

The fun thing about this service is that the copyright holders don't get a choice. Their content will be on the platform regardless of what they want so they have an incentive to join the profit sharing in order to better control their metadata on the service and provide better support for their users. Or they can sit and complain and lose out on any of the profits.


Sounds kinda like the idea behind the Brave browser.


It already exists. In Sri Lanka, the biggest ISP (Dialog) has a subscription that pays for Netflix, and provides some extra bandwidth to use it: https://www.dialog.lk/netflix


> Pretty soon some ISP is going to sell a bulk subscription to these streaming services alongside their internet package and we'll have truly come full circle.

The real question is why there isn't a Aereo-like service where users time-share a pool of streaming subscriptions on different streaming services.


some isps are even running their own streaming services!


I can routinely download any torrent in the world on top speed... What problem does it solve?

Torrents, as a poor choice for the "killer app", aside, state channels are a curious technology but most traditional implementations [fully pre-collateralized channels] have a design flaw where no one wants to put money to the end user, while happily accepting inward capacity from the senders. Haven't looked into this specific implementation, i wonder if it has a fix for this. "Virtual channels" sound relevant here.


Can you? What about these countless "0 seeders" rare materials which never start or stop forever at 90% mark?


Didn't experience this problem much.

If not found on any tracker, such a material is probably too rare for anyone to care about. Even with some monetization model in place, it would be unrealistic to keep all sorts of "rare" materials in the world to make $1 from a random stranger coming once a year.

Anyway, I would't pay $1


Rare materials are what made some trackers great. Remember what.cd? That was the most comprehensive music catalogue ever. And it worked.

Also, there's the issue of people finding rare source materials, but keeping them to themselves, because sharing is a hassle. Monetization would help incentivize these people.


I think this technology is spot on for private trackers. The token used doesnt need a monetary value. It's not about monetizing per se, its more gamifying seeding. Indeed, terms like «ratio-economy» is already widely used about the seed-what-you-use model most private trackers use. Im already paying for my downloaded bits, Im just not paying money - i pay with my ratio.


Okay than just my two cents. I use torrents a lot and never had a problem finding what i needed, and i would certainly not pay a dime for some obscure per-bite streaming. Not in torrents.


Private trackers may have free entry but cost money in other ways. It's not easy to get buffer on a home connection. I have probably spent $200 on my seedbox over the years. Pay-per-bite sounds a lot cheaper in contrast.


In context of the US maybe it is different. Mine is 200mbit/s no caps $7/mo connection - common in Moscow - and I don’t remember caring about traffic or speed ever. Any torrents with 5+ seeds is like whoooosh and it’s done.


I've had plenty of problems, especially more obscure material or material not in english/russian is often just plain not available. In one case, I needed an older version of knoppix not available on their website anymore but I had a torrent file. The download took 3 months to complete due to the single seeder of that file going offline for that time.

If you only download the popular fresh content like the latest Debian ISO or something like that, of course you never have problems.


Is there a BEP to make this work for native torrents too?

Also I don't understand the name "Web3torrent", is it intended to indicate a new version?


Web3 is basically distributed internet to my knowledge, things like hosting on IPFS etc


> Users can upload files and begin seeding to earn small, incremental, amounts of money from anyone that downloads from them.

How do you know that the user uploading the file actually owns the rights to distribute the file? Wouldn't this just incentivize those with the infrastructure (e.g., money/bandwidth) to take over the market and suddenly get paid for sharing others' content?

The idea of "let's combine a distributed filesharing system with a distributed currency" is completely sound, and one that I've worked on in the past. But this is a totally backwards way of approaching the problem. You have no way of actually paying the content creators, just the content hosts. It's just more of the same, and at least with Spotify I get some neat analytical tools. But this just seems like it's designed to help the people who run topsites, not the people who actually make the content and NEED the money.

Thumbs down until you figure out the problem of rights management through your protocol.


They're building a software, not a service. They can't control what their users do with their software, in the same way that Microsoft can't control if you use Word to re-publish Harry Potter under your name.

Evaluate them by the software they build, not by how potentially some people will use it.


> How do you know that the user uploading the file actually owns the rights to distribute the file?

While I appreciate that BitTorrent files are technically used to distribute some "legitimate" things, even in those cases the people you are talking to are part of a swarm: like, the premise is that you are paying someone to have helped you get more of a file you are downloading that everyone has agreed shall cost nothing (whether or not it actually does), not that you are compensating them for the file itself (which would have value above and beyond the bandwidth and cpu costs).


Can one state channel be used to pay multiple seeders? Or do I need to create a budget for each seeder I want to interact with?


The funds you deposit at the beginning can be used to pay multiple seeders. You have one "ledger channel", funded by that on-chain deposit, which is being used to open a "virtual channel" for each seeder you connect to.

There's a bit more about it in this post: https://blog.statechannels.org/channels-funding-channels/.


Thank you for explanation. So this solves something I waited for very long.


The budget concept is a security measure between the app and the wallet, so that the app code only has control over a fixed amount of funds in the wallet.

Within the app context, an unlimited number of channels (up to the budget capacity) can be opened. The video at the top of the blog post is an example of a single user downloading from multiple other leechers & seeders while simultaneously uploading to other leechers.


Could this be ported to bitcoin lightning ?


[Member of the statechannels.org team here.]

Not directly. State channels are similar to lightning, but there's a key difference:

* in lightning each payment is routed through the network independently, requiring participation from the intermediary nodes

* in a state channel the intermediary nodes are used to establish a channel and then the payments are direct

The upshot is that in state channels, once the connection is established, the payments are truly peer-to-peer, and don't need any interaction with a third party.

We use this property in Web3Torrent, as the payments are sent directly peer-to-peer on top of the webtorrent messaging layer. This wouldn't be possible with lightning, though you could probably find another way to accomplish something similar.


What happened to traditional definition of state channels?

It used to be just like payment channels, but with a bigger scope and more fancy state operations.

The trick with avoiding multiparties was called "virtual state channels" or something like that. When did it change?


I will try to assume good faith here, and just state facts.

Lightning channels are 2 end points, p2p.

Lightning routes are a sequence of lightning channels. Routes are also 2 end points, also p2p. No trusted is required for intermediaries.

Every internet packet, unless it is you to your lan router, passes through many intermediaries. I have no idea how ethereum state channels work, but I assume they route using tcp/ip, and statechannel team understands this as p2p.

So anyway, lightning is p2p.

Cheers.

https://standardcrypto.wordpress.com/2020/04/30/a16z-struggl...


Not really because it’s tightly coupled with Ethereum smart contracts. It looks like it was built on top of WebTorrent App (webtorrent.io). Web3Torrent is currently live on the Göerli testnet.


I guess so. Seeder would need to send us a lightning invoice, and after we make a payment we'd repeat the request with a proof of payment and the seeder would send us the next chunk of data. AFAIK Bittorrent protocols are quite extensible, and adding such metadata should be possible. However, this (paid torrent seeding) only makes economic sense if all seeders demand payment, and then the cheapest ones will be winning, driving prices close to zero.

Nice idea anyways, great to see people experimenting in the space!


[perun.network member here] It would be possible using Bitcoin Virtual Channels as introduced here: https://eprint.iacr.org/2020/554 But the implementation of this is hard.


There's no reason why it couldn't be implemented. At some point I'm sure it will be, as these kinds of protocols are needed for decentralized data sharing in the future.


Like other people here, I think it's technologically interesting. Also, like many others, I don't see any great practical use-cases for this right now.

However, "if you build it they will come". I'm excited to see what will the creative minds of the internet do with this technology once it exists.


This is really cool! Will you be using it for other crypto as well?


Im not sure this article understands why torrenting is popular.




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

Search: