12

I’m spending a lot of time debating people about Bitcoin online these days. One issue that I encounter regularly is that my opposite colloquists are unaware of the contributions the Blockstream developers have added to the Bitcoin project since the company was founded.

My aim is twofold: I’d like to be able to simply link this question next time I read "Blockstream produces only vapour, and contributes nothing", and I think that the answer to this question deserves more visibility.

Please list what measurable contributions Blockstream developers have made to the Bitcoin project?

5
  • 1
    Good question. I'll add to the answer later. Note that you are limiting this list to Blockstream (that's ok) but most of the members of what is now Blockstream were already big contributors to Bitcoin before Blockstream was founded. Just wanted to leave that as a side note.
    – Jannes
    Commented Jan 18, 2016 at 19:15
  • @Jannes: This is intentional as for some reason there is a prevalent prejudice against the work of developers since their joining of Blockstream. It doesn't have to be answered that strictly though.
    – Murch
    Commented Jan 18, 2016 at 20:14
  • @Murch note, that I replied to the question in bold, ie. contributions to the Bitcoin project in a general sense rather than contributions to bitcoin-core only. I just realized that maybe you meant only bitcoin-core..? I will try to update including more specific information on that.
    – karask
    Commented Jan 19, 2016 at 9:35
  • @karask: No, not necessarily. I mostly would like to have an overview of tangible contributions to refer to. :)
    – Murch
    Commented Jan 19, 2016 at 9:44
  • @Murch ah, great then those are by far their biggest contributions that I know of and I might add more if something new comes to my attention.
    – karask
    Commented Jan 19, 2016 at 12:50

3 Answers 3

16

Disclosure: I'm a Blockstream co-founder

Major feature contributions to Bitcoin Core:

  • Greg Maxwell, Andrew Poelstra and myself (as well as several other contributors) worked on libsecp256k1, a well-tested library for efficient elliptic curve cryptography using the curve secp256k1. Bitcoin Core switched signing to it in 0.10 and verification in 0.12 (with a 5x speedup for signature validation as a result). This work also led to the discovery of CVE-2014-3570 (OpenSSL bignum squaring bug). Work on the library started as a hobby project of mine in 2013, but many optimizations, tests, correctness proofs, and automated verification were added after we could work on it full time.

  • I worked on headers-first synchronization (Bitcoin Core 0.10), a new mechanism for block chain downloading which downloads from multiple peers at once, and solved many of the problems with the earlier mechanism. The idea was first described by Greg Maxwell in 2012, but the implementation only got finished after starting at Blockstream.

  • Jorge Timon and Matt Corallo (as well as Cory Fields) worked on the creation of libbitcoinconsensus, a shared library built from the Bitcoin Core codebase that exposes part of the validation logic, and shipped with 0.10.

Besides that, we provided a large number of changes implementing numerous features, cleanups, optimizations, refactors, improvements, and general maintenance. When looking at the history of Bitcoin Core v0.12.0rc1 after august 1st 2014, 500 out of 2185 commits (23%; over 30% when including libsecp256k1) came from Blockstream employees and contractors. Most of these people were active in the project long before the creation of the company, as these same people were responsible for 866 out of the 4195 commits before august 1st 2014 (20%). These numbers exclude merges, to avoid favouring people with commit access to the repository.

We were also involved in several improvements not directly related to Bitcoin Core code changes:

  • BIP66 fixed a potential forking risk from the network that was caused by an inconsistency across platforms between OpenSSL versions and opened the door to non-OpenSSL based validation.
  • BIP68BIP112, and BIP113 were proposed and first implemented by Mark Friedenbach to introduce relative locktimes and enforcement thereof, which are necessary for more efficient payment channel systems like Lightning.
  • Several generic blockchain technology improvements were discovered by us and implemented in our first technology demo sidechain Elements Alpha, including segregated witness, confidential transactions, Schnorr signatures and key tree signatures. Segregated witness is currently being worked on as a soft-fork for Bitcoin (BIP141 through BIP144), and includes script versioning which makes introducing things like Schnorr signatures in future softforks much easier.
  • Other proposed BIPs: BIP99 (consensus change best practices) by Jorge Timon, BIP103 (block size increases following technological growth) by me, BIP111 (NODE_BLOOM flag) by Matt Corallo, BIP9 (Version bits with timeout and delay) by me, Greg Maxwell and Rusty Russell (as well as Peter Todd).
  • Matt Corallo implemented and operates the Bitcoin relay network, providing low latency block propagation to various parties.

This list is by no means exhaustive, and I'm probably focusing mostly on contributions I participated in myself.

0
2

I know of their work on:

They lead these efforts and are close to implement a production sidechain. These contributions are quite impressive.

For the above projects some changes are required to bitcoin-core as well (e.g. OP_CHECKLOCKTIMEVERIFY, OP_CHECKSEQUENCEVERIFY, ...) and they contribute towards that end as well.

0

The Blockstream Research team wrote about a new formally-proved fast & constant-time extended GCD algorithm that's under development for libsecp256k1 which would dramatically improve transaction signing performance and verification for Bitcoin nodes.

A new fast, constant-time extended GCD algorithm is under development for libsecp256k1. This algorithm would dramatically improve transaction signing performance (which is often done on very weak hardware) and verification (which must be done tens of millions of times by Bitcoin full nodes). However, verifying the correctness of this new algorithm was an open problem.

To verify the correctness of this novel algorithm, devs created a formal proof of its correctness in the Coq proof assistant. They took advantage of Coq’s ability to perform proof by reflection to execute a convex hull computation within the proof assistant and verify that this computation is correct.



def gcd(f, g):
    del = 1
    while g != 0:
        if del > 0 and g & 1:
            del, f, g = 1 - del, g, (g - f) >> 1
        else:
            del, f, g = 1 + del, f, (g + (g % 2)*f) >> 1
    return abs(f)

Those interested in verifying the proof themselves can find the Coq code in safegcd- https://github.com/sipa/safegcd-bounds/pull/7

Source: https://medium.com/blockstream/a-formal-proof-of-safegcd-bounds-695e1735a348

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.