Grin Transactions - Reading Assignment

Read this absolutely magical description of how transactions work on GRIN. Answer the questions and post your answers below:

Questions:

  1. Why can’t Alice choose Bob’s blinding factor (rr) and nonce (kr) for him?
  2. Alice constructs a partial transaction and sends it to Bob. Why can’t Bob broadcast the transaction after choosing his blinding factor and nonce?
  3. What information does the transaction kernel contain?
  4. What pieces of information are actually broadcast in a Grin transaction?
1 Like
  1. Because knowing Bob’s blinding factor and nonce would make it possible for her to act on the funds even after having transferred those funds to Bob.
  2. Because Bob can only partially sign the transaction through his Schnorr signature, which will then be “completed” with Alice’s one in order to allow the broadcasting of the transaction.
  3. It contains the remaining transaction information besides the outputs. In particular, it stores information about the signature, the “excess blinding factor” public key and both transaction fee and lock height (not present for Coinbase transactions).
  4. The information broadcasted is about inputs used, new outputs, transaction kernel and kernel offset.
1 Like

1.She can than take his funds if she knows his blinding factor.Even after the transaction.

  1. Bob uses e to generate his Schnorr signature for the transaction, sr ( r for recipient ). Though it is the entirety of Bob’s signature, we call this Bob’s partial signature, because it will eventually be added to Alice’s partial signature to create the signature of the entire transaction.

  2. The following information is stored in the kernel:

  • The signature of the transaction (s, k • G) .

  • The public key associated with the “ excess blinding factor ” (in this case, 25•G ). As described above, this can be used to validate s .

  • The transaction fee and lock_height of the transaction. (Note: if this was a Coinbase transaction, neither of these would be present).

    • The inputs used.
  • The new outputs.

  • The transaction kernel.

  • The kernel offset

1 Like

• Why can’t Alice choose Bob’s blinding factor (rr) and nonce (kr) for him?

If Alice knew Bob’s blinding factor and nonce she would be able to take the funds that she is just transferring to Bob.

• Alice constructs a partial transaction and sends it to Bob. Why can’t Bob broadcast the transaction after choosing his blinding factor and nonce?

Because Bob only creates half of the signature of the transaction. Alice would need to verify that Bob’s blinding factor and hers add up to make the total of excess blinding factor.

• What information does the transaction kernel contain?

  1. The signature of the transaction (s, k • G).
  2. The public key associated with the “excess blinding factor” (in this case, 25•G). As described above, this can be used to validate s.
  3. The transaction fee and lock_height of the transaction. (Note: if this was a Coinbase transaction, neither of these would be present).

• What pieces of information are actually broadcast in a Grin transaction?

  1. The inputs used
  2. The new outputs
  3. the transaction kernel
  4. The kernel offset
1 Like
  1. Because in this case Alice could use the transferred fundes, even after the transaction has been executed.
  2. Because before doing that, Alice also needs to sign the transaction.
  3. a. The signature of the transaction (s, k • G) .
    b. The public key associated with the “ excess blinding factor ”
    c. The transaction fee and lock height of the transaction.
  4. The outputs and the transaction kernel.
1 Like
  1. Because if Alice choose Bob’s blinding factor and nonce she would be able to take the funds she has just transfered to Bob for her own usage again.
  2. Because before, the other part of the transaction need to be completed by Alice in order to allow the broadcasting of the transaction.
  3. The transaction kernel contains : the signature of the transaction (s, k • G) ; the public key associated with the “ excess blinding factor ” ; the transaction fee and lock height of the transaction.
  4. The inputs used and the new outputs ; the transaction kernel and the kernel offset.
1 Like
  1. Because only Bob needs to know and show/prove he knows how much he is receiving and lately being able to spend; these “rr” and “kr” will be Bob’s ‘private-data’ for receiving the amount value as output(utxo) and later be able to spend the agreed ‘value’ coming from Alice
  2. Because also Alice needs to check Bob’s side that he understood how much he will receive and he have ‘committed’ and signed, so now after checks also Alice must sign her ‘private data’ commitments part of the transaction (verification that sum of all inputs match the sum of all outputs, that no new coins are created), only after this she may broadcast the transaction.
  3. The “transaction kernel” part contains the “s”=txSignature, the txPublicKey (from the “excess blinding factor" to validate “s”), and if not a coinbase tx also the Message=(transaction fee and lock_height)
  4. A Grin transaction broadcasts following info.:
    • The inputs used.
    • The new outputs.
    • The transaction kernel.
    • The kernel offset (which I didn’t cover here).
1 Like
  1. Because if Alice knows Bob’s blinding factor and nonce she will be able to act on the funds even after having transferred those funds to him. (rewrite)
  2. Because Bob can only partially sign the transaction through his Schnorr signature, which will then be “completed” with Alice’s one in order to allow the broadcasting of the transaction.
  3. It contains the remaining transaction information besides the outputs. In particular, it stores information about the signature, the “excess blinding factor” public key and both transaction fee and lock height (not present for Coinbase transactions).
  4. The information broadcasted is about inputs used, new outputs, transaction kernel and kernel offset.
1 Like

1- Because she would be able to spend his money.

2- Bob can only sign his part of the transaction through his Schnorr signature, which will then be completed with Alice’s one. If the outputs equal all the inputs the transact will then be broadcasted.

3- Transaction kernel cointains: the signature of the transaction (s, k • G) ; the public key associated with the “ excess blinding factor ” ; the transaction fee and lock height of the transaction.

4- The inputs used.
The new outputs.
The transaction kernel.
The kernel offset

1 Like
  1. Why can’t Alice choose Bob’s blinding factor (rr) and nonce (kr) for him?
    The amount and the blinding factor r_r are needed to spend the money, if Alice picks r_r, then she could spend Bob’s money (she also knows the amount obviously). If she picks the nonce k_r, then she could recover the blinding factor r_r from the equation s_r = r_r + e * k_r because s_r and e are given to Alice by Bob.

  2. Alice constructs a partial transaction and sends it to Bob. Why can’t Bob broadcast the transaction after choosing his blinding factor and nonce?
    Bob would need Alice’s signature s_s to broadcast the transaction which can only be generated with the nonce k_s and the blinding factor r_s.

  3. What information does the transaction kernel contain?

  • The signature of the transaction (s, k • G) .
  • The public key associated with the “ excess blinding factor ”. This can be used to validate s .
  • The transaction fee and lock_height of the transaction.
  1. What pieces of information are actually broadcast in a Grin transaction?
  • The transaction inputs and outputs which are Pederson commitments r • G + v • H
  • The transaction kernel
  • The transaction offset
1 Like

Questions:

  1. Why can’t Alice choose Bob’s blinding factor (rr) and nonce (kr) for him?

    • Because then she could spend the outputs she sent to Bob
  2. Alice constructs a partial transaction and sends it to Bob. Why can’t Bob broadcast the transaction after choosing his blinding factor and nonce?

    • Because bob doesn’t have the information to spend alices output. Only alice has all the information needed to complete the transaction, after receiving bobs information. Bob received from alice: Tx inputs, CO_alice, KsG, RsG
    • Bob would still need Ss Ks Rs to generate Alices partial signature before being able to broadcast the transaction for her.
  3. What information does the transaction kernel contain?

    • The signature of the transaction (s, k • G).
    • The public key associated with the “excess blinding factor” (in this case, 25•G). As described above, this can be used to validate s.
    • The transaction fee and lock_height of the transaction. (Note: if this was a Coinbase transaction, neither of these would be present).
  4. What pieces of information are actually broadcast in a Grin transaction?

    • The inputs used.
    • The new outputs.
    • The transaction kernel.
    • The kernel offset.
1 Like
Why can’t Alice choose Bob’s blinding factor (rr) and nonce (kr) for him?

Because she would then be able to spend Bob’s UTXO.

Alice constructs a partial transaction and sends it to Bob. Why can’t Bob broadcast the transaction after choosing his blinding factor and nonce?

Bob must send his partial signature back to Alice so she can generate her partial signature and combine them both into the signature for the whole transaction.

What information does the transaction kernel contain?
  • Transaction signature
  • Public key of excess blinding factor
  • Transaction fee (not in coinbase transaction)
  • Lock Height (not in coinbase transaction)
What pieces of information are actually broadcast in a Grin transaction?
  • Spent inputs
  • New outputs
  • Transaction Kernel
  • Kernel offset
1 Like
  1. This is what Bob needs to spend the output. We don’t want Alice to be able to spend it.

  2. Alice still needs to sign the transaction which consists of both of their partial signatures.

  3. The signature of the transaction, the public key associated with the excess blinding factor, the transaction fee, and lock_height.

  4. Inputs, Outputs, transaction kernel, and the kernel offset.

1 Like
  • Why can’t Alice choose Bob’s blinding factor (rr) and nonce (kr) for him?
    Because “rr” and “kr” are Bob’s ‘private-data’

  • Alice constructs a partial transaction and sends it to Bob. Why can’t Bob broadcast the transaction after choosing his blinding factor and nonce?
    Because Bob can only partially sign the transaction through his Schnorr signature, which will then be “completed” with Alice’s one in order to allow the broadcasting of the transaction.

  • What information does the transaction kernel contain?
    The following information is stored in the kernel:
    The signature of the transaction (s, k • G).
    The public key associated with the “ excess blinding factor ”.
    The transaction fee and lock_height of the transaction.

  • What pieces of information are actually broadcast in a Grin transaction?
    The only things broadcast to the network from the transaction are:
    The inputs used.
    The new outputs.
    The transaction kernel.
    The kernel offset .

1 Like

1. Why can’t Alice choose Bob’s blinding factor (rr) and nonce (kr) for him?
If Alice chooses Bob’s blinding factor and nonce for him, Alice can potentially respend those same funds even though they were sent to Bob.

2. Alice constructs a partial transaction and sends it to Bob. Why can’t Bob broadcast the transaction after choosing his blinding factor and nonce?
The reason Bob can’t immediately broadcast the transaction is that Alice still needs to generate the whole signature of the transaction consisting of both Alice’s partial signature and Bob’s whole signature.

3. What information does the transaction kernel contain?
The transaction kernel contains the signature of the transaction, the public key associated with the excess blinding factor, the transaction fee, and the lock_height.

4. What pieces of information are actually broadcast in a Grin transaction?
The only pieces of information broadcasted in a Grin transaction are the used input, new outputs, transaction kernel, and kernel offset.

1 Like
  • Why can’t Alice choose Bob’s blinding factor (rr) and nonce (kr) for him?
    Because then she would be able to spend Bob’s transactions.

  • Alice constructs a partial transaction and sends it to Bob. Why can’t Bob broadcast the transaction after choosing his blinding factor and nonce?
    Because to generate the signature of the transaction, both partial signatures (Alice’s and Bob’s) are needed.

  • What information does the transaction kernel contain?

  • The signature of the transaction (s, k • G) .
  • The public key associated with the “excess blinding factor”.
  • The transaction fee and lock_height of the transaction (if this is not a Coinbase transaction -coin generated by a miner-).
  • What pieces of information are actually broadcast in a Grin transaction?
  • The inputs used.
  • The new outputs.
  • The transaction kernel.
  • The kernel offset.
1 Like
  1. because if alice new bob’s blinding factor and nonce, she would be able to take the funds as soon as she sent them
    2 because Bob only partially signs the transaction, it will be completed Alice’s partial signature
  2. it contains the remaining transaction information besides the outputs. it contains the excess blinding factor and transaction fee and lock height
    4.the inputs used, the new outputs, the transaction kernel and the kernel offsets
1 Like

Q1: That would give her the ability to track and spend his funds after she sent the TX over to him.

Q2: Both parties must sign the TX with their partial signature to complete the TX

Q3: Signature of the Tx, public key tied to excess blinding factor, and the TX fee and lock height

Q4: Inputs used, new outputs, TX kernel, and kernel offset

1 Like
  1. If she did then she would be able to use the funds even after sending them to Bob

2.Because Bob only creates half of the signature of the transaction. Alice would need to verify that Bob’s blinding factor and hers add up to make the total of excess blinding factor.

3.The signature of the transaction (s, k • G).
The public key associated with the “excess blinding factor” (in this case, 25•G). As described above, this can be used to validate s.
The transaction fee and lock_height of the transaction.

  1. The inputs used
    The new outputs
    the transaction kernel
    The kernel offset
1 Like
  1. She would basically know his private key and be able to spend his coins.
  2. Alice still needs to generate her partial signature to generate the digital signature for the transaction after she validated Bob’s partial signature.
  3. signature of the transaction, public key associated with the excess blinding factor, transaction fee and lock height.
  4. Inputs used, the new outputs, transaction kernel, kernel offset.
1 Like