<blockquote>
  <p>Then, why I cannot broadcast to the community that the public key "hjf734hkjf" is sending 100 bitcoins to me?</p>
</blockquote>

<p>That is not how Bitcoin works.</p>

<p>First of all, you do not send from a public key or an address. That idea is related to traditional "accounts", but Bitcoin does not use any sort of accounts system at the protocol level.</p>

<p>When you receive Bitcoin, what is actually happening is that a transaction creates transaction outputs which you are allowed to spend. The vast majority of transaction outputs require that the spending transaction contains a digital signature which corresponds to a specified public key. The digital signature is can only be produced by the private key that corresponds to the public key, so if you do not have the private key, you cannot create the signature that allows you to spend from that transaction output.</p>

<p>So if you see Alice owns the public key "hjf734hkjf" which can spend from transaction outputs with a value of 100 Bitcoin, you can't spend those 100 Bitcoin because you do not have the private key that corresponds to the public key "hjf734hkjf" and cannot create a valid digital signature. Thus any transaction that you do try to create that spends those transaction outputs will be completely invalid and rejected by full nodes and miners.</p>

CC BY-SA 3.0
2017-10-30T18:27:41.803Z
2017-10-30T18:27:41.803Z
Ava Chow
<p>You are not sending with public key.</p>

<p>You broadcast the transaction message that is <strong>signed with private key</strong> that only the owner of the coins has. (you can consider <em>signing</em> to be analogous to <em>encrypting</em> in the sense of the question)</p>

<p>Public key that everybody knows <strong>can verify</strong> this message (<em>verifying</em> can be considered analogous to <em>decrypting</em> here). If the <strong>verification</strong> is successful it is proven that the message is signed with respective private key that only the owner knows. Therefore it is sure that the owner of coins broadcasted the transaction message.</p>

<p>This process is known as <strong>digital signing</strong>.</p>

CC BY-SA 3.0
2017-10-30T16:38:29.220Z
2017-10-30T19:53:24.787Z
2017-10-30T19:53:24.787Z
croraf
<p>I am trying to understand how Bitcoin works, and was wondering how can you prove that a public key is authentic. Here´s what I have in mind to provide more context to my question. Let's suppose I looked at the blockchain and see that Alice has sent a lot of bitcoin in the past. And I want to cause harm to Alice. Let's say that Alice public key is "hjf734hkjf". Then, why I cannot broadcast to the community that the public key "hjf734hkjf" is sending 100 bitcoins to me?</p>

CC BY-SA 3.0
2017-11-12T12:54:57.817Z
Why did I get a negative vote? An explanation would be helpful.
Manoel Galdino
<public-key><authentication>
How in the Bitcoin world one prove that a public key is authentic?
Manoel Galdino
# How in the Bitcoin world one prove that a public key is authentic?

(Asked by: username_0 on 2017-10-30)

I am trying to understand how Bitcoin works, and was wondering how can you prove that a public key is authentic. Here´s what I have in mind to provide more context to my question. Let's suppose I looked at the blockchain and see that Alice has sent a lot of bitcoin in the past. And I want to cause harm to Alice. Let's say that Alice public key is "hjf734hkjf". Then, why I cannot broadcast to the community that the public key "hjf734hkjf" is sending 100 bitcoins to me?

**Tags:** public-key, authentication

> **Comments:**
> **username_0**: Why did I get a negative vote? An explanation would be helpful.  

---

## 2 answers

### Answer by username_2 on 2017-10-30. Score: 4 | Accepted answer

You are not sending with public key.

You broadcast the transaction message that is **signed with private key** that only the owner of the coins has. (you can consider *signing* to be analogous to *encrypting* in the sense of the question)

Public key that everybody knows **can verify** this message (*verifying* can be considered analogous to *decrypting* here). If the **verification** is successful it is proven that the message is signed with respective private key that only the owner knows. Therefore it is sure that the owner of coins broadcasted the transaction message.

This process is known as **digital signing**.


---

### Answer by username_1 on 2017-10-30. Score: 1

> Then, why I cannot broadcast to the community that the public key "hjf734hkjf" is sending 100 bitcoins to me?

That is not how Bitcoin works.

First of all, you do not send from a public key or an address. That idea is related to traditional "accounts", but Bitcoin does not use any sort of accounts system at the protocol level.

When you receive Bitcoin, what is actually happening is that a transaction creates transaction outputs which you are allowed to spend. The vast majority of transaction outputs require that the spending transaction contains a digital signature which corresponds to a specified public key. The digital signature is can only be produced by the private key that corresponds to the public key, so if you do not have the private key, you cannot create the signature that allows you to spend from that transaction output.

So if you see Alice owns the public key "hjf734hkjf" which can spend from transaction outputs with a value of 100 Bitcoin, you can't spend those 100 Bitcoin because you do not have the private key that corresponds to the public key "hjf734hkjf" and cannot create a valid digital signature. Thus any transaction that you do try to create that spends those transaction outputs will be completely invalid and rejected by full nodes and miners.


---

