Moving this question into a new thread:
How much did David Chaum have solved at Digicash/eCash?
Some of the notes on the relevant wikipedia pages suggest he had double-spending solved:
...
Depending on the payment transactions, one distinguishes between on-line and off-line electronic cash: If the payee has to contact a third party (e.g., the bank or the credit-card company acting as an acquirer) before accepting a payment, the system is called an on-line system.[2] In 1990, Chaum together with Naor proposed the first off-line e-cash system, which was also based on blind signatures.[3]
http://en.wikipedia.org/wiki/EcashAnyone have any more info on this? Was eCash's remaining problem merely initial-coin distribution, or was BGP actually not (practically) 'solved' despite the above?
not solved at that time, it was only online double spend protection that was robust with Chaums scheme, and that was with respect to a central server that was the authority on which coins were spent. Good privacy, but weak survivability as very centralised.
The offline double spending protection of Chaum was kind of weak because what it boils down to is you could actually double spend, but if you did that eventually someone would learn your identity, which they hoped would be sufficient deterrent. (Eventually the double spent coins would get deposited at the bank and a simultaneous equation in the double-spenders identity revealed). How it works is the coin has embedded in it your identity in a way the bank can verify, but which is kept private so long as you do not double spend. Chaums offline double spend is a bit space inefficient as it involves cut-and-choose a generic proof mechanism, also used by zerocoin and which is the primary cause of the zerocoin bloat.
Hal Finney did a write up on this Chaum cut-and-choose scheme for more detail:
https://w2.eff.org/Privacy/Digital_money/?f=double_spending.articles.txtStefan Brands ecash system has more space efficient offline double spend protection because the coins support (without cut-and-choose) multiple attributes directly. However the default scheme is just delayed deposit (not offline respendable). Actually I guess Chaums offline scheme has that property also.
I reinvented an offline respendable variant of Brands around 2000/2001 but when I asked him about it he pointed me at a footnote in his thesis / book referring to someone's masters thesis. How that works is people have multiple spare 0-denomination coins, so when you accept a coin you use this 0-denomination coin as the initial witness (random value chosen by recipient as part of the ZKP). In this way if someone downstream offline respends and does a double spend, its their 0-denomination coin with their identity in it that gets identified as the first double-spend. A downside of this is the coins grow on each respend. Its a bit like bitcoin as the respends are also pseudonymous but linked in their spend history (which I viewed as a not ideal limitation of the approach) where as the online coins are anonymous but more vulnerable to traffic analysis as you had to race to deposit to be guaranteed to receive.
The other paper from 1999 was Sander & Ta-Shma's auditable anonymous electronic cash which is extended by zerocoin (its zero knowledge proof of set membership based - the list of unspent coins is public but to spend you prove in zero knowledge that your coin is one of the unspent ones, but not which one). Its kind of interesting as the "bank" doesnt have a private key, so its clearly p2p compatible. So kind of a zerocoin precursor existed before bitcoin, zerocoin refers to this paper.
I think the main missing bits from Chaum/Brands/Sander & Ta-Shma/b-money/bitgold were how to do inflation control without reference to any central party or network external information and sybil resistant solution to byzantine generals problem (double spend problem - which spend of many comes first). Plus a bunch of implementation level detail.
You can see that Wei Dai's b-money & Nick Szabo's bitgold both 1998 offered some directions on ideas to vote on or have a market effect setting inflation, and both included hashcash mining as bitcoin does, but they did not connect a p2p (no enrolment/no identity) solution to sybil attack on byzantine generals problem (double spending, which spend comes first) with mining, nor arrive at the elegant solution of having an engineered supply function that can be measured internal to the network that bitcoin introduces.
Adam
Expanding beyond Chaum's scheme, let me see if I've got the early attempts right:
eCash:
-- Pioneered digital signatures to do untraceable spending. "Good privacy".
-- Relied on a bank ("weak survivability"), and did not sufficiently solve double-spending
Hashcash:
-- Pioneered hashing-based proof-of-work. Built originally as an anti-DoS system that could be incorporated into a variety of projects.
-- Was not designed as a generalized digital-cash/monetary system
b-money:
-- Used Hashcash to generate coins
-- The practical-to-implement version still relied on a collection of authoritative servers to do double-spend protection.
Sander & Ta-Shma:
-- Auditable and anonymous cash
-- Still has a bank. From the paper's abstract: "The security of the system relies instead on the ability of the bank to maintain the integrity of a public database", which seems like a fatal survivability issue.
RPOW:
-- Used Hashcash (directly, or Hashcash "style"?) proofs-of-work and extended to be "reusable". Double-spend protection done via remote servers operating on trusted-computing platforms.
-- TCs can still have attack vectors pertaining to hardware manufacturers' original keys.
Bit gold:
-- Used a proof-of-work (was it actually Hashcash?) in the definition of coins as a chain of proofs-of-work
-- Described the idea of using distributed secure time-stamping to log these proofs in a "title registry".
-- Never adequately described how the distributed secure time-stamping and title-registry-appending could actually work in practice.
So none of the above sufficiently solve double-spending, and most also have economic problems with supply issuance and increasing computer hardware speed. Bitcoin is the first system to workably address both concerns...
Any corrections to the above (very) high-level description? I'm putting together an early history (designed to be very brief) for a non-technical audience, and am trying to convey the fact that people were working on this for a couple decades before Bitcoin, and that it was a gradual process, with Bitcoin finally putting the pre-existing pieces together in a new way that solves the prior problems through a mix of economic and technical approaches.
And do you have a link to your variant of Brand's work?
Thanks again for your above response to my initial question.