I don’t see what you mean? The sender, in this order:
- Calculates his partial nonce
R_a. - Calculates
x = Hash(c||B||R_a||tx_amount||timestamp). (cis the Diffie-Hellman secret, useful to makexnot recoverable by others, plus to be sure the recipient is the intended recipient, and the sender the expected sender). - Calculates the receiver’s nonce
R_b = x.G + B, whereBis the receiver’s permanent address. - Calculates the message of the signature
m = Hash(R_a + R_b||fees). - Calculates
s_a = r_a + Hash(m).x_a, his partial signature. - Sends
R_a,s_a,X_a = x_a.G, andmto the receiver.
Then, the receiver, in this order:
- Computes
x. - Computes
mand verifies that it matches with themsent by the sender. - Generates randomly his private excess
x_b. - Calculates
s_b = x + b + Hash(m).x_b(wherebis the secret key toB) - Broadcasts the kernel,
kernel = (R = R_a + R_b, X = X_a + X_b, s = s_a + s_b).
So, first the sender needs to compute R, and then he needs to compute the message m in order to compute his s_a. Only then, can he send the data to the receiver.
I don’t see why “Sharing the public nonce prior to committing to the message” is true at all.