Consensys / anonymous-zether

A private payment system for Ethereum-based blockchains, with no trusted setup.
Other
293 stars 70 forks source link

Francescomiliani patch 1 fix sender amount recovering on event #70

Open francescomiliani opened 11 months ago

francescomiliani commented 11 months ago

Fixes the infinite loop bug in calculating the value for the transfer sender when receiving the TransferOccured event produced as a result of a transfer.

In detail: during the transfer all listening clients receive and process the event, and only the involved parties will go to decrypt the value with secret x.

The bug consists of an infinite loop in the calculation of the value in the client of the sender of the transfer since the value to look for is negative, not positive, because it would never be found by blocking the application.

This bug is not apparent with Truffle since the statement in the client.js file.

event.returnValues['parties'] === null

returns in the sender client event.

In case the application is integrated into serious applications that listen for events and the clients are distributed son multiple machines, the problem becomes serious and very relevant.

Fixes the infinite loop bug in calculating the value for the transfer sender when receiving the TransferOccured event produced as a result of a transfer.

In detail: during the transfer all listening clients receive and process the event, and only the involved parties will go to decrypt the value with secret x.

The bug consists of an infinite loop in the calculation of the value in the client of the sender of the transfer since the value to look for is negative, not positive, because it would never be found by blocking the application.

This bug is not apparent with Truffle since the statement in the client.js file.

event.returnValues['parties'] === null

returns in the sender client event.

In case the application is integrated into serious applications that listen for events and the clients are distributed son multiple machines, the problem becomes serious and very relevant.

Solution: calculate the gB_neg that negative corresponding to - value, as well