4 ms·
One issue with that is it takes equally as long to verify a solution as it does to compute it. There's also no obvious way to generate instances of problems th
by treyd 3y ago
One issue with that is it takes equally as long to verify a solution as it does to compute it. There's also no obvious way to generate instances of problems that are actually desired by people in such a way that commits to a new block in the way hashcash does. And there's also the problem of how you actually collect those questions in a way that can't be trivially compromised.
- 6510 3y agoThe dogma is that money makes trade easier. In bittorrent tit for tad there is no need for long term ledgers. You have lemons, I have sugar, we can both make lemonade. To buy your house with lemonade a more complex system is needed but to use that complex system for everything seems inefficient. > One issue with that is it takes equally as long to verify a solution as it does to compute it. Validate? If the "impossible" can be done on a group of nodes repeating it isn't hard, it just costs what it costs. If you have a bunch of not very trust worthy nodes the challenge of repetition seems ideal. They can be made to do enough validation to earn enough trust to do their one nefarious act which resets their trustworthiness while the network keeps the fruits of their labor.
- treyd 3y agoTit for tat works in BitTorrent since I already know what each chunk looks like (verifying it is just hashing it and comparing against the index in my .torrent file), bandwidth is interchangeable with bandwidth, and the local view of bandwidth accounting is all that matters to me. How you behave with other peers matters little when I know how you're behaving with me. But as a consensus mechanism that doesn't work since we do have a global state we need to negotiate. Proof of work isn't about establishing trust, it's just about constraining the rate at which blocks can be added to the chain and for reconciling forks. The cost to verify the transactions in a block is minimal. Hashcash works because to solve an instance of it, m, a you have to find some n where H(m,n)<(1/difficulty), which takes a lot of time to try different values of n for a candidate payload m, but to verify it you just have to give me m and n and I only have to check the hash once. And the difficulty value is a dynamically adjusting parameter that keeps the network running at a consistent rate, indirectly being a spam prevention. It's not a mechanism to establish trust in (the blocks of) particular nodes. NN inference doesn't work that way. To check that you ran an inference properly I have to do the inference myself too. (Ignoring advanced techniques that are more application-specific.). If we wanted to use it to establish trust, then a new peer that joins the network would have to redo all of the work that every peer they interact with has ever done, to determine the level of trust in it. Or if you wanted to build a consensus protocol with that trust primitive then you'd have to redo all the work everyone that's ever proposed a block has done. And that still doesn't do anything about ensuring the inference that these block producers are doing is actually useful to somebody. Fwiw, I'm not trying to defend PoW here. I'm just trying to articulate why it's proved very difficult to find an alternative to hashcash that has the same set of properties it does, despite 10+ years of effort.