Policy students often ask if blockchains can reduce corruption in the public sector. I don’t love this question (or its variants) because the framing is solution-driven rather than problem-driven. Instead of asking how we can reduce corruption and being open minded about all kinds of solutions, the question specifically asks whether a niche database architecture originally conceived for payments over the internet can help, which is odd. Rather than reflecting on the nature of public-sector corruption, the question sounds more like I am interested in finding use cases for hammers — does this problem happen to be a nail?
It isn’t a good general way to approach public policy problems, but let’s think it through anyways for argument's sake. Before we start, let’s remind ourselves that blockchains are just distributed databases where transactions and other data are recorded. Once transactions are grouped into blocks and added to the chain (the block-chain), cryptography stops them from being edited or deleted. This makes blockchains immutable (or tamper-proof) and it's the main reason why people are attracted to them for transparency and anti-corruption. So how are blockchains supposed to help?
Option 1: Upload
If you wanted to use a blockchain to fight corruption, you could use a public permissionless chain like Polygon to upload a duplicate copy of the government’s existing financial data and make it easy to browse and audit. But if you already don’t trust the government, then you won’t trust the data that it copy-pastes to Polygon. A corrupt government can always upload incomplete or misleading or fake data and the blockchain can’t magically fix that. This is known as the “oracle” problem (the problem of unreliable or corrupted external data feeds), and it has been well understood in crypto for over a decade.
You can also imagine a system where a copy of the government’s finances are automatically uploaded to Polygon through a fully automated, airtight IT system linked to the government’s bank accounts – a perfect oracle. In that case, you would trust the government's data, but not because of the blockchain. You would trust the data because of the system that produced it, the perfect oracle. What’s my point? Once you have a reliable data feed of the government’s finances, a public blockchain adds little value over a regular database with robust version control and organizations (like universities) that keep private backups.
Instead of Polygon, you could also imagine a private blockchain to upload the government’s financial data where database management (mining) is restricted to civil society (or independent agencies) instead of profit maximizing firms (miners). But then we run into the same problem as before: the government can always upload fake data, regardless of the database structure. Civil society groups might refuse to upload some data they identify as fake, but then the system would just break down. The identity and incentives of database maintainers can’t solve the oracle problem.
All these options to publish government data on a blockchain system could marginally raise the visibility and cost of government corruption, but so could equivalent systems to publish data on traditional databases that are easy to browse with public APIs. The blockchain doesn’t add unique value here.
Option 2: Re-Architect
Blockchain boosters often have something more radical in mind when they dream of axing government corruption. Instead of just uploading existing data onto a blockchain, proponents might want to rebuild the entire financial system on a blockchain, to move all the disparate bits of ad-hoc financial plumbing onto some kind of private permissioned system.
If entire countries actually went for this (none have even considered it, as far as I know), everyone would make and receive all payments on the new unified blockchain ledger, which would become the new, canonical source of truth for all domestic asset balances and transactions. In this vision, private transactions would remain private but all or most government transactions would have reduced privacy settings and be tagged with relevant information, like the line item of the budget and/or information about the specific revenue or expenditure.
In some abstract normative sense, this is a very cool vision. Putting everyone on the same ledger could reduce intermediation and reduce some frictions and costs (if designed and implemented properly). It would reduce settlement and counterparty risks and allow for new cool things that we have on public blockchains, like atomic transactions — transactions that settle instantly where exchange occurs if and only if both sides have the assets they are trading.
As a practical matter though, the vision doesn’t work. Redoing the entire financial system’s IT would be extraordinarily expensive and a colossal technical and political challenge, with massive costs falling on the private sector (on banks, payment service providers, retailers, etc). Many players in the payments space (e.g. credit card networks) would close down or have to change business models radically. Generating consensus for a change this extreme seems impossible outside an authoritarian regime, and even then, probably not worth the risk of bungling the rollout and the coordination challenge of managing so many incumbents and stakeholders that would lose out.
In practice, countries can achieve many of the same transparency gains at a tiny fraction of the cost (and without the coordination challenge) by passing a law requiring the government to tag all transactions with relevant information (budget code, etc) and forcing domestic banks to give public access to the government’s accounts and transactions through a standardized API. You don’t need a blockchain to open up the government’s finances. You just need to pass a law to do it within the existing system. Peru (to name a country I happen to have worked in) already does this with an amazing degree of disaggregation and detail.
Still, this entire Option 1 and Option 2 discussion misses the point.
What is Corruption?
Corruption is a fundamentally human problem. Simplifying drastically, officials like favoring their family, their political tribe and their allies and everyone likes consuming without producing and getting rich quickly. No matter what technical anti-corruption solution one comes up with, people will find a way to game it if the risk-reward is attractive enough.
On blockchain systems, corruption could be hidden in plain sight. A corrupt government could simply continue breaking public procurement rules and hiring unqualified cronies for important public works — the blockchain hosting the transactions wouldn’t know. A corrupt government could continue “following” procurement rules but overpaying for what it got — the blockchain wouldn’t know either. A corrupt government could follow procurement law but with a contractor that never delivers at the right quality or at all — again, the blockchain wouldn’t know. Blockchain systems cannot monitor or guarantee the quality of public spending or that the law was followed.
Corruption could also happen outside the government’s public accounts and transactions or outside the blockchain itself. Government officials could be bribed with fancy vacations, travel, private school fees or real-world assets like cars and apartments (none of this would be visible on-chain) or simply with money or assets in another country. There could still be nepotism and cronyism with government jobs and appointments and patronage with government benefits and social programs, etc etc.
What countries really need to assert the rule of law and reduce the fundamentally human problem of corruption is the political will and leadership to do so. A blockchain solution is little more than magical thinking, a half-baked policy idea to address the problem when the government doesn’t want to or isn’t prioritizing it. It’s a technical substitute for leadership and political will, which is almost always what’s actually lacking.
In a narrow sense, Option 1 doesn’t work because the government can always upload bad data and Option 2 doesn’t work because it’s too costly, risky, and complex. But the real reason why they don't work is because they don’t understand what corruption is, how it works and what it takes to get it under control. It turns out that starting from a hyped database solution and working backwards to the problem isn’t particularly helpful. Who would have thought?