Hacker Newsnew | past | comments | ask | show | jobs | submit | nooneiswatching's commentslogin

This is why we have Bitcoin.


This is why we had Gold and this is why we now have Bitcoin.


Very interesting thought. I believe that chains would initially split, effectively being forks of each other. However, the consensus algorithm of Bitcoin dictates that the chain with the most work is the valid one, meaning that in the event of a "reconnection", one of the chains would be abandoned (and everyone would agree which one to keep, namely the one with the most work).

In the case of a total disconnect between countries, there is no other way than splitting the network. If partial connectivity exists (using satellites for example), transactions could still be broadcasted from one country to another. However, the same coins could be double-spent in your own isolated network as well... until a reorg happens upon reconnect.


Philosophical question: At what point do divergent chains become irreconcilably and separately valid?

Is this a property we would ever want in a should-be decentralized currency?

One way this can happen today is with intentional forks.


That is actually a good and very practical question.


I think it reduces to the chains will always have to be reconciled because you would otherwise open yourself up to N% attacks where N is whatever threshold you decided was "safe.'


The problem is, as you've said, very generally and applies to almost all p2p applications. The Bitcoin client has a series of bootstrapping attempts (https://en.bitcoin.it/wiki/Network#Bootstrapping) which involves a list of hardcoded DNS and IP addresses, and establishing an IRC connection to find peers. I think using IPFS for bootstrapping is a pretty good idea IMO. At least you're relying on an already-decentralized system and not on a central server.

I've been thinking about finding simple solutions to the problem like treating the IP space like a binary search space or generally finding solutions that are better than random sampling (More methods are compared in https://link.springer.com/content/pdf/10.1007%2F978-3-642-01...)

I anyone can recommend more resources for learning about bootstrapping methods or has examples of how other apps solve the problem, please let me/us know!


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

Search: