Sunday, July 08, 2018

Blockchain Memes

I'm suggesting those tasked with evangelizing for Blockchain, take some time tuning in the memes around Rust, the computer language.

The financial industry works to correct mistakes and remove ambiguity from transactions, while those hoping to game the system kick up a lot of ink, to obfuscate their wheelings and dealings.

In writing C++, geeks may corrupt memory, leading to crashes, because the compiler is insufficiently strict.  Rust enforces the disciplines a strong C++ coder would bring to the table, through its compiler.  That's closer to what a blockchain does, when it comes to preventing ambiguities that cover for impossibilities.

Bankers may be reluctant to talk about all the double-spending schemes by which people try to auto-boot their fortunes.  Going into nit-picky detail about scams is counterproductive, as to describe exploits is to encourage them.

The cyber-security industry is already hip to this problem, of announcing a weakness in time for the white hats to apply the patch, before the black hats get wind of a new Achilles heel.

Thanks to the miracle of metaphor, akin to transposing to a different key in music, we can talk about "corruption" in the C++ context until the cows come home, thinking how writing systems that don't crash is a similar challenge to that confronting the banking industry.  The original bank is a memory bank or bank of memory cells.

What a blockchain does is impose strict auditing such that multiple observers agree, but also may contend for the right to record.  The global network learns of transactions in different orders, thanks to non-simultaneity of information transfer.  So which chronology should become canonical?

The Bitcoin answer is to hold a contest, and may the best bitcoin miner win.  This contention for control over write access is what some in-house blockchains may surrender.  The metaphor here might be unsafe mode.  Insider Rustaceans are allowed to break the rules when creating the means to enforce safety.

In sum, a C++ code base may be crash prone if open to ambiguity, which malware may then exploit.  Browsers live on the front lines in many use cases, in accepting content through their ports.  IE had to be abandoned for Edge for such problems.

Banks, which lend out and take ownership, as in Rust, may find their bookkeeping turning to garbage if the pointers turn out to not point to anything.  You've promised savings to borrowers, and interest on borrowings to savers, what could go wrong?