<p>You could be sybil attacked. There is very little cost to witnessing a transaction so an attacker could spin up many nodes that claim to have witnessed a transaction that double spends another transaction. Proof of Work is secure because it requires miners to spend money to incorporate transactions in the blockchain and any attacker has to spend money too. In fact to change a transaction you have to change the block it was incorporated in and all subsequent blocks. It quickly becomes infeasible to do so.</p>

CC BY-SA 3.0
2018-03-12T05:19:25.360Z
2018-03-12T05:19:25.360Z
Abdussamad
<p>Thereare many assumptions in your post, which leads to a wrong understanding of how bitcoin works. I recommend to read the book of Andreas („Mastering Bitcoin“), and here the introduction chapter and the transaction chapter. </p>

<p>Bitcoin is a public ledger, and the ground rule is, that you wait for a confirmation, to be sure you’re funds are transferred. At this point in time the network will reject any double spends. Using bitcoin in the way you described, would mean having trust in a person (and not a confirmed transaction), and this can of course be misused.</p>

<p>For large transfers it is repeated over and over again, that 6 confirmations (not thousands, that is a wrong understanding of the system) should be waited (approx. 1hour), before your funds are „safe“.</p>

<blockquote>
  <p>Bob's coins only belong to him if someone on the network can provide
  proof to everyone else, on demand, that those coins belong to Bob.</p>
</blockquote>

<p>No... The coins belong to Bob, once Alice has sent the coins, and the network has verified the transaction and included in a block (aka 1st confirmation). Understand that are no person, people or witnesses involved. It is the math in the applications, which does the confirmation. So the blockchain is the proof, that funds belong to Bob.</p>

<blockquote>
  <p>Alice would be able to transfer the ownership of those coins again
  since no one would be there to stop her</p>
</blockquote>

<p>No, when Alice wants to send another transaction into the network, the receiving node would verify the contents, and reject it, cause it is a double spend.</p>

<blockquote>
  <p>In bitcoin, your funds are safe even if go offline but here your funds
  are only safe if you're online 24/7.</p>
</blockquote>

<p>No... it doesn’t matter if you are online or not. At the point the tx is confirmed, the funds are „yours“ - completely independent if you are on or not. It is not about people being on, who do the verification. It is the apps.  Again, please have a look at the book, this helps to overcome the wrong assumptions. The book is available online.</p>

CC BY-SA 3.0
2018-03-09T13:12:57.433Z
I wasn't describing bitcoin's consensus algorithm. I was talking about a different algorithm that is going to be used for an upcoming coin. I want to know if this algorithm makes sense.
EternalPropagation
CC BY-SA 3.0
2018-03-09T13:14:40.697Z
The reason I'm asking is because it seems like an obvious algorithm to use. If Alice wants to spend her coins again you just need to show up and say no look i have the certificate of ownership now. So there's no ledger anymore there's only a list of who owns what coins.
EternalPropagation
CC BY-SA 3.0
2018-03-09T17:07:31.927Z
Ah, ok, this is a bitcoin forum, hence my replies are relevant for bitcoin. Maybe you should mention this in the beginning of your question...
pebwindkraft
CC BY-SA 3.0
2018-03-09T07:49:44.903Z
2018-03-09T07:49:44.903Z
pebwindkraft
<p>When Alice wants to send Bob some coins all she has to do is sign a transfer of ownership with her private keys and publicize that announcement until Bob is happy with the number of witnesses. For small transactions, Bob might be happy with a couple dozen witnesses but with large value transactions he'd want thousands of heavy peers to witnesses the transaction. Why?</p>

<p>Bob's coins only belong to him if someone on the network can provide proof to everyone else, on demand, that those coins belong to Bob. If all of Bob's witnesses go offline then there's no one to vouch for him! In such a scenario, Alice would be able to transfer the ownership of those coins again since no one would be there to stop her.</p>

<p>This is basically turning the current popular algorithms upside down since you're not flooding the network with transaction data, you're listening to the network to make sure no one is trying to take your coins. As long as you yourself are online ready to provide proof, the transfer of ownership signed by Alice, then no one can take your coins away from you. Ideally, you'd have many peers ready to provide that proof, not just you in case you go offline and in exchange you either pay them a small fee or you also host others' proofs ready to serve them up to whomever asks for it. </p>

<p>The only attack I can think of is Alice announces the transfer of ownership of coins to Bob and announces another transfer of ownership of the same coins to Mallory at the same time and hopes that Bob and Mallory don't hear each other. But if Bob and Mallory are smart they'll query enough peers such that their queries overlap and collide in at least one peer on the network. </p>

<p>So to wrap up: using witnesses to 'hear' the transfer of ownership and at least one of those witnesses ready to defend the transfer of ownership is enough to prevent double spends. Caveats are that you want enough witnesses to hear the transfer and you want at least one witness always online. In bitcoin, your funds are safe even if go offline but here your funds are only safe if you're online 24/7. Otherwise you need to trust 3rd parties to defend your coins for you. Are there any attack vectors with this? It sounds pretty simple, too good to be true? Consensus is too slow and we don't need consensus here. And you don't need synchronization since everything would be dynamic.</p>

<blockquote>
  <p>Can this Proof of Witness be attacked in a way I'm not seeing?</p>
</blockquote>

CC BY-SA 3.0
2018-03-09T01:10:06.180Z
Is that a Question?
abelenky
CC BY-SA 3.0
2018-03-09T01:11:25.570Z
Yes, I asked if this can be attacked in a way I'm not seeing.
EternalPropagation
<synchronization><consensus><algorithms><ownership>
Any attack vector for Proof of Witness?
EternalPropagation
# Any attack vector for Proof of Witness?

(Asked by: username_0 on 2018-03-09)

When Alice wants to send Bob some coins all she has to do is sign a transfer of ownership with her private keys and publicize that announcement until Bob is happy with the number of witnesses. For small transactions, Bob might be happy with a couple dozen witnesses but with large value transactions he'd want thousands of heavy peers to witnesses the transaction. Why?

Bob's coins only belong to him if someone on the network can provide proof to everyone else, on demand, that those coins belong to Bob. If all of Bob's witnesses go offline then there's no one to vouch for him! In such a scenario, Alice would be able to transfer the ownership of those coins again since no one would be there to stop her.

This is basically turning the current popular algorithms upside down since you're not flooding the network with transaction data, you're listening to the network to make sure no one is trying to take your coins. As long as you yourself are online ready to provide proof, the transfer of ownership signed by Alice, then no one can take your coins away from you. Ideally, you'd have many peers ready to provide that proof, not just you in case you go offline and in exchange you either pay them a small fee or you also host others' proofs ready to serve them up to whomever asks for it.

The only attack I can think of is Alice announces the transfer of ownership of coins to Bob and announces another transfer of ownership of the same coins to Mallory at the same time and hopes that Bob and Mallory don't hear each other. But if Bob and Mallory are smart they'll query enough peers such that their queries overlap and collide in at least one peer on the network.

So to wrap up: using witnesses to 'hear' the transfer of ownership and at least one of those witnesses ready to defend the transfer of ownership is enough to prevent double spends. Caveats are that you want enough witnesses to hear the transfer and you want at least one witness always online. In bitcoin, your funds are safe even if go offline but here your funds are only safe if you're online 24/7. Otherwise you need to trust 3rd parties to defend your coins for you. Are there any attack vectors with this? It sounds pretty simple, too good to be true? Consensus is too slow and we don't need consensus here. And you don't need synchronization since everything would be dynamic.

> Can this Proof of Witness be attacked in a way I'm not seeing?

**Tags:** synchronization, consensus, algorithms, ownership

> **Comments:**
> **username_1**: Is that a Question?  
> **username_0**: Yes, I asked if this can be attacked in a way I'm not seeing.  

---

## 2 answers

### Answer by username_2 on 2018-03-12. Score: 1

You could be sybil attacked. There is very little cost to witnessing a transaction so an attacker could spin up many nodes that claim to have witnessed a transaction that double spends another transaction. Proof of Work is secure because it requires miners to spend money to incorporate transactions in the blockchain and any attacker has to spend money too. In fact to change a transaction you have to change the block it was incorporated in and all subsequent blocks. It quickly becomes infeasible to do so.


---

### Answer by username_3 on 2018-03-09. Score: -2

Thereare many assumptions in your post, which leads to a wrong understanding of how bitcoin works. I recommend to read the book of Andreas („Mastering Bitcoin“), and here the introduction chapter and the transaction chapter.

Bitcoin is a public ledger, and the ground rule is, that you wait for a confirmation, to be sure you’re funds are transferred. At this point in time the network will reject any double spends. Using bitcoin in the way you described, would mean having trust in a person (and not a confirmed transaction), and this can of course be misused.

For large transfers it is repeated over and over again, that 6 confirmations (not thousands, that is a wrong understanding of the system) should be waited (approx. 1hour), before your funds are „safe“.

> Bob's coins only belong to him if someone on the network can provide
> proof to everyone else, on demand, that those coins belong to Bob.

No... The coins belong to Bob, once Alice has sent the coins, and the network has verified the transaction and included in a block (aka 1st confirmation). Understand that are no person, people or witnesses involved. It is the math in the applications, which does the confirmation. So the blockchain is the proof, that funds belong to Bob.

> Alice would be able to transfer the ownership of those coins again
> since no one would be there to stop her

No, when Alice wants to send another transaction into the network, the receiving node would verify the contents, and reject it, cause it is a double spend.

> In bitcoin, your funds are safe even if go offline but here your funds
> are only safe if you're online 24/7.

No... it doesn’t matter if you are online or not. At the point the tx is confirmed, the funds are „yours“ - completely independent if you are on or not. It is not about people being on, who do the verification. It is the apps. Again, please have a look at the book, this helps to overcome the wrong assumptions. The book is available online.

> **Comments:**
> **username_0**: I wasn't describing bitcoin's consensus algorithm. I was talking about a different algorithm that is going to be used for an upcoming coin. I want to know if this algorithm makes sense.  
> **username_0**: The reason I'm asking is because it seems like an obvious algorithm to use. If Alice wants to spend her coins again you just need to show up and say no look i have the certificate of ownership now. So there's no ledger anymore there's only a list of who owns what coins.  
> **username_3**: Ah, ok, this is a bitcoin forum, hence my replies are relevant for bitcoin. Maybe you should mention this in the beginning of your question...  

---

