This Blog Has Moved!

My blog has moved. Check out my new blog at

Your Ad Here

Sunday, October 28, 2007

Agorist Toolkit - the Human TCP/IP Network

What is the fundamental tool that will enable an agorist economy?

A dictatorship organization is guaranteed to fail. A dictatorship organization can be shut down by killing the dictator. A dictatorship organization can be infiltrated and have its purpose corrupted.

If you're going to organize a distributed organization, there's only one sensible way to do it. Each person needs to act like a node in a TCP/IP network. Actually, a person can be smarter than a node in a TCP/IP network, because a person doesn't just forward and relay messages. A person can think and act on them.

The average person won't be able to understand this principle, that they're expected to act as nodes in a TCP/IP network. However, they don't need to think in those terms. Software will be written that does the hard work for them. Each operation will be translated into human-understandable terms.

Using public/private key cryptography, the identity of the sender and recipient can be guaranteed. If the number of bits in the key is sufficiently large, and the keys are rotated frequently, then it should be secure.

The system should be as easy to use as E-Mail. Ideally, it would be a combination of the E-Mail and wiki formats.

If you want to be able to receive messages from someone, you need to give them your public key. If you like, you can publish a public key for everyone, if you wish to be able to receive mail from anyone. Plaintext messages would be acceptable. However, the system only works if EVERYTHING is encrypted. If only sensitive messages are encrypted, it's easier to attack the system. By encrypting every communication, it's harder to mount an attack. The encryption details would not be a burden to the user, because it would be automated.

The connections would be made like in a BitTorrent network. There is no centralized tracker. Anyone with a static IP address can act as a host. People with a dynamic IP address log into all the hosts they know about, so people can connect with them.

Suppose two users have dynamic IP address, want to communicate, and are not logged in simultaneously. The message would be stored on any host they mutually trust, and the recipient would receive the message the next time he logs in. The message is encrypted, so even if the host computer is compromised, the users won't be compromised.

Already, I've mentioned one operation: send message. As in a TCP/IP network, there would also be an acknowledge message operation. An acknowledgment can be merely an "I got it" message or a reply.

Another operation is trust. Each user can rate how much they trust each other user. A trust rating can be positive or negative. Presumably, a nonnegative trust rating would mean that users could communicate with one another. A negative trust rating would mean that you felt you had been injured in some way. Negative trust ratings would need to be explained.

Notice that trust is NOT transitive. If A trusts B and B trusts C, A does NOT need to know about C's existence. In fact, it is better if A does not know about C unless he needs to deal with him directly. This way, if A is captured by red market agents, he might be forced to disclose his relationship with B, but at least C is protected.

Trust need not be commutative. If there's a centralized well-known authority, a lot of people could trust it even though it doesn't trust them. For example, if a group of people providing service X had a reputation for high quality, a lot of people would trust that group even though that group didn't necessarily trust all potential customers.

What happens if A needs a service that C is providing? In that case, A asks everyone he trusts "Do you know someone who can do X?" If B knows that C can provide X, then B will say "Yes, C does X." If necessary, the request can be propagated more than one level. If A is satisfied with C's work, then A will now say that he trusts C. If C is satisfied with A's payment, then C will now say he trusts A.

This feature, where A asks everyone "Do you know about XXX?" can be called "search". This is superior to a "google search", because A will be asking people for their judgment. A person is always going to be smarter than an algorithm.

Another feature, where A has noteworthy information, is "broadcast". For example, if A discovers that he is being investigated by red market agents, he will "broadcast" that he is being investigated. This will warn all his partners to be careful for awhile. This also could act as a call for help.

Another feature is "credit check". Using the Social Credit Monetary System, suppose A wants to trade with an unknown user D. There is no centralized issuing authority. There is no centralized database where all records are kept, because that represents an attack point. If A is accepting a debt from D, A wants to see if D is a trustworthy partner. A can ask D to disclose his current balances, all his debits and credits. Presumably, some of D's debtors and creditors will be people that A trusts. Then, A can check to see if D's statement of his account matches what the people A trusts say. For example, D can say "credit of +5 from B, debit of -10 to C, debit of -20 to E." If A trusts B and C, A can confirm with B and C. If B's and C's statement match, then A can presume that D's claim of a debit of 20 to E is also correct, even if A doesn't trust E.

Alternatively, if B introduced D to A, B may say "D is trustworthy". In that case, A would hold B accountable if D defaults. Trust can be given as a percentage. For example, B could say "I'm willing to be accountable for 20% of D's debts if he defaults." That could be good enough for A. I'll call this operation "trust certificate".

Summarizing, the operations needed are:

- send message
- acknowledge/reply to message
- search
- broadcast
- credit check
- trust certificate

More operations can be added later, if necessary. The important thing is that every operation can be communicated in a format that is easily understandable by the average person.

It isn't even necessary for everyone to be able to understand this. As long as 1-2% of the people understand the network principles, they can relay and forward messages for other people.

I'm at the point where I'm ready to write the software and start using it, if only there were other interested users.

On the other hand, the most important thing right now is to just raise the general level of awareness of agorism and keep people open to other possibilities. It's neat to think that a piece of software could be very useful in counter-economics, though.

No comments:

This Blog Has Moved!

My blog has moved. Check out my new blog at