public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Gregory Maxwell <gmaxwell@gmail•com>
To: Watson Ladd <wbl@uchicago•edu>
Cc: bitcoin-development@lists•sourceforge.net
Subject: Re: [Bitcoin-development] Fwd: Proposal for a new opcode
Date: Wed, 21 Mar 2012 15:54:30 -0400	[thread overview]
Message-ID: <CAAS2fgRQrD0=3p2aXUpXVWV3PeWw+=Do=2CAvx1cOqwYUFrOQw@mail.gmail.com> (raw)
In-Reply-To: <CACsn0cne5An+SyKDf9w4o4Secn7C9wqqbG7ff0HB3Dvk-XxHRg@mail.gmail.com>

On Fri, Mar 2, 2012 at 2:57 PM, Watson Ladd <wbl@uchicago•edu> wrote:
> Dear all,
> I am proposing a new opcode for the purposes of anonymous
> transactions. This new opcode enables scripts to be given proof that
> the receiver can carry out or has carried out a previous transaction.
> I'm currently working on a paper that discusses using this opcode for
> anonymous transactions.


Here is an alternative protocol:


N parties wish to purchase equal amounts of Bitcoin without the
exchange being able to link their future transactions, they each put
the relevant amount of gold/whatever up at the exchange.

The exchange provides the exchanges public key, and the user provides
a public key for signing.   Externally the N participants agree on a
collection of non-cooperating mixers (the mixers may actually just be
the participants themselves, independent third parties, etc).   Each
participant generates a new bitcoin address, and encrypts it with the
the public keys of the the exchange and all the mixers using an
appropriate communicative homorophic scheme (or just a layers stack of
regular encryption keys).  The participants then combine their
encrypted addresess into a block and hand it off to the mixing chain.
Each mixer randomizes the order and decrypts all the messages with its
key.

At the end of the chain the exchange does the final decryption and
presents a list of addresses to the involved users.  Users validate
that their address is in the set and sign the entire set.  Once all
involved users have signed, the exchange pays.


This requires no changes to the Bitcoin system and could be trivially
implemented by anyone interested.  It provides anonymity which is
strong so long as any one of the mixers is uncompromised.  It has very
low overhead.   It is not directly resistant to disruption, but if
participation in an identified round requires a key provided by the
exchange, abusive users can be detected and excluded.

Have I explained this clearly enough? I could probably implement the
whole system it if its unclear.

Can you contrast this with your proposal for me?



  parent reply	other threads:[~2012-03-21 19:54 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CACsn0c=P1veYnmXe4E3qU0OC=Xr9Aw6Fy=6Zm0sUAaSBEDvpMA@mail.gmail.com>
2012-03-02 19:57 ` Watson Ladd
2012-03-03 17:55   ` Gavin Andresen
2012-03-05 14:14   ` [Bitcoin-development] " Michael Grønager
2012-03-07  0:05   ` [Bitcoin-development] Fwd: " Gregory Maxwell
2012-03-07  0:42     ` Watson Ladd
2012-03-21 19:54   ` Gregory Maxwell [this message]
     [not found]     ` <CACsn0cmfwuBpFTTMZ9psOoTKb3ovmAdb=VTSYQ7LJaf8+YzTUg@mail.gmail.com>
2012-03-21 22:02       ` [Bitcoin-development] " Watson Ladd
2012-03-22  0:49         ` Gregory Maxwell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAAS2fgRQrD0=3p2aXUpXVWV3PeWw+=Do=2CAvx1cOqwYUFrOQw@mail.gmail.com' \
    --to=gmaxwell@gmail$(echo .)com \
    --cc=bitcoin-development@lists$(echo .)sourceforge.net \
    --cc=wbl@uchicago$(echo .)edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox