Earlier quoted context omitted.
So now you have the drawbacks of both as well, in that the guy who has the most compute to use as a toaster can DoS everyone else. Plus, PoW is nothing but wasted, needless computation . Computing is not free . Every watt spent doing anything PoW is just that much more intensification of our current climate crisis. As someone with temps of 109 with heat index of 120 coming in the next few days, with all due respect,…
This is an example of the common fallacy of conflating energy consumption with carbon-intensive energy generation.
Proof-of-Work Defense for Onion Services
121–130 of 159 posts
Re: Proof-of-Work Defense for Onion Services
#122Earlier quoted context omitted.
Regardless, you need a device that’s more powerful than whatever the attacker is using. The article says they target 1 minute solve times under load. If that’s 1 minute on a 5GHz, 64 core machine with 512GB ram, an A100 and an FPGA, then it’s going to be at least 5-15 minutes on your phone. Also, the server farm can parallelize work across an arbitrary number of challenges, but legitimate users cannot.
Requiring regular users to compute PoW is a terrible idea. Actually it has the exact opposite effect. It will keep the attackers in, and the regular users out. The problem is that we don't know how much is a cheap computation without first relying on a marketplace of computation and discovering the price. That marketplace of computation does exist, and it's called blockchain.
The upside is that the server does not go down, so at least some users will be able to access the website, compared to zero users
Re: Proof-of-Work Defense for Onion Services
#123Earlier quoted context omitted.
Proof-of-work uses resources like memory, CPU, hard drive space, and so on for their challenges which just means that the person with the most resources has a disproportionate impact within the system. A botnet owner has more total resources than anyone else so any PoW challenges that a server issues can be easily outsourced to the system. Overall, they will have more leverage from these resources than the number of…
You're trying to solve a straightforward engineering problem with an unfit solution to an ill-defined problem. The solution of sybil problem would not solve the case of coordinated attack by multiple nefarious agents. You can also call this meat botnet owned by master-coordinator. The solution would distinguish this from a normal botnet but in the end your service down in the very same manner and clients gave up most…
>and clients gave up most of their privacy for nothing.
Also not really sure how giving up privacy comes into this? Depending on how the scheme is implemented you can still preserve all the same privacy of using Tor with provisioning keys. E.g. you might use enclaves and keep verification hidden inside enclaves (so hosts cannot see the challenge protocol) or use zero-knowledge proofs to hide everything.
There may even be simpler algorithms since the certificate chain would be using something like RSA SHA256 (which have some neat math tricks to modify them more compared to other algorithms.)
Re: Proof-of-Work Defense for Onion Services
#124I'm wondering if there is a more elegant way to solve sybil attacks here. For example: many CPUs are provisioned with key pairs that are unique to the processor and can be verified with the CA root cert of the issuer (Intel, AMD, etc.) You could tie PoW to successive signing and allow it to be verified in parallel. Then the operation couldn't be parallelized to a botnet as all PoWs would be unique to a CPU. It seems…
If you are suggesting solutions based on immutable hardware keys and certified chain of custody from the manufacturer,I have to ask if you understand what TOR is.
Re: Proof-of-Work Defense for Onion Services
#125Earlier quoted context omitted.
is it really running hashes, or is it probing your browser to see if your video card drivers look like phantomjs
I was actually quite curious about that and I found this. >With a JS challenge, Cloudflare presents challenge page that requires no interaction from a visitor, but rather JavaScript processing by their browser. >The visitor will have to wait until their browser finishes processing the JavaScript, which should be less than five seconds. https://developers.cloudflare.com/fundamentals/get-started/c...
Re: Proof-of-Work Defense for Onion Services
#126Earlier quoted context omitted.
The article itself lacks details on what proof of work actually is - based on your answer I’m assuming compute rather than captcha. Is there any example algorithms that are easy to understand? I’m curious to see an algo that’s expensive for the client but cheap for the server to verify, I assume it involves reversing an equation or similar?
Equihash (Birthday Problem): Memory Hardness https://en.m.wikipedia.org/wiki/Equihash RandomX (Execution of a random program): Memory Hardness (Inc. cache sizes), Speculative Execution/Branching, ILP, some sort of chaining https://github.com/tevador/RandomX/blob/master/doc/design.md Edit: these are examples of CPU-bound PoW. But the general idea with PoW is that you have some hash-like function H() with no known inve…
No; that's a particular PoW algorithm called Hashcash [1]. There are other, asymmetric ones, where PoW verification is different from a solution attempt, including the Equi-X PoW that ToR is implementing.
Re: Proof-of-Work Defense for Onion Services
#127Surely the DDossers will just use some of their botnets for generating the POWs? I don't think I fully understand the scheme. Is the idea that as the attack progressed this would consume more and more of their resources making an attack impractical? Surely in that scenario more and more of the real traffic's resources would be consumed by them having to solve puzzles also, so Tor would in effect be cooperating with t…
No, I think it makes the the experience strictly better for normal ("real") users. On phones it might burn too much battery, but on desktops or plugged in laptops dedicated users can configure their user agent to send in difficult proof of work submissions, getting closer to the front of the line. The actual problem starts when each individual request coming from the botnet starts submitting more proof of work then t…
I think there is a second cost aspect to this as well; right now, hacking low-powered IoT devices and making them part of your botnet is (relatively) easy and valuable, but as their computing power is quite limited, a PoW defense should make them less viable for DDoS attacks, decreasing the amount of free attack power.
Re: Proof-of-Work Defense for Onion Services
#128It's a shame that Torproject has decided to reinvent its own wheel, lagging 10 years behind the crypto crowd, instead of integrating with existing coin(s). The problem is, such integration would require the chosen coin to be anonymous, which is essentially forbidden: https://www.theverge.com/2023/8/23/23843161/tornado-cash-ind...
This proof of work doesn't mean crypto currency, it doesn't mean coins, it doesn't mean buying or selling tokens. It means proof of work. More exactly, having to put your computer at work in order to solve an equation. If you do that, the server lets you in. If you don't, you can't enter.
This is the original proof of work. It's also proof of work when you solve a captcha, it's just a different proof of work, a human, mental one. Here, it's a computer one, meaning in order to access a website a thousand times, you would have to run the proof of work a thousand times, so a thousand times more ressource.
I really wished you gave the article a read, before saying Torproject is a shame. Maybe you are?
Re: Proof-of-Work Defense for Onion Services
#129Re: Proof-of-Work Defense for Onion Services
#130It's a start but eventually I'd be great to add some sort of payment layer much like bitcoin lightening. If running a node pays much more people would be willing to do so.