Blockchains are a way to create and store decentralized, permissionless, immutable information — attributes that can be highly relevant and valuable for distributed systems. But they also come with serious tradeoffs. When are (or aren't) they a good fit in software applications, and why?
In this talk, we'll explain the core cryptographic fundamentals and distributed-systems properties that make blockchains work. We'll rely in particular on examples from two of the most popular implementations, Bitcoin and Ethereum. By the end of the talk you should have a good understanding what kinds of applications are feasible to design with a blockchain, the enormous potential that's enabled by them, and the significant performance tradeoffs you'll be accepting if you use them.
John Feminella is an avid technologist, occasional public speaker, and curiosity advocate. He serves as an advisor to Pivotal, where he works on helping enterprises transform the way they write, operate, and deploy software. He's also the cofounder of a tiny analytics monitoring and reporting project named UpHex.
John lives in Charlottesville, VA and likes meta-jokes, milkshakes, and referring to himself in the third person in speaker bios.