Bitcoin Forum

Other => Beginners & Help => Topic started by: temroa on June 17, 2015, 06:07:04 AM



Title: Questions about bitcoin
Post by: temroa on June 17, 2015, 06:07:04 AM
first question is how does digital signature system work ? when sending bitcoin you are first taking the hash of transaction message after sign it with your private key and miners verifying it with your public key(comparing the result with the hash of message)and when person that you sent your bitcoins signing transaction message with he/her private key and miners verifying it with his/her signature,public key,transaction message(comparing the result with the public key).is system working like this ? second question is are only verifiers miners ? third is in system first verifying happening after proof of work happening and block is added to blockchain right ?


Title: Re: Questions about bitcoin
Post by: odolvlobo on June 17, 2015, 07:18:18 AM
Signatures are used to verify transactions. This page explains transactions: https://en.bitcoin.it/wiki/Transaction

Basically, someone that wants to spend bitcoins sent to an address creates a transaction providing the public key of the address and signs the transaction using the private key. The address, public key, and signature are validated.


Title: Re: Questions about bitcoin
Post by: iram66680 on June 17, 2015, 01:47:55 PM
I'll answer your second question.
No, Bitcoin miners have to follow the rules (https://en.bitcoin.it/wiki/Protocol_rules#.22tx.22_messages) to determine which transaction can be added. They can break the rules but the other nodes following the rule will not accept the block as a valid block. The other thing that is verifying the transaction is the Bitcoin nodes. Each nodes will individually verify the transactions to make sure that you have valid signature for each output, UXTO that the nodes can find that is from your address, etc.


Title: Re: Questions about bitcoin
Post by: manselr on June 17, 2015, 03:58:24 PM
Miners are the only people that can confirm transactions? Aren't you confirming transactions as well by simply having your Bitcoin Core (or XT) loaded and fully synced? I thought this was the case, and it was the miners that were the ones that do both confirmations + new generation of coins.


Title: Re: Questions about bitcoin
Post by: odolvlobo on June 17, 2015, 04:15:45 PM
Miners are the only people that can confirm transactions? Aren't you confirming transactions as well by simply having your Bitcoin Core (or XT) loaded and fully synced? I thought this was the case, and it was the miners that were the ones that do both confirmations + new generation of coins.

A transaction is "confirmed" when it is added to the block chain. Only miners can do that. Full nodes also validate transactions, but it is not the same. A full node may accept a transaction that will never be added to the block chain.


Title: Re: Questions about bitcoin
Post by: jeannemadrigal2 on June 18, 2015, 03:38:25 AM
I think you should read this article (https://en.wikipedia.org/wiki/Bitcoin), it is good for explaining all of the basic things with bitcoins.  Some of it you don't need to know but I think it will help you a lot.


Title: Re: Questions about bitcoin
Post by: cjambox on June 26, 2015, 09:14:40 AM
Signatures are used to verify transactions. This page explains transactions: https://en.bitcoin.it/wiki/Transaction

Basically, someone that wants to spend bitcoins sent to an address creates a transaction providing the public key of the address and signs the transaction using the private key. The address, public key, and signature are validated.

My english is not so good so can you explain it more basicly or with different words ? when creating transaction you need only adress not public key i've seen this at everywhere about bitcoin.is it work like that when writing adress public key is automatically added to transaction ? thanks for your help.


Title: Re: Questions about bitcoin
Post by: Muhammed Zakir on June 26, 2015, 10:20:09 AM
To spend Bitcoin, you need private key associated with the unspent transaction outputs you are using as inputs. You create a transaction and then sign it with private key. To verify whether the transacion is signed by the owner, miners verify whether the signature and public key matches.

Miners follow rules when adding a transaction to a block and if a transaction breaks any of the rules, miners will reject it. However, miners can include such transactions if they want to but the block which includes such transaction will be rejected by nodes following the rules. You can read the rules here -- https://en.bitcoin.it/wiki/Protocol_rules#.22tx.22_messages.

I suggest you to read https://en.bitcoin.it/wiki/Transaction. It explains in simple language.

* Edited.


Title: Re: Questions about bitcoin
Post by: cjambox on June 26, 2015, 11:43:13 AM
To spend Bitcoin, you need private key associated with the unspent transaction outputs you are using as inputs. You create a transaction and then sign it with private key. To verify whether the transacion is signed by the owner, miners verify whether the signature and public key matches.

Miners follow rules when adding a transaction to a block and if a transaction breaks any of the rules, miners will reject it. However, miners can include such transactions if they want to but the block which includes such transaction will be rejected by nodes following the rules. You can read the rules here -- https://en.bitcoin.it/wiki/Protocol_rules#.22tx.22_messages.

I suggest you to read https://en.bitcoin.it/wiki/Transaction. It explains in simple language.

* Edited.

i looked at link but still i have questions why miners are verifying whether the signature and public key matches why this matching ?


Title: Re: Questions about bitcoin
Post by: odolvlobo on June 26, 2015, 04:45:08 PM
i looked at link but still i have questions why miners are verifying whether the signature and public key matches why this matching ?

Only someone knowing the private key for an address may spend the bitcoins at that address. The public key and a valid signature prove knowledge of the private key.


Title: Re: Questions about bitcoin
Post by: cjambox on June 29, 2015, 11:13:02 AM
this is how the miners verify

1 =? v(message, public key, signature)

why message is needed here can't miners verify signature with only public key ?


Title: Re: Questions about bitcoin
Post by: Muhammed Zakir on June 29, 2015, 01:04:58 PM
this is how the miners verify

1 =? v(message, public key, signature)

why message is needed here can't miners verify signature with only public key ?

It is verification of a digitally signed message. If you need to verify a digitally signed message, you obviously need a message, a signature and a public key.

http://en.wikipedia.org/wiki/Digital_signature


Title: Re: Questions about bitcoin
Post by: odolvlobo on June 29, 2015, 06:04:18 PM
this is how the miners verify

1 =? v(message, public key, signature)

why message is needed here can't miners verify signature with only public key ?

The public key is PUBLIC information. Once it appears in a transaction, everyone knows it. The private key can be used to certify a transaction (by signing) without being revealed.

Basically, a secret is not sufficient because anyone that sees the secret (the public key, in this case) before it is added to a block can spoof transactions.


Title: Re: Questions about bitcoin
Post by: Scamalert on June 29, 2015, 08:22:05 PM
first question is how does digital signature system work ? when sending bitcoin you are first taking the hash of transaction message after sign it with your private key and miners verifying it with your public key(comparing the result with the hash of message)and when person that you sent your bitcoins signing transaction message with he/her private key and miners verifying it with his/her signature,public key,transaction message(comparing the result with the public key).is system working like this ? second question is are only verifiers miners ? third is in system first verifying happening after proof of work happening and block is added to blockchain right ?

You can also used the private key associated with your bitcoin address to sign other messages.
This can used to prove that you are in control of the bitcoin addreess. This is very good if you need to prove your "idendity" or prove that you in fact is the person who have send a certain transaction, can also be prove to retrive you bitcointalk account in case you loose it (it gets stolen). Be sure to stake you address here: https://bitcointalk.org/index.php?topic=996318.0


Title: Re: Questions about bitcoin
Post by: Rmcdermott927 on July 01, 2015, 03:27:54 AM
BTW, for anyone looking to verify signed messages, the brain wallet site seems to not be working.  I created a mirror at brainmirror.me using an old github fork where the verifier is working. 


Title: Re: Questions about bitcoin
Post by: ranlo on July 01, 2015, 08:35:55 AM
Signatures are used to verify transactions. This page explains transactions: https://en.bitcoin.it/wiki/Transaction

Basically, someone that wants to spend bitcoins sent to an address creates a transaction providing the public key of the address and signs the transaction using the private key. The address, public key, and signature are validated.

I want to add on to this as well. Being able to verify your address ownership like this is ONLY POSSIBLE IF YOU HOLD THE COINS IN A WALLET WHERE YOU CONTROL THE PRIVATE KEY. Far too many people are getting themselves in trouble by latching on to systems that don't give this access. I needed to verify one of my addresses before and it was one I had through Coinbase. Completely screwed me as I couldn't verify it since I didn't have the private key.

If you're ever in doubt as to whether or not you'll need to sign a transaction, make sure you have private key access. Coinbase and similar services are awesome when you don't need this, but keep safe.