Pages:
Author

Topic: I taint rich! (Raw txn fun and disrupting 'taint' analysis; >51kBTC linked!) - page 5. (Read 22832 times)

staff
Activity: 4242
Merit: 8672
One that auto-swaps coins with strangers in IRC using this very same flow you've got going here.
I've actually done this manually a few times with a few different people— well, IRC messages are too short for most transactions. Sad but encrypted pastebins work.  I thought it would be fun to get more people involved.
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
I find this as interesting as you do.

I hope it leads to people discovering how they can do a "fungibility project".  You know, a project that increases the fungibility of all bitcoins.  One that auto-swaps coins with strangers in IRC using this very same flow you've got going here.
staff
Activity: 4242
Merit: 8672
Ever since I was a wee lad I've had a dream .... a dream of being incorrectly assessed as impossibly rich by brain-dead automated analysis.  Now with your help I can be!

Here is how it works:  A lot of people mistakenly assume that when a transaction spends from multiple addresses all those addresses are owned by the same party.  This is commonly the case, but it doesn't have to be so: people can cooperate to author a transaction in a secure and trustless manner.   We can make it a lot easier for people making this mistake to discover their folly by making there be a single address that seems linked to everything.

So I'm generously offering to link my forum signature address with the universe. Here is where you come in:  I need someone to provide the universe.  

Here is how it works: You write a transaction that spends some of your coins, and one of my 1GMaxweLLbo8mdXvnnC19Wt2wigiYUKgEB coins:

d127a741660be02c01855c679ff8de7755bb6c2b2ceaa4848e02b14f4f0aae59:1   value 1 BTC

You send your coins back to a (new) address of yours and you my 1BTC back to me at 1GMaxweLLbo8mdXvnnC19Wt2wigiYUKgEB.

You sign this transaction— but it's not valid until both of us sign it. You send it to me (via PM, anonymous gpg encrypted email, or a post in this thread) and if I like your proposed transaction I'll sign it and announce it.  If you think your proposal is especially attractive— e.g. you're going to link me to a 100,000 BTC coin,  maybe you don't send all of that 1 BTC back to me, and maybe I'll still accept your offer (but someone else may offer a linkage just as good for less, so bid wisely!).  The most attractive offers will be involve very high value coins, or from well known public addresses and will either give me all my coin back, or even more.

After I accept whatever offer I accept, I'll post a new coin of mine for people to attempt to spend.. and we'll keep it up until people who think simplistic 'taint' analysis works get a clue.

To actually do this in bitcoin-qt/bitcoind  open up the console (in the GUI, help->debug->console) and run

listunspent you'll get output that looks like this:
Code:
listunspent

    {
        "txid" : "5e43cca439b784b8dd96035bde4573f16c0d884e1c4ba70a9fc58738af444e73",
        "vout" : 2,
        "scriptPubKey" : "76a91465a034285ca12eebfbd533cb013f1394ee11d4f888ac",
        "amount" : 0.01456000,
        "confirmations" : 28622
    },

These are your unspent coins. You can look up the txids to see which addresses they were paid to.

Now create a transaction spending the coin you picked and mine: (I'll use the above coin, but you should replace the txid, vout, and amount with something from your listunspent)

Code:
createrawtransaction '[{"txid":"5e43cca439b784b8dd96035bde4573f16c0d884e1c4ba70a9fc58738af444e73","vout":2}, {"txid":"d127a741660be02c01855c679ff8de7755bb6c2b2ceaa4848e02b14f4f0aae59",
","vout":1}]' '{"1AywL2iC7ywJCTtXb8G49WeWgEL9qCBh61":0.01456000,"1GMaxweLLbo8mdXvnnC19Wt2wigiYUKgEB":1.0}'

You'd replace 1AywL2iC7ywJCTtXb8G49WeWgEL9qCBh61 with an address of yours. And the 0.01456 with the amount of that coin— or less if you intend on giving away some of that money as fees or giving it to me to support this fun project. Tongue  (if you're going to give or try taking from me adjust the amount of 1GMaxweLLbo8mdXvnnC19Wt2wigiYUKgEB).. In any case the value of my input is 1 BTC, the sum of outputs must be equal to or less than the inputs— any unaccounted for coin is fees.

You leave the second txid/vout alone (or replace it with one from later in this thread)— thats my coin that you'll be spending.  If you want to be advanced about it you can spend several of your coins, or even get a couple friends to each chip in a coin.

This will result in a long hex string, like:

Code:
0100000002734e44af3887c59f0aa74b1c4e880d6cf17345de5b0396ddb884b739a4cc435e0200000000ffffffffb58749a8dfc5502647062e6d0105f65b8c7c58252f0853b7260bd01ffa377b1d0000000000ffffffff0280371600000000001976a9146d7dc6d75d78ce7fa9de7cac2c7f0248fec47c0c88ac00e1f505000000001976a91465a034285ca12eebfbd533cb013f1394ee11d4f888ac00000000

You can feed it to decode rawtransaction to see if you like it:

Code:
decoderawtransaction 0100000002734e44af3887c59f0aa74b1c4e880d6cf17345de5b0396ddb884b739a4cc435e0200000000ffffffffb58749a8dfc5502647062e6d0105f65b8c7c58252f0853b7260bd01ffa377b1d0000000000ffffffff0280371600000000001976a9146d7dc6d75d78ce7fa9de7cac2c7f0248fec47c0c88ac00e1f505000000001976a91465a034285ca12eebfbd533cb013f1394ee11d4f888ac00000000

{
    "txid" : "e8e0ebd096171479b060ba7f3e009955f72fb64b8eac51d17f76ee175d99d212",
    "version" : 1,
    "locktime" : 0,
    "vin" : [
        {
            "txid" : "5e43cca439b784b8dd96035bde4573f16c0d884e1c4ba70a9fc58738af444e73",
            "vout" : 2,
            "scriptSig" : {
                "asm" : "",
                "hex" : ""
            },
            "sequence" : 4294967295
        },
        {
            "txid" : "1d7b37fa1fd00b26b753082f25587c8c5bf605016d2e06472650c5dfa84987b5",
            "vout" : 0,
            "scriptSig" : {
                "asm" : "",
                "hex" : ""
            },
            "sequence" : 4294967295
        }
    ],
    "vout" : [
        {
            "value" : 0.01456000,
            "n" : 0,
            "scriptPubKey" : {
                "asm" : "OP_DUP OP_HASH160 6d7dc6d75d78ce7fa9de7cac2c7f0248fec47c0c OP_EQUALVERIFY OP_CHECKSIG",
                "hex" : "76a9146d7dc6d75d78ce7fa9de7cac2c7f0248fec47c0c88ac",
                "reqSigs" : 1,
                "type" : "pubkeyhash",
                "addresses" : [
                    "1AywL2iC7ywJCTtXb8G49WeWgEL9qCBh61"
                ]
            }
        },
        {
            "value" : 1.00000000,
            "n" : 1,
            "scriptPubKey" : {
                "asm" : "OP_DUP OP_HASH160 65a034285ca12eebfbd533cb013f1394ee11d4f8 OP_EQUALVERIFY OP_CHECKSIG",
                "hex" : "76a91465a034285ca12eebfbd533cb013f1394ee11d4f888ac",
                "reqSigs" : 1,
                "type" : "pubkeyhash",
                "addresses" : [
                    "1GMaxweLLbo8mdXvnnC19Wt2wigiYUKgEB"
                ]
            }
        }
    ]
}

Be sure to carefully add up the values of all the inputs (including the 1 BTC from me) and all the outputs and make sure you're not giving away more in fee than you want to.

If it looks good to you (it's paying you and me the right amounts) you do a signrawtransaction on it:

Code:
signrawtransaction 0100000002734e44af3887c59f0aa74b1c4e880d6cf17345de5b0396ddb884b739a4cc435e0200000000ffffffffb58749a8dfc5502647062e6d0105f65b8c7c58252f0853b7260bd01ffa377b1d0000000000ffffffff0280371600000000001976a9146d7dc6d75d78ce7fa9de7cac2c7f0248fec47c0c88ac00e1f505000000001976a91465a034285ca12eebfbd533cb013f1394ee11d4f888ac00000000

If your wallet is locked you may need to run
Code:
walletpassphrase yourpassphrasegoeshere 300
to unlock it for 300 seconds.

And send me the result that comes out of signrawtransaction.  If I like your proposal, I'll sign it, announce it, and when it's confirmed I'll post a new txid for other people to spend with me.

A coin can only be spent once— so as people use up these coins, I'm creating new ones and updating this message.  See down thread where I also list a bunch more available for spending.
Pages:
Jump to: