Avoiding double spending with PARSEC efficiently

Hey everyone,

As far as I understand from this post: Avoid double spending - #3 by polpolrene in the SAFE Network every coin has their own address. After any transaction the ownership of the coins address gets transferred through digital signatures. That means, all the addresses of the coins need to be stored somewhere and maybe distributed. However, I think this increases the redundancy since there are up to 400 millions of coins and the hash addresses need to be long as well.

Could it be more efficient with parsec? For example if you define a the struct block with a network type of such struct:

From: address
To: address
Value: int
Payload: String

Before voting every node should check the balance of the sender in their gossip graph and vote true for the transaction or not? I think this could be more efficient and enable a higher transaction throughput? Is there anything I did not consider? Feedback is much appreciated.

Cheers!

3 Likes

You are right and wrong :slight_smile:

All that need to be known is a clients balance in the client manager group. Then we send coins we know are available to be sent to the new client manager group. It is that simple. So if a client sends X coins then those X will be sent to a single location. Parsec does help as we make sure the balance is decreased incrementall and with certainty.

10 Likes

Okey, so Parsec is not primarily responsible for the order of transactions?

It’s job is solely ordering transactions of any kind. It will be involved whenever we need assurances of no fork/no double spend etc.

1 Like