69. Emails to Dustin Trammell
69
Emails to DustinTrammell
THE FOLLOWING are direct email exchanges between Satoshi Nakamoto and Dustin Trammell that Dustin Trammell has generously made available for publication.
Email 1âTimestamp and bitcoin maturity
This first exchange concerns timestamp document services and Bitcoin mining maturity. These were discussed later in a public forum, but Satoshi addressed them first in a private conversation with Dustin Trammell.
From: âSatoshi Nakamotoâ satoshi@vistomail.com
To: dtrammell@dustintrammell.com
Date: Tue, 13 Jan 2009 02:33:28 +0800
Subject: Re: Bitcoin v0.1 released
Iâm currently reading through your paper. At the timestamp server section you mention newspapers and usenet, so I thought you might be interested in this if you have not seen it already:
http://www.publictimestamp.org/
Thanks, I hadnât seen that yet. It looks very well presented.
There was an older one thatâs been running for a long timethat publishes its hashes to Usenet. Iâm surprised this one isnât using Usenet, although it is kind of difficult to get access to post to Usenet in an automated way these days. If they can get amagazine or newspaper to publish their hashes, it would work a lot easier in court for their purposes. Bitcoin and all timestamp servers share the basic functionality of periodically collecting things into blocks and hashing them into a chain.
By the way, Iâm also currently running the alpha code on one of my workstations. So far it has two âGeneratedâ messages, however the âCreditâ field for those is 0.00 and the balance hasnât changed. Is this due to the age/maturity requirement for a coin to be valid?
Right, the credit field stays 0.00 until it matures, then itâll be
50.00. Do you think it would be clearer if I left the credit field blank until it matures? I should put some text in the transaction details (when you double click on it) explaining how it works. (was it obvious you can doubleclick on a line for details?)
Be sure to upgrade to v0.1.3 if you havenât already. This version has really stabilized things.
Satoshi
Email 2âFollow up
From: âSatoshi Nakamotoâ satoshi@vistomail.com
To: dtrammell@dustintrammell.com
Date: Tue, 13 Jan 2009 15:55:13 +0800
Subject: Re: Bitcoin v0.1 released
It actually posts the hash blocks to a Google Group called âproof-hashesâ, so similar result as if it were posting to Usenet.
http://groups.google.com/group/proof-hashes
Since I run that group, and itâs sole purpose is to archiveproof-of-work hashes, feel free to join an account to have your system post there as well if you like.
Sweet, I was looking for a group like that on Usenet at one pointto see what I would use if I needed, and nothing really fit. Iâm sureGoogle groups is a lot easier to post to.
There are some scenarios where a Usenet or Google group could be used as a supplemental defence. Bitcoin is at its most vulnerable in the beginning when the total network CPU power is small. Thatâs offset by the fact that the incentive to attack it is also low when itâs small.
Hopefully the easy solution of just growing up and getting past that stage will work. If not, there are ways a Google group could help,if it really came to that.
Electronic currency and cryptography are two things that I am very interested in so as you would assume I was drawn to this project immediately when I saw it posted to the Cryptography email list. Feel free to ping me for feedback or to test out new features, Iâll be happy to help out.
We definitely have similar interests!
You know, I think there were a lot more people interested in the90âs, but after more than a decade of failed Trusted Third Party based systems
(Digicash, etc), they see it as a lost cause. I hope they can make the distinction, that this is the first time I know of that weâre trying a non-trust based system.
When the coins mature, will that generate a new âcreditâ transaction, or will the existing generation transaction lineâs credit field be updated?
The existing transaction line will change.
Upon opening version 0.1.3, all four of my transaction entries still say âunconfirmedâ, but now the Descriptions sayâGenerated (not accepted)â.
Does this mean that some other node had extended the chain first and my coins were generated in a dead branch? If so, why did the previous instance of the software not detectthis immediately and begin generating coins in the winning branch? Bug in 0.1.0?
Youâre right, sorry about that. Itâs the bug that was fixed in 0.1.3.
The communications thread would get blocked, so you would make connections, but they would go silent after a while. When youfound a block, you couldnât broadcast it to the network, so it didnât get into the chain. You werenât receiving anything either to know that the network had gone on without you, until you restarted it.
The bug is also what caused bitcoin.exe to fail to exit. The communications thread was blocked and failed to exit. Bitcoin does a careful shutdown in case it might be in the middle of an important transaction, but actually itâs completely safe to kill it.
This is all fixed in 0.1.3. If you give me your IP, Iâll send you some coins.
One other question I had... What prevents the single node with the most CPU power from generating and retaining the majority of the BitCoins?
If every node is working independently of all others, if one is significantly more powerful than the others, isnât it probable that this node will reach the proper conclusion before other nodes? An underpowered node may get lucky once in a while, but if they are at a significant horsepower advantage I would expect the majority of BitCoins to be generated by the most powerful node.
Itâs not like a race where if one car is twice as fast, itâll always win. Itâs an SHA-256 that takes less than a microsecond, and each guess has an independent chance of success. Each computerâs chance of finding a hash collision is linearly proportional to itâs CPU power. A computer thatâs half as fast would get half as many coins.
Iâll watch this instance and see how it goes...
Let me know how it goes. If you have any trouble with it, send me your debug.log file. I can often figure out what went wrong just from that.
Satoshi
Email 3âOn Bitcoinâs potential
This exchange seems to indicate that Satoshi was not expecting such rapid acceptance of Bitcoin.
From: âSatoshi Nakamotoâ satoshi@vistomail.com
To: dtrammell@dustintrammell.com
Date: Fri, 16 Jan 2009 03:15:14 +0800
Subject: Re: Bitcoin v0.1 released
Iâve had that address for a while though so hopefully mydhcp client is being successful at renewing and not losing my address. It does change from time to time, but that address should be good for a while.
Thereâs at least one node whoâs inbound IP keeps changing all the time within the same class B. Maybe every time the program is run. I wasnât expecting that.
Do you mind if I CC the rest of this to bitcoin-list or Cryptography?
BTW, bitcoin-list is:
bitcoin-list@lists.sourceforge.net Subscribe/unsubscribe page: http://lists.sourceforge.net/mailman/listinfo/bitcoin-list Archives: http://sourceforge.net/mailarchive/forum.php?forum_ name=bitcoin-list
Dustin D. Trammell wrote:
Satoshi Nakamoto wrote:
You know, I think there were a lot more people interested in the90âs, but after more than a decade of failed Trusted Third Party based systems (Digicash, etc), they see it as a lost cause.
I hope they can make the distinction that this is the first time
I know of that weâre trying a non-trust-based system.
Yea, that was the primary feature that caught my eye. The real trick will be to get people to actually value the BitCoins so that they become currency.
Hal sort of alluded to the possibility that it could be seen as a long-odds investment. I would be surprised if 10 years from now weâre not using electronic currency in some way, now that we know a way to do it that wonât inevitably get dumbed down when the TTP gets cold feet.
Even if it doesnât take off straight away, itâs now available for useby the next guy who comes up with a plan that needs some kind of token or electronic currency. It could get started in a closed system or narrow niche like reward points, donation tokens, currency for a game or micropayments for adult sites. Once it gets bootstrapped, there are so many applications if you could effortlessly pay a fewcents to a website as easily as dropping coins in a vending machine.
It can already be used for pay-to-send e-mail. The send dialog is resizeable and you can enter as long of a message as you like. Itâs sent directly when it connects. The recipient doubleclicks on the transaction to see the full message. If someone famous is getting more e-mail than they can read, but would still like to have a way for fans to contact them, they could set up Bitcoin and give out the IP address on their website. âSend X bitcoins to my priority hotline at this IP and Iâll read the message personally.â
Subscription sites that need some extra proof-of-work for their free trial so it doesnât cannibalize subscriptions could charge bitcoins for the trial.
Satoshi
Email 4âOn attacks and IP addresses involved in sending bitcoins
From: âSatoshi Nakamotoâ satoshi@vistomail.com
To: dtrammell@dustintrammell.com
Date: Fri, 16 Jan 2009 03:46:30 +0800
Subject: Re: A few thoughts . . .
I group attacks into two classes:
1) Attacks that can only be done by someone actually in the chain of communication
2) Attacks that can be done by anyone on the Internet from anywhere
Type 1 exposes you to people in your house or company on your local LAN, admins at ISPs in between, and the LAN on the recipientâs side. Type 2 exposes you to a billion people who can self-select to be attackers and get economy of scale when they develop one technique to attack multiple victims.
Sending by IP requests a new public key, so yes, itâs vulnerable to type 1 man-in-the-middle. If thatâs a concern, sending to a
Bitcoin address doesnât have that vulnerability, although thereâs a small privacy tradeoff. I have a feeling most of the time people will get Bitcoin addresses off of non-SSL websites and unsigned cleartext e-mail, which is already vulnerable to type 1 and type 2 through DNS poisoning.
One solution would be to use both the IP and Bitcoin addresses when sending (maybe 1.2.3.4-1Kn8iojk...), where the recipient uses the public key of the Bitcoin address to sign the new public key to prove that youâre sending to who you think you are. If the system starts to be used for real business purposes, I will certainly implement that. Another solution is to use SSL.
For now, itâs pretty obvious that if you send to an IP, you didnât give any other identifying information about the recipient, so youâre blindly sending to whoever answers that IP.
Another feature for later is an option to encrypt your wallet.
If I understand how that is done correctly, you just compute the transaction into the block chain and let the intended recipientâdiscoverâ it, correct?
Thatâs correct.
An alternative could be to allow the network nodes to provide a resolution service, where they ask around for the network address of a
BitCoin address, and if that node is online, once a consensus is agreed upon by the network for that address the sending BitCoin application connects directly there.
It would be nice to only need the Bitcoin address and have the IP worked out behind the scenes. Might have privacy or denial of service issues. Certainly before another sending method isimplemented, thereâs plenty of time now to fully think through the design and make sure itâs the best way.
Satoshi
Email 5âOn potential loss and the need for backup
From: âSatoshi Nakamotoâ satoshi@vistomail.com
To: dtrammell@dustintrammell.com
Date: Sat, 17 Jan 2009 02:32:48 +0800
Subject: Re: A few thoughts . . .
One thing that came to mind on this topic is the potential forBitCoin
loss if you have a system failure. The application doesnât seem to store any data in the directory that it runs in, so I assumeitâs stored in the registry and other places (havenât crackedout ProcessExplorer yet to check myself), so it may be a good idea to have the application be able to export everything that it needs for recovery to a file that could be backed up off of the system.
The files are in â%appdata%\Bitcoinâ, thatâs the directory to backup. The data is stored in a transactional database DBM, so it should be safe from loss if thereâs a crash or power failure.
%appdata% is per-user access privilege. Most new programs like Firefox store their settings files there, despite the headwind of Microsoft changing the directory name with every Windows release and being full of spaces and so long it runs off the screen.
One other thing I noticed today is that if you close the application it doesnât appear to cleanly close itâs network sockets (TCP RSTâs start flying). Probably an item for the lowpriority todo list (:
Just now added code to the next release for that.
Satoshi
Email 6âSatoshi sent bitcoins
From: âSatoshi Nakamotoâ satoshi@vistomail.com
To: dtrammell@dustintrammell.com
Date: Mon, 19 Jan 2009 00:54:32 +0800
Subject: Re: Bitcoin Transfer
It should be your Bitcoin address at home that you received it with. Thereâs no way for it to know who itâs from, so the best it can do is tell which of your addresses it was received on.
You can create multiple addresses and give a different address to each person and label them to help figure out whoâs sending to you.
It doesnât know any names other than what you tell it. The name printed there is whatâs associated in your address book for that address, either under the Address Book button or the âChange...â button to the right of your Bitcoin address.
Hey Satoshi,
After that first transfer of 25.00, you didnât send me another100.00
did you? I sent myself 100.00 from my BitCoin application at work to my one at home using the BitCoin address rather than by IP. My application at home has a 100.00 transfer received, however itâs transaction details say
âReceived with: Satoshi 12higDjoCCNXSA95xZMWUdPvXNmkAduhWvâ.
That is not my BitCoin address from work, so I assume this means that I received the payment encoded with a block that was computed by your client? If so, how did it know your name in addition to the BitCoin address that generated it? I donât recall there being a place in my application to even put my name.
--
Dustin D. Trammell
dtrammell@dustintrammell.com
Last updated