Bitcoin Forum
April 27, 2024, 02:57:05 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Creating a transaction without the blockchain?  (Read 1361 times)
joshbb (OP)
Full Member
***
Offline Offline

Activity: 123
Merit: 100



View Profile
June 07, 2012, 11:26:15 PM
 #1

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!
1714186625
Hero Member
*
Offline Offline

Posts: 1714186625

View Profile Personal Message (Offline)

Ignore
1714186625
Reply with quote  #2

1714186625
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714186625
Hero Member
*
Offline Offline

Posts: 1714186625

View Profile Personal Message (Offline)

Ignore
1714186625
Reply with quote  #2

1714186625
Report to moderator
1714186625
Hero Member
*
Offline Offline

Posts: 1714186625

View Profile Personal Message (Offline)

Ignore
1714186625
Reply with quote  #2

1714186625
Report to moderator
cytokine
Donator
Full Member
*
Offline Offline

Activity: 224
Merit: 100



View Profile
June 07, 2012, 11:33:28 PM
 #2

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.
austonst
Member
**
Offline Offline

Activity: 76
Merit: 10



View Profile
June 07, 2012, 11:34:53 PM
 #3

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.

casascius
Mike Caldwell
VIP
Legendary
*
Offline Offline

Activity: 1386
Merit: 1136


The Casascius 1oz 10BTC Silver Round (w/ Gold B)


View Profile WWW
June 07, 2012, 11:42:17 PM
 #4

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).

Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable.  I never believe them.  If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins.  I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion.  Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice.  Don't keep coins online. Use paper or hardware wallets instead.
cytokine
Donator
Full Member
*
Offline Offline

Activity: 224
Merit: 100



View Profile
June 07, 2012, 11:51:30 PM
 #5

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
austonst
Member
**
Offline Offline

Activity: 76
Merit: 10



View Profile
June 07, 2012, 11:58:08 PM
 #6


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?

Stephen Gornick
Legendary
*
Offline Offline

Activity: 2506
Merit: 1010


View Profile
June 08, 2012, 03:08:23 AM
 #7

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

Unichange.me

            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █


jothan
Full Member
***
Offline Offline

Activity: 184
Merit: 100


Feel the coffee, be the coffee.


View Profile
June 08, 2012, 02:36:23 PM
 #8

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.

Bitcoin: the only currency you can store directly into your brain.

What this planet needs is a good 0.0005 BTC US nickel.
ThomasV
Legendary
*
Offline Offline

Activity: 1896
Merit: 1353



View Profile WWW
June 08, 2012, 02:46:31 PM
 #9

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

Electrum: the convenience of a web wallet, without the risks
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!