
Ask HN: How does a bank store money? With SQL? - mettamage
We know quite a bit about how cryptocurrencies work. I now wonder where can I read more on how bank technologies work. Some naive questions (gotta start somewhere):<p>Is a MySQL database keeping track of how much money I have?<p>Can these databases &#x2F; technologies be hacked?<p>Have they been hacked? And how?<p>To what extent is this stuff open-source and closed source?<p>Are certain programming languages and&#x2F;or frameworks fundamental to the electronic transfer of bank money?<p>In short: how does the technology of fiat&#x2F;normal money work, technically?
======
Nextgrid
The underlying database technology isn't really relevant. MySQL or Postgres
can work perfectly.

The database doesn't just have a row with your name and balance in there, it
also has a row of every single transaction, in an out of your account. The
balance can be stored denormalised for ease of access however the true figure
is always the sum of all the transactions into your account.

The database could indeed be compromised however there are (or should be)
layers and layers of security that means it will be difficult (and probably
unnecessary - there are much easier ways to steal money than compromising the
ledger itself). Banks have been compromised in the past at different levels
but I haven't heard of an incident where the ledger itself was affected. There
was a case where the machines used for large wire transfers over the SWIFT
network were compromised to issue transfers of large sums of money but this
was hidden from the sending bank and thus not recorded on their ledger at all
(until they found out).

A lot of it is closed-source however it is not a requirement. Monzo for
example (a modern bank in the UK) uses Cassandra for their data storage as far
as I know.

Same applies for programming languages or frameworks, a lot of it is closed
source and running on obscure stacks like mainframes, but at the end of the
day the role of a bank is just to keep accurate records and communicate with
the different payment networks (card networks, national money transfer
services like Faster Payments in the UK or ACH, international transfer
services like SWIFT). Monzo primarily uses Golang, Starling Bank is in Java,
and I heard Curve (not really a bank but technically similar) is in PHP.

