Author

Topic: Creating a transaction without the blockchain? (Read 1375 times)

legendary
Activity: 1896
Merit: 1353
Heyaa.... is it technically possible to generate a transaction from a private key and somehow get it out into the block chain without actually having the blockchain? Like to make a really lightweight "spend only" client with your private key(s) in it?

Help me, big brains!


Electrum does exactly that
full member
Activity: 184
Merit: 100
Feel the coffee, be the coffee.
What you need that is NOT listed, is the full TXID+index+amount of the incoming coins you want to spend.  TXID is a 256-bit number identifying the transaction that sent you the coins, index is a small number (usually 0 or 1) that identifies which of the payouts belonged to you (since one TXID can and usually does have multiple payouts - one for you, one for the payer to get back his change) and of course you'll need to know the amount so you can generate an appropriate transaction to pay yourself back the change from the transaction you later produce (you need to know how much the change will be for this to be possible).

If I understand correctly, this would amount to a list of unspent outputs belonging to me ?

This is pretty cool, as an offline/portable device could sign a transaction and hand over the TX to an internet connected vending machine (via NFC or QR code) that does the validation and dispense a product.
legendary
Activity: 2506
Merit: 1010
My Wallet in Blockchain.info can be used offline to do this.  The code that does this is in Javascript.  You do need to have logged into the wallet in the browser previously, but from that browser wallet, the transaction can be performed offline.

 - http://blockchain.info/wallet

The transaction then can be transported and used with their pushtrx page (or with RowIT's Bitsend)

The instructions are:
"To complete the transaction open one of these pages blockchain.info/pushtx or bitsend.rowit.co.uk. Copy and paste the text below into the textarea and press submit to complete the transaction."

And the links are to:

 - http://blockchain.info/pushtx
 - http://bitsend.rowit.co.uk


Armory has instructions how this is done with their client as well:

 - http://bitcoinarmory.com/index.php/using-offline-wallets-in-armory
member
Activity: 76
Merit: 10

You of course need to know your private key.

You don't need to know your public key, it can be calculated from your private key.

You don't necessarily need to know the recipient's public key, just their Bitcoin address.  (but if you have their public key, you can calculate their Bitcoin address from it).

What you need that is NOT listed, is the full TXID+index+amount of the incoming coins you want to spend.  TXID is a 256-bit number identifying the transaction that sent you the coins, index is a small number (usually 0 or 1) that identifies which of the payouts belonged to you (since one TXID can and usually does have multiple payouts - one for you, one for the payer to get back his change) and of course you'll need to know the amount so you can generate an appropriate transaction to pay yourself back the change from the transaction you later produce (you need to know how much the change will be for this to be possible).

That makes a lot of sense; good to know. I did mean that you need your public key eventually for creating the transaction, not necessarily that you need to know it ahead of time. I completely forget about incoming transactions though  Undecided. So, if you're trying to avoid storing the entire blockchain, would you want to contact a server to get your transaction history every so often?
donator
Activity: 224
Merit: 100
I think all you need to make a transaction is your private key, your public key, the recipient's public key, and the amount. Have a look at https://en.bitcoin.it/wiki/Transactions#Transfer_to_Bitcoin_address . Once you have the transaction made, you need a way to broadcast it to the network. I know a lot of lightweight clients already have the functionality for doing that, but there's also http://bitsend.rowit.co.uk/ for a browser-based version.

You of course need to know your private key.

You don't need to know your public key, it can be calculated from your private key.

You don't necessarily need to know the recipient's public key, just their Bitcoin address.  (but if you have their public key, you can calculate their Bitcoin address from it).

What you need that is NOT listed, is the full TXID+index+amount of the incoming coins you want to spend.  TXID is a 256-bit number identifying the transaction that sent you the coins, index is a small number (usually 0 or 1) that identifies which of the payouts belonged to you (since one TXID can and usually does have multiple payouts - one for you, one for the payer to get back his change) and of course you'll need to know the amount so you can generate an appropriate transaction to pay yourself back the change from the transaction you later produce (you need to know how much the change will be for this to be possible).

Right, this is what I was trying to say... albeit without the same depth of technical understanding Smiley
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
I think all you need to make a transaction is your private key, your public key, the recipient's public key, and the amount. Have a look at https://en.bitcoin.it/wiki/Transactions#Transfer_to_Bitcoin_address . Once you have the transaction made, you need a way to broadcast it to the network. I know a lot of lightweight clients already have the functionality for doing that, but there's also http://bitsend.rowit.co.uk/ for a browser-based version.

You of course need to know your private key.

You don't need to know your public key, it can be calculated from your private key.

You don't necessarily need to know the recipient's public key, just their Bitcoin address.  (but if you have their public key, you can calculate their Bitcoin address from it).

What you need that is NOT listed, is the full TXID+index+amount of the incoming coins you want to spend.  TXID is a 256-bit number identifying the transaction that sent you the coins, index is a small number (usually 0 or 1) that identifies which of the payouts belonged to you (since one TXID can and usually does have multiple payouts - one for you, one for the payer to get back his change) and of course you'll need to know the amount so you can generate an appropriate transaction to pay yourself back the change from the transaction you later produce (you need to know how much the change will be for this to be possible).
member
Activity: 76
Merit: 10
I think all you need to make a transaction is your private key, your public key, the recipient's public key, and the amount. Have a look at https://en.bitcoin.it/wiki/Transactions#Transfer_to_Bitcoin_address . Once you have the transaction made, you need a way to broadcast it to the network. I know a lot of lightweight clients already have the functionality for doing that, but there's also http://bitsend.rowit.co.uk/ for a browser-based version.
donator
Activity: 224
Merit: 100
Heyaa.... is it technically possible to generate a transaction from a private key and somehow get it out into the block chain without actually having the blockchain? Like to make a really lightweight "spend only" client with your private key(s) in it?

Help me, big brains!

Yes, I believe it is possible. The block chain is only needed to verify transactions. But you would need all the unspend txs for your wallet.
full member
Activity: 123
Merit: 100
Heyaa.... is it technically possible to generate a transaction from a private key and somehow get it out into the block chain without actually having the blockchain? Like to make a really lightweight "spend only" client with your private key(s) in it?

Help me, big brains!
Jump to: