Skip to main content
Home

Main navigation

  • Home
  • Books
  • Contact
    • Contact Form

Breadcrumb

  1. Home

Did I invent the blockchain?

Apparently there's been some debate and I had to go back to see just what is true. (See about 1 hour and 42 minutes into the Crypto Show with Craig Wright published on Jan 16, 2018 on YouTube. )


I'm glad someone remembered the books. But isn't it a tradition to just issue some non-denial denial like, "If I did invent Bitcoin, would I be driving a Honda Fit?"


Let me go just a bit deeper. First, the ten characters "blockchain" don't appear in the latex files for Digital Cash or the extended dance remix Digital Cash 2e published in 1996 and 1997. Nor do they appear in the text for Policing Online Games from September 2003.


Still, a fairly elaborate description of a chain of ownership does appear in Chapter 13 of Policing Online Games in a section with the subhead "Peer-to-Peer"-- a section that appears right before sections with the subheads "Making Change" and "Removing the Central Bank".


As I was grepping, I was a bit surprised to find that the words "block" and "chain" do appear in close proximity in Chapter 3 of Digital Cash in a section describing digital checks. I never mentioned any concept of a proof of work nor did I imagine I was doing anything more than describing a mechanism for chaining signatures, something that seemed fairly common by the mid 1990s when I wrote Digital Cash . Most of the rest of the chapter riff on many of the classic concepts first described by David Chaum, Barry Hayes, Gus Simmons, Ralph Merkle and many of the other usual suspects.

For those who are curious, here are two snippets from my \latex files. If you would like more detail, you can certainly click on the links on the left and buy a copy.

Chapter 3 of Digital Cash

Neither of these popular forms of electronic fund transfer
does a good job of imitating the simplicity of a check. They
are hard to create ex nihilo and they don't give you as much
control as you might want. One solution is to offer digital
checks secured by digital signatures. Such a check would
consist of a block of data like this:\vadjust{\vspace*{3pt}}
\[\vadjust{\vspace*{3pt}}
\mbox{Signed$_{owner}$(Bank Name, Owner's
Name, Amount, Destination Name)}
\]
The phrase ``Signed$_{owner}$'' means that the entire block
would be signed by the owner's digital signature. The block
of data containing the bank's name would probably also
contain an electronic address where the draft could be
presented for payment. The owner's name would also
include the account information. When the recipient gets the
check, he would take it down to the bank, which would
verify the digital signature and then transfer the amount into
his account. The entire transaction would mimic normal
checks.

The system could offer proof that the check was cashed by
returning the entire block signed by the recipient's digital
signature. The bank receiving the check could add its
signature and then the bank on which the check is drawn would add
its signature before returning the check to the owner.\vadjust{\vfill\eject}
The
entire chain of signatures would look like a set of nesting
Russian dolls:\vadjust{\vspace*{2pt}}
\[\vadjust{\vspace*{2pt}}
\mbox{Signed$_{Owner's
Bank}$(Signed$_{Recip's
Bank}$(Signed$_{Recip}$(Signed$_{owner}$({\em
details}))))}
\]
The chain of signatures could be used to track down errors
in two ways. One, it would show that each person along the
chain signed off on the transaction. Two, it would show the
order of the transaction. Nesting the signatures in this way
proves the order in which the signatures were applied.



Chapter 13 of Policing Online Games

\mysubsection{Peer-to-Peer}

In some environments, it doesn't make sense to
place all the power and responsibility on a
central server. Peer-to-peer networks can also
trade bills, although they must take some extra
precautions to prevent counterfeiting. Anyone can
hand over a bag of bits to another player, but
there's no simple way to prevent them from
counterfeiting by handing over the same bits to
other people.

The best approaches can only reduce the load on
the central bank because there's no way to
eliminate it. All of the notes must run through a
central location to check for counterfeiting, and
the security of the system is directly
proportional to the time between checks. Banks
may check only a fraction of the bills chosen
at random, but they can't eliminate the check altogether.
\comref{Scientists at \indexme{Citibank}
experimented with a similar system that asked each person to
add a digital signature to a bank note whenever it traded hands.\cite{waynerdigitalcash}}

A transaction in this scheme will look something
like this:

\begin{itemize}

\item Each bill consists of a data structure
specifying the serial number ($num$) and the
denomination ($amount$): $B(num,amount)$.

\item Each bill carries with it a chain of digital
signatures of each owner, beginning with the bank
itself. If $S_{bank}(B(num,amount))$ represents
the signature of the $bank$ at the bill's birth,
then this chain might look something like this:
$$S_{Alice}(S_{Bob}(S_{bank}(B(num, amount)))).$$
This means that the bank created the note, gave it
to Bob who gave it to Alice who is now the
rightful owner.

\item The player spending the bill will add a new
signature to the chain , giving up control of the
bill and specifying the new owner. This is like
endorsing a check.

\item The new owner accepts the bill and checks
every digital signature in the chain . If they're
valid, then the new owner closes the transaction.

\item The new owner checks for counterfeits by
comparing the new bill's serial number will all
the others owned by the player. This won't detect
all counterfeits, but it will find some.

\end{itemize}

The notes grow each time they're spent in this
scheme forming a chain of custody for the cash.
Counterfeiting, if it happens, can be identified
by looking at the chain of custody. If two bills
with the same serial number appear, the
counterfeiter can be identified by walking up the
chain of custody to find the person who spent it
twice.

The role of the bank depends upon the nature of
the game. In the most extreme case, there's no
need to look for counterfeiting because the game
comes to a grand conclusion when everyone turns
in their notes and their pieces, perhaps to claim
a share of a purse. If there's one final
judgement, then everyone can search for cheating
at that point. There's no need for auditing along
the way.

Often, waiting for the end of the game can be a
mistake. Some games come with no ending. Others
could be wrecked by some jerk counterfeiting like
crazy.

Auditing can take any number of forms. Complete
audits every $n$ turns would require everyone to
turn in their bills and receive new ones. This
also saves overhead because the new replacements
would not have a potentially long chain of digital
signatures to be checked. The auditing will also
clean house and add efficiency.

Another strategy is to recall bills selectively.
Every so often, the bank will ask all bills with a
serial number ending in, say, a $3$ to be turned
in. If this value is chosen at random, the
cheaters won't be able to time their
counterfeiting for maximal effect.

\mysubsection{Making Change}

Digital cash systems in peer-to-peer environments
work more efficiently if the peers can split notes
and make change. Requiring people to head to the
bank to make change may help auditing, but it may
be too onerous in any peer-to-peer
environment.

Another solution lets users split the bills
themselves. The simplest approach is to allow
users to insert a message into the chain of
digital signatures that says, in effect, ``This
bill has been split into $n$ pieces and this is
piece number $i$." Everyone who accepts the bill
afterwards will treat it as being worth only
$1/n$th of the original denomination.

If $n=10$, then adding digits to the serial number
is an efficient solution. A player with bill
number $1045$ would split into ten parts by
creating new serial numbers $10450,10451,\ldots,
10459$.

\mysection{Removing the Central Bank}

There's no reason why there should be only one
central bank for each game.

....

  • Log in to post comments

Books

  • Agents Unleashed
  • Attention Must Be Paid, But for $800?
  • Compression Algorithms
  • Digital Cash 2nd Edition
  • Digital Copyright Protection
  • Disappearing Cryptography 1st Edition
  • Disappearing Cryptography 2nd Edition
  • Disappearing Cryptography 3rd Edition
  • Free for All
  • Future Ride
  • How To Hide Online
  • Java Beans Programming
  • Java RAMBO Manifesto
  • Policing Online Games
  • SAT Sneak Attack
  • Translucent Databases
RSS feed
Powered by Drupal