Hacker News new | past | comments | ask | show | jobs | submit login

It shouldn't be done, Uniswap solves a problem that cryptocurrency made for itself. Otherwise, Forex trading has been a thing for decades. Failing that, I might be pedantic enough to suggest that it is possible. "The Blockchain" is just a single permutation of many data structures that could handle such a workload. Hell, you could even use PGP signing to replace a Blockchain altogether, designing a peering system that works similar to proof-of-stake, but without the append-only database or mechanical transaction signing. There are hundreds of such theoretical systems that would have no problem handling this, and I think it's pretty silly to assume it "can't be done". Bittorrent navigated a similar problem space without using a Blockchain. IPFS tackled a bigger problem space than cryptocurrency, and implemented things better than a Blockchain would have. By rejecting a Blockchain, IPFS was able to add sophisticated features like versioning, pinning, high-performance DNS resolution and peering that actually scales.

I think you're overestimating how hard this is to fix, and the utility that the Blockchain is providing in something like Uniswap.




You're not wrong that what IPFS and BitTorrent have done is impressive. I'm not a zealot, and I'll be the first to admit that there are lots of things that don't need a blockchain, including things like a hypothetical decentralized Google Docs. But the difference is that those tasks can be solved using clever tricks that make it so you don't need to be too concerned with the order of events.

For example, when designing a google docs clone with collaboration, the naïve way to implement that would be to have all the users' computers be sending messages like "insert character 'a' at position 43", etc. The problem with this approach is that it makes the order of events very relevant - you'll get a different result depending on the order you process the messages. The trick is to give each character a unique ID, and then send a messages like "add a character `a` after the character with id 29239810", and then the order is irrelevant.

It happens that not every problem can be expressed in this order-independent way. In general, the ones that can are those that can be expressed in monotonic logic. For some problems, there's no way not to care about the order of events.

If you're unlucky enough to have one of those problems where you have to care about the order of events, you need some degree of coordination between all the nodes in your network to make sure they agree on the order of events. For a high-security project like uniswap, you also want the additional guarantee that the order of old events that the network agrees on is unlikely to change - it's bad if an event that happened yesterday gets reordered or dropped.

Additionally, we're talking about something decentralized here, so we don't want to assume that everyone on the network is honest. If there's a way that a dishonest person can easily stop the network, or cause honest nodes to get out of sync, or cause the order of old events to change, that's really bad.

It turns out that all the good ways to do that look a lot like a blockchain. I'd be eager for you to prove me wrong here.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: