1. 10

  2. 8

    The author makes some strong arguments for implementing Bitcoin in a language with more features for correctness than popular imperative languages, but it’s not valid. Bitcoin is not a standardized system. Bitcoin is whatever the existing C++ codebase does, bug for bug. If an attacker can prompt your system to fork, or to not accept the fork that the Bitcoin community eventually decides is the valid one, they can double-spend against you until your devs can catch up. Being “correct” in cryptocurrencies is conforming, not correctness. Not having a bug that the rest of the network has is actually an incredibly dangerous bug in your system that can be incredibly lucrative for an attacker.

    A better argument to make would be that Bitcoin Haskell has great testing tools for detecting any divergence from the existing implementation, great monitoring and error-handling so your system defines circuit breakers to halt it in the presence of unusual behaviors, or to do novel cryptocurrency/other high-assurance work not requiring such dangerous integration.

    1. 2

      A better argument to make would be that Bitcoin has great testing tools […]

      Do you mean to write Haskell here?

      1. 2

        Being “correct” in cryptocurrencies is conforming, not correctness.

        If you aim for the latter at the start, it’s both.

        1. 1

          And if the majority of economic weight started using the bitcoin implementation in Haskell, that (a priori more likely to be correct) implementation would become the standard.

          You can match all the bugs and idiosyncrasies in the existing blockchain, and once you have critical mass you can stop supporting those bugs in new blocks.

          1. 5

            Yeah. It is greek-tragedy-level ironic that Bitcoin, a system created to implement Hayekian economics, is itself a Keynesian beauty contest.

            1. 2

              I’m pretty sure Austrians don’t really disagree (or care) about Keynes’ thoughts on game theory. That’s certainly not what Bitcoin aimed to fix.

              1. 2

                Yeah, I’m just tickled by the coincidence. I don’t mean it to be any kind of searing indictment of bitcoin.

            2. 2

              The proposed course of action is equivalent to a fork. Considering the Bitcoin community tore itself apart over a change of the blocksize, this is a tough row to hoe.

              1. 1

                If you want to be pedantic, I guess that’s somewhat reasonable. But then “forks” have happened many times, such as when the reward-halving behavior was changed. In the original code, which used a bit shift, block rewards would have gone back up to 50 BTC in cycles. This was fixed with no fanfare. It would be similar to that.