diff --git a/CASHFUSION.md b/CASHFUSION.md index edaf786..3bd005b 100644 --- a/CASHFUSION.md +++ b/CASHFUSION.md @@ -110,7 +110,7 @@ The transaction will use the sighash type ALL|ANYONECANPAY, which reduces the in The purpose of this phase is primarily to rebroadcast all the inputs to all the players so they can assemble and broadcast the transaction. Secondarily, the server also generates and shares a random ordering of the players, which will be used later in the blame phases, if blame is necessary. -As opposed to rebroadcasting each covertly announced input as it arrives, the server rebroadcasts them all together. This limits the possibility of timing attacks to the server itself, which can be further mitigated by announcing inputs randomly within a specified time window (such as 15 seconds). The server sends Message 5 when this window expires. +As opposed to rebroadcasting each covertly announced input as it arrives, the server rebroadcasts them all together. This limits the possibility of timing attacks to the server itself, which can be further mitigated by announcing inputs randomly within a specified time window (such as 15 seconds). The server sends Message 5 when this window expires, but the server should wait an extra few seconds to account for latency and error. Rebroadcasting all inputs together also prevents Bob from maliciously re-submitting Alice's input with his own salt commitment. In the case where Alice resubmits her own input (or Bob resubmits Alice's input from a prior round with a bogus signature), the server should include all the submitted inputs (including duplicates) and let the blame phases handle the problem.