“If Bitcoin is decentralized, who funds its development?” This longstanding question, historically answered by the quiet work of volunteer Bitcoin developers, now has a new response: a website that allows Bitcoin users to pledge payment for protocol upgrades.
The brainchild of Pierre Rochard, BitcoinACKs aggregates pull requests for protocol improvements from the Bitcoin Core GitHub (in coder vernacular, “ACK” means that a proposal or change passes muster).
The website has been around for a couple of years, but Rochard just rolled out a new feature: a pledge option that allows users to commit funding to a specific protocol improvement and pay developers once that improvement is merged into Bitcoin Core.
BitcoinACKs: a product of the scaling wars
BitcoinACKs was born from the 2017 scaling wars, Rochard told CoinDesk. The bedlam of online debates over block size increases and Segwit made Rochard realize that a well-organized, transparent repository of Bitcoin’s development was necessary, for both Bitcoin’s builders and its consumers.
“After the 2017 scaling drama I decided to get more informed about the Bitcoin open-source development process and see if I could find ways to be helpful. One challenge I had was finding pull requests with specific criteria I was interested in taking a look at: pull requests that were old but had good reviews, pull requests that had been rejected by reviewers, etcetera,” he told CoinDesk.
Read more: SegWit Goes Live: Why Bitcoin’s Big Upgrade Is a Blockchain Game-Changer
“There are 13,600 closed pull requests and 388 open ones. For most contributors this is an intractable amount of data to digest! A second challenge was that all of the data related to pull request discussions is siloed on GitHub, and I wanted a local copy to query quickly and with SQL. That’s when I decided to build BitcoinACKs.”
A way to track pull requests, pay for Bitcoin developments
The website aggregates pull request comments from developers on GitHub to help developers stay on top of a pull request’s status. On the site, each request is accompanied by its code added and deleted count, the pull request’s author, the date the request was created, who has reviewed it, when the last commit was made in the repository, and whether or not the request has been merged into a Bitcoin Core library for deployment in a protocol update.
With this latest update, Rochard has included a “pledge” feature whereby anyone can pledge to pay contributors for their work on specific pull requests. These pledges can be paid out via Lightning or on-chain payments processed through BTCPay Server.
Those funding development will be able to choose which developer they want to pay for a given pull request, and Rochard told CoinDesk that there are no penalties or enforcements for holding a user to their pledge; it’s up to the user to decide when/if they want to pay out a pledge based on whether or not they are satisfied with the work.
If too many users flake on payments, though, Rochard said he’ll take actions to mitigate such bad behavior. This could involve using discrete log contracts to create smart-contract ensured settlement. In this case, if a user pledges funds to a developer for a pull request, when the request is merged successfully, this result is revealed to the smart contract to release payment.
Skin in the game
BitcoinACKs’ crowdfunding mechanism is a first in Bitcoin’s open-source landscape. Before, you could sponsor individual developers, but you couldn’t directly fund individual upgrades.
Rochard’s tool makes this possible with its bid to drive Bitcoin’s development with free-market principles by aligning user desires with developer incentives.
“To me, BitcoinACKs is how all work should be done: limit orders (pledges) are put in by capital owners, workers create value, and the capital owners send cash directly to the workers. If a capital owner starts spoofing (unfairly reneging on pledges), they get kicked off the platform. If workers don’t create value, then they don’t get paid.”
Read more: Summer 2020 Is Funding Season for Open-Source Bitcoin Development
This quid pro quo gives its users an avenue to express their desires for the Bitcoin protocol’s development while giving developers another source of revenue.
BitcoinACKs, then, opens a new, developing frontier for both average users and developers. Usually, open-source funding has been the realm of cryptocurrency exchanges or other Bitcoin-related companies. These actors will often offer six-figure lump-sum grants to independent developers to fund their work, as we’ve seen from Kraken, Square Crypto and others.
Now, these high-rolling sums can be matched – if not in kind, then at least in spirit – by the smaller-sum contributions of the Bitcoin community. Rochard emphasized that this model could even help fledgling devs get eyes on their work by sponsoring a bounty for their own pull requests.
User pledges vs. corporate grants
Ultimately, Rochard sees BitcoinACKs as another building block for bankrolling Bitcoin development. It’s the complementary hand shovel to the corporate grant’s bulldozer, facilitating focused, feature-specific work where the grants allow for more general, developer-specific labor.
“I think corporate grants work great for funding a specific subset of open source work: independent, self-directed work. It’s funding a public good that has positive externalities on the ecosystem, and I think every profitable business should be doing it.
“BitcoinACKs is for funding targeted, specific outcomes. For example, perhaps your business needs a specific API feature, rather than asking for favors or hiring full-time contributors, it’s more convenient to put a bounty on it.”
At press time, 11 pull requests have received pledges ranging from 10,000 satoshis to over 2 million satoshis (or “sats” – a micro measurement of bitcoin wherein 100,000,000 sats equals 1 BTC). The two most popular projects, a Bitcoin Improvement Proposal for taproot and another for encrypting messages between Bitcoin nodes, have received pledges of 2,010,116 sats (~$214 or 0.02010116 BTC) and 1,241,210 sats (~$132 or 0.0124121 BTC) respectively.