Paul Kernfeld

There are many great file repositories online: WikiLeaks and The Internet Archive are two prominent examples. Even these two notable sites are centralized, however. This means that censorship-happy governments can and do find ways to attack these sites by going after their founders, servers, or DNS records.

This article describes Exandria, a design for a file library with decentralized ownership. Any owner can vote to add or remove content, making Exandria extremely difficult to censor.

Properties:

  • Searching: users can search filenames
  • Downloading: the ability to download files
  • Censorship-resistant: it's hard to censor files
  • Spam-resistant: it's hard to spam the system
  • Zero-configuration: a new user can join the network instantly, without an invite

Many systems have some of these properties, but not all of them. If you know of another system that does or tries to do this, I would love to hear about it!

Overview

  • The Bitcoin blockchain is used as the canonical data source, containing links to file metadata.
  • One writes to the library by burning bitcoins.
  • Anyone can read from the library.
  • All data is transferred via P2P networks.

In this post, I'll show you how to build a client for the world's first decentralized cat name database. This will be a censorship- and spam-resistant set of cat names which anyone can write to, without an account.

First, I'll break down the requirements. For some more theory on this, see World-writable data structures by burning bitcoins.

  • Singleton: There should be a single set of cat names that is shared by everyone in the world.
  • World-writable: Anyone should be able to write to this set, without any sort of account.
  • Censorship-resistant: It should not be possible to censor particular cat names from the set.
  • Spam-resistant: The set should not be filled with junk content.

The code for this blog post is available at paulkernfeld/decentralized-cat-names on GitHub. This post is a literate program written with litpro.

Once a user knows the hash of a file in BitTorrent, downloading that torrent is easy, fast, and secure. But finding a hash is a completely different story; the hash must be downloaded from a website, which then becomes a single point of failure in the torrenting experience. The Pirate Bay, probably the most famous torrent index, is one of the most popular sites in the world; at the end of the day, many torrent users are putting their security in the hands of a few Swedish guys. If this is something that so many people care about, why aren't there decentralized torrent indices?

World-writable data structures like lists, sets, or maps could solve this problem, as well as many others. It would be possible to create censorship-resistant username registries, content directories, and domain name systems.

Currently, though, there aren't many good tools for building these shared decentralized data structures. My proposal is to build world-writable data structures using the Bitcoin blockchain. These data structures must be easy to use, spam-resistant, and censorship-resistant.

This sounds so simple... so why doesn't it already exist?

The CAP Theorem

If you can figure out P vs. NP, you'll get a million dollars from the Clay Institute. If you can prove or disprove the Beal Conjecture, you'll get a million-dollar prize held in trust by the American Mathematics Society. If you can beat the CAP theorem... I'll give you a million dollars!

Overview

"Inatissentis sentere querum" is a Latin expression meaning, of course, nothing, because those aren't real Latin words. In fact, they are fake Latin words generated by training an algorithm on a Latin text. These words look to me, a non-Latin-knower, like realistic Latin words, and hopefully they do to you, too. Of course, if you know Latin, they probably look terrible, and you're probably already mad at me. Instead, take a look at some of the other languages that I've modeled!

This project explores using Markov chains to model word structure in an alphabet-based language, after being trained on a text in that language. This model is then used to generate realistic-looking fake words and to detect "foreign-looking" words.

A video generated by the program

I wrote Utopia/Dystopia at Brown in 2012. The video is generated via a program in which each pixel is a cellular automaton. Normally, cells assume the average color of their neighbors. When a cell's neighbors are all white, though, the cell explodes in a flash of color. The program is inspired by Zamyatin's We.

Demonstration video: a time-lapse video of the Boston skyline

I created Reactor 1 in Fall 2010 as my final project for Interrogating the Digital Archive at RISD. Reactor is a Max/MSP program that generates an ambient soundtrack for a video feed in real time. The program responds to sunrise and sunset by changing the tone of the music: as the screen gets brighter, the music increases in pitch and moves faster. The program responds to sudden movement on the screen with flourishes of high-pitched notes.

A mid-difficulty level.

I wrote Shipwrite for Mozilla's Game On 2010 competition. The player draws ships with the mouse, then commands them around the screen to fight off waves of enemies. Depending on the shape drawn, the ship will have different properties: small ships are cheap, big ships are powerful, sleek ships are fast, and jagged ships can carry more weaponry.

Presenting for 800 people at New York Tech Meetup

Touch Tone Tanks was a 24-hour hack that I worked on with David Trejo and Justin Ardini for HackNY Fall 2010, at which we won second place.

The game's trailer

Robots Are People Too, or RAPT, is a two-player cooperative platformer written in C++.

A reasonably large ship using the chain gun

Space Duel was an Asteroids-style multiplayer game that I made in 9th and 10th grade.

Chili Dark 'n' Stormy.  Photo Credit: Max Monn.

Two-ingredient cocktails. If you had any fewer you'd be drinking gin from a bottle, or maybe just grapefruit juice. From a logistical standpoint, two-ingredient cocktails are great because you don't need to hunt down an endless list of liqueurs. From a sipping standpoint, it's easy to adjust the ratio of the ingredients to your liking, and simple to add a third ingredient without being overwhelmed.

The Alien Brain Hemorrhage.  Photo Credit: Max Monn.

The Alien Brain Hemorrhage is an exercise in both spelling and layering. This drink relies on the differing densities of its ingredients in order to produce a stunning visual effect. As such, it's essential that it be prepared in a clear shot glass.

The Martini.  Photo Credit: Max Monn.

Many establishments use the term "martini" to refer to any drink served in a martini glass (appletini, flirtini, velociraptini, and so on). These are not martinis, in the same way that tomatoes are technically fruits. So, maybe not the best conversation starter? A martini is gin, dry vermouth and olives. Or a lemon peel, actually, but let's just stick with the olives for now.

The Cosmopolitan.  Photo Credit: Max Monn.

The Cosmo isn't really a classic cocktail, since it was invented in the late 1980's and popularized by Sex and the City. Which, well, er, okay, just read the post, all right?

The Old Fashioned.  Photo Credit: Max Monn.

The Pitch

Anyone can tell you how to make cocktails, but why? Well, you can:

  • Make a great cocktail for 57¢
  • Mislead your friends into thinking you're sophisticated
  • Have fun mixing drinks!

Although cocktails have a reputation as a rich man's drink, you can make many classic cocktails for less than a dollar. So what's the catch? Unlike flipping the tab on a can of beer, mixing a cocktail takes preparation, knowledge, and just a little work. The world of affordable cocktails goes far beyond sorority girls pouring grape Kool-Aid into their Smirnoff, and it's worth a try if you're interested in expanding your drinking horizons without trashing your wallet.