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)
. (c
is the Diffie-Hellman secret, useful to makex
not 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
, whereB
is 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
, andm
to the receiver.
Then, the receiver, in this order:
- Computes
x
. - Computes
m
and verifies that it matches with them
sent by the sender. - Generates randomly his private excess
x_b
. - Calculates
s_b = x + b + Hash(m).x_b
(whereb
is 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.