Zed Shaw's Utu: Saving the internet with hate

4 minute read •


A high level summary (and paraphrasing) of Zed Shaw’s talk at DEFCON 15 (in 2007) because I couldn’t find a good text version.

Utu is the Maori word for a system of revenge used by Maori society to provide social controls and retribution. Utu is also a protocol that uses cryptographic models of social interaction to allow peers to vote on their dislike of other peer’s behavior. The goal of Utu is to experiment with the effects of bringing identity, reputation, and retribution to human communications on the Internet. A secondary goal is wiping out IRC because apparently nobody really likes IRC.

The Utu project is now dead, but its source code can be found on Github. While reading this keep in mind that the core idea is a centralized chat server.

Part 1: The Idea

Philosophical Foundations

If you have and combine those, you can start to implement some controls available in human communications.

Strong Identity

In order to have strong identity everyone has a cryptographic key, but because keys are so easy to create you have to be invited, and you have to have a handshake as part of the invitation because you need to care about who the invitee is. This doesn’t work if any jerk can invite any other jerk without consequence.

  1. Zed certify that he wants to invite Joe.
  2. Joe certifies that yes, that invite is from Zed.
  3. Joe takes action to assert that they actually want the invite
  4. Zed says yup, I really did want Joe to join us.

Reputation

Rather than associating likes with an identity or posts you associate “hate” with an identity, and over time that hate builds up from many people.

“Wouldn’t it be great to punish the dickheads?”

Retribution

(Keep in mind that Utu was intended as a chat network)

As a person builds up hate they have to do some cryptographic proof of work before they can do anything. The more hate they have the more work their computer has to do before they can say anything.

This accretion of hate gives you a weighted social network that you can crunch numbers on. You can figure out who “hates” who, who talks to who, where they come from, and we can start looking at the social problem.

You can say “Hey, if we change the hate model to be this way, or we change the hate model to be that way, how does the social network change? Do the jerks go further away?”

Another alternative to hate is distance, because people aren’t prevented from talking to you it just takes them longer.

Part 2: The Implementation

Geeky Details

The Protocol

Semantics

Data Encoding

Simplicity is Key

Security Preventions

Zed believes that you need to design your software with the assumption

..that everyone on the internet is a fucking ass hole and they need to be taken down…If it goes on the internet it’s social software. It shouldn’t be designed assuming everyone likes you… Eventually some person is going to hack it. Eventually someone is going to try and abuse it.

I’m not going to be able to stop everyone…but if the server and the protocol, like from the base of the protocol on up is designed to make it so it’s harder… it’s not making it impossible, just harder… then what I’m banking on is the predator concept. A predator, when picking two different types of prey, will pick the weakest one.

The Cryptography

Details on exactly what it uses are at 20:48 in the talk.

Secure Coding Practices

Statistical Quality Control

Code Auditing

C Coding Practices

Secure Unix Server Practices

Practical Demonstration

This starts at 30:41 in the talk and involves a fair number of geeky commentary. For non geeks a) why did you read this far b) it’s just a really simplistic chat client.