|
|
|
|
|
by iudqnolq
1232 days ago
|
|
They invented a clever decentralized system based on public key cryptography, but it seems like they actually need centralized features. So they bolted some on, leaving an end result worse off than if they'd started with something simple and centralized. For example, you can ask any UK rail operator to book you a trip that includes sections run by other operators. So your purchase needs to be fed through a centralized revenue-splitting system (called LENNON iirc) anyway. Then they got the feature request that you should be able to book specific seats and someone else shouldn't be able to book the same seat, and so on. This just can't be decentralized. This setup does have the advantage that they can check tickets without needing a network connection, but I'd guess there would be simpler ways to add that to a centralized system. |
|
I disagree.
> This setup does have the advantage that they can check tickets without needing a network connection
This is the most important reason why it is implemented this way. Checking happens on rowing handheld devices which have frequently no good internet connection. Even in the turnstiles where you would think they could afford a reliable connection if said connection goes down you can’t block the flow of people.
Reliability and speed of checking was clearly the most important features they optimised for. Security, in the sense that passengers can’t just mint tickets for themselces, is a close second.
The beauty is that every centralised reporting can be deffered. In case the centralised database is down, or the checker’s network is down, you just store the timestamp and the signed ticket data and report it once things are working again. The centralised system doesn’t even need to trust the checker computers. Railway company A cannot mint a ticket from railway company B. They don’t have the keys to do that. So they cannot fraudelently divert revenue from each other. Neither accidentally nor intentionally.
> but I'd guess there would be simpler ways to add that to a centralized system.
I’m all ears. How would you do it simpler?