
At 4:27 PM 8/30/96, Jon Leonard wrote:
Tim May wrote:
I second many of the comments about the difficulties in coding a reasonably plausible game or MUD for exploring list ideas.
["Crypto Anarchy Game." value and difficulties stuff snipped]
Coding nearly any of the core cryptographic concepts for use in an online game, even without a real crypto core (e.g., using other trust mechanisms) is likely to be almost as big a job as actually coding the concepts for real-world use. Could be very educational, and a useful dry run for later real-world reification of concepts, but by no means easy.
I don't think it's quite that hard, so I tried to implement asymetric key cryptography:
20 minutes, to write and debug:
Well, cryptography (per se) is the most basic, and in some sense simplest, part of the whole thing: the "semantics" of crypto are well-understood (even if not to the snake oil salesmen and repeated inventors of one time pads). Consider that PGP was basically a realization (others existed, natch) of ideas that were almost 20 years old. Some much harder (to me) protocols: fair coin tosses, blinded coins, oblivious transfers, digital cash in all its many forms (and issues), DC-Nets, and so on. Sure, bits and pieces are codable--and have been--but a comprehensive package is tough to write. Wei Dai's and Matt Blaze's libraries are excellent, I hear, but are not targetted at creating these building blocks for crypto anarchy. And the social and organization assumptions coded into software is a major issue to think about. Some Scheme or C code doing part of these things will likely not be real useful. Your code is admirable. I did the same thing in Mathematica, a few years ago when I was still interested in the innards of RSA. (It took me longer than 20 minutes to write, though...but I also got to play around with big primes, the basic number theory stuff, etc. A useful learning experience.) But implementing more recent cryptographic building blocks seems more than an order of magnitude harder. (If you can implement a reasonably robust bank-digicash system in 10 x 20 minutes = 3.5 hours, I'll be impressed. Merely speccing what it should do and how it should behave in various situations would take far, far longer than this. Just my view. Maybe I'm wrong.)
It is a big project, but the big part is writing the MUD, not adding the crypto-anarchy stuff to it. I'm writing a MUD anyway, and have been off and on for over a year. Mark Grant's message made me think about what it would take to add the features I wasn't already planning on.
Depends on what you mean by "crypto-anarchy stuff." As I see it, it means building a reasonably robust economic system, a market or agora with various transaction mechanisms built in. Sort of a cross between "SimCity" and Vinge's "True Names."
I'm still interested in ideas as to what primitives I should fake.
And as Jim Bell noted, there are all sorts of costs which are not properly accounted for. I would not, for example, expect anything interesting to emerge out of the simulation of "assassination politics" in such a game, as the costs, dangers, moral issues, and whatnot are not properly accounted-for in such a MUD-type simulation. (No more so than in a fantasy role-playing game, where characters die routinely...)
After I think about it more, I realize that a MUD simulation can't show that something like "assassination politics" wouldn't work. At best it can show that it does or doesn't work in that particular environment, leaving open the question of what key difference between MUD and reality might change the result. Still, it would be interesting to see how it worked, or why it didn't.
Even if well-implemented (a _lot_ of effort), I doubt it would say anything more about the real-world aspects of some future crypto-anarchic world than, say, playing "Risk" or "Diplomacy" has meaningful things to say about how nations form alliances and go to war with other nations. Or as much as playing "Monopoly" teaches one about actual business and economic interactions. (Before defenders of these games jump in with comments about how useful and enjoyable these games are, sure, some knowledge is gained. But huge differences are obvious. A conclusion drawn from playing these games will not hold up in the real world. I expect the same is true of "assassination politics.") --Tim May We got computers, we're tapping phone lines, I know that that ain't allowed. ---------:---------:---------:---------:---------:---------:---------:---- Timothy C. May | Crypto Anarchy: encryption, digital money, tcmay@got.net 408-728-0152 | anonymous networks, digital pseudonyms, zero W.A.S.T.E.: Corralitos, CA | knowledge, reputations, information markets, Licensed Ontologist | black markets, collapse of governments. "National borders aren't even speed bumps on the information superhighway."

Timothy C. May wrote:
(Before defenders of these games jump in with comments about how useful and enjoyable these games are, sure, some knowledge is gained. But huge differences are obvious. A conclusion drawn from playing these games will not hold up in the real world. I expect the same is true of "assassination politics.")
By the way, has anyone noticed how injections of money from the Central Bank in the Monopoly game fuel inflation? The interesting thing is, in Monopoly inflation does not seem to be as destructive as in real life... - Igor.

Tim May wrote:
At 4:27 PM 8/30/96, Jon Leonard wrote:
Tim May wrote:
[difficulty of coding crypto, even for a MUD]
I don't think it's quite that hard, so I tried to implement asymetric key cryptography:
20 minutes, to write and debug:
Well, cryptography (per se) is the most basic, and in some sense simplest, part of the whole thing: the "semantics" of crypto are well-understood (even if not to the snake oil salesmen and repeated inventors of one time pads).
Consider that PGP was basically a realization (others existed, natch) of ideas that were almost 20 years old.
Some much harder (to me) protocols: fair coin tosses, blinded coins, oblivious transfers, digital cash in all its many forms (and issues), DC-Nets, and so on. Sure, bits and pieces are codable--and have been--but a comprehensive package is tough to write. Wei Dai's and Matt Blaze's libraries are excellent, I hear, but are not targetted at creating these building blocks for crypto anarchy.
Thanks for the list of useful protocols to consider. I'll wind up getting the rest from Applied Cryptography and your Cyphernomicon if I don't get any more input. Some of these are fairly easy to fake, though. Fair coin tosses, for example: Assume a perfectly trustworthy escrow agent. (A bad assumption in real life, but workable on a MUD, where it's the server.) Tell the agent to wait until all parties have contributed a bit, and then announce the XOR of the bits. As long as an individual has picked a bit randomly, and given it to the escrow agent securely, the result is random. That doesn't answer the questions of integration into a game, or how make a crypto anarchy out of it. I'll just have to try things and see what works.
Your code is admirable. I did the same thing in Mathematica, a few years ago when I was still interested in the innards of RSA. (It took me longer than 20 minutes to write, though...but I also got to play around with big primes, the basic number theory stuff, etc. A useful learning experience.)
My code doesn't do nearly as much as you seem to think it does. All of its "security" relies on a mutually trusted interpreter, which isn't a bad assumption on a MUD. I'm cheating on the cryptography, but I think I can get away with it for the purposes of a game. And, of course, I didn't comment it, document it, or integrate it into the rest of the game.
But implementing more recent cryptographic building blocks seems more than an order of magnitude harder. (If you can implement a reasonably robust bank-digicash system in 10 x 20 minutes = 3.5 hours, I'll be impressed. Merely speccing what it should do and how it should behave in various situations would take far, far longer than this. Just my view. Maybe I'm wrong.)
Even if it's more than that much harder, it's still worth doing. I'll see how long it takes, but I'll try for robustness instead of coding speed.
It is a big project, but the big part is writing the MUD, not adding the crypto-anarchy stuff to it. I'm writing a MUD anyway, and have been off and on for over a year. Mark Grant's message made me think about what it would take to add the features I wasn't already planning on.
Depends on what you mean by "crypto-anarchy stuff." As I see it, it means building a reasonably robust economic system, a market or agora with various transaction mechanisms built in. Sort of a cross between "SimCity" and Vinge's "True Names."
"True Names" is a better fit than SimCity for what I'm imagining. In the absence of any better ideas, it'll borrow a lot from LPmud too. I've considered a game-run anonymous market, with bid and asked prices akin to the stock market equivalents. Characters would have the money (or whatever) unavailable until the bid or ask was withdrawn, and clearing would be automatic in case of a match. It's more appealing if the market is magically provided by a wizard of some reputation, but game-run is simpler to start with.
--Tim May
Jon Leonard
participants (3)
-
ichudov@algebra.com
-
Jon Leonard
-
tcmay@got.net