Grin Transactions - Reading Assignment

  1. If she knew those two pieces of information she could spend the UTXO created.
  2. Alice needs to check Bobs signature to make sure he committed to a Nonce and blinding factor and that it sums to 0. Alice will then package both partial signatures and create a transaction signature.
  3. It contains the signature, blinding factor of the tx, fee, and height for the tx.
  4. Inputs, Outputs, Kernel, and the offset factor
1 Like
  1. Because that would allow Alice to double spend.

  2. Because Alice needs to verify the transaction as well.

  3. The transaction kernel contains the transaction signature, blinding factor public key, block height, tx fee.

  4. Old inputs, new outputs, transaction kernel, kernel offset.

1 Like
  1. Alice cannot choose Bobā€™s blinding factor (rr) and his nonce (KR) because by knowing them she will be able to spend his outputs.

  2. For a Grin transaction, a combined signature is created by adding the Schnorr signature of the sender and the reciever. When Bob receives the transaction data from Alice, he generates a partial signature based on the commitments provided. Alice then needs to validate Bobā€™s partial signature and create her partial signature. These two signatures are combined which then gets broadcasted.

  3. The kernel stores the following information:

  • The signature of the transaction (s, k*G)
  • The public key associated with the excess blinding factor (v*G) - v is the amount of Grin being sent
  • Transaction fee and lock_height
  1. The particular information broadcasted to the network includes:
  • Used inputs
  • New Outputs
  • Transaction kernel
  • Kernel offset
1 Like
  1. If Alice chooses Bobā€™s blinding factor and nonce, then she would be able to take the funds she has just transferred to Bob for her own usage again creating a double spend.

  2. Bob can only partially sign the transaction through his Schnorr signature. It will then be ā€œcompletedā€ with Aliceā€™s in order to allow the broadcasting of the transaction.

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

  4. Inputs used, new outputs, transaction kernel and kernel offset.

1 Like
  1. Alice canā€™t choose Bobā€™s rr and kr because only he can spend the funds sent to him.
  2. Bob canā€™t broadcast transaction after choosing his blinding factor and nonce because it has to go back to Alice first for partial signature.
  3. The kernel contains the signature of the transaction, the public key associated with excess blinding factors, the transaction fee and lock_height
  4. The information broadcasted is the inputs used, the new outputs, the transaction kernel, the kernel offset.
1 Like
  1. Alice canā€™t choose neither Bobā€™s blinding factor rr nor his nonce kr for him otherwise she would have the information necessary to generate Bobā€™s partial signature, which means she would be able to show that she expects to receive what Bob expects to receive. In other words, she would be able to steal back her own funds that she would be sending to Bob.

  2. Alice constructs a partial transaction and sends it to Bob.
    Bob chooses his blinding factor and nonce.
    If Bob then broadcast the transaction now, it would be invalid; he only as a partial signature. Bob needs to send this signature back to Alice first so that she can combine it with her partial signature to generate the full signature needed for a valid transaction.

  3. The transaction kernel contains:

  • The signature of the transaction (s, k ā€¢ G) .
  • The public key associated with the ā€œ excess blinding factor ā€ (in this case, 25ā€¢G ). [This public key 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).
  1. A Grin transaction broadcasts:
  • The inputs used.
  • The new outputs.
  • The transaction kernel.
  • The kernel offset [ā€œa blinding factor that needs to be added to the excess value to ensure the sum of the commitments is validā€]
1 Like
  1. Because if she knew them she would be able to interact with the funds even tho she sent them to Bob.

  2. He can only partially sign the transaction with Schnorr signature, Alice will add hers and then it can be broadcasted.

  3. It contains the remaining transaction information besides the outputs. Stores info about the signature (excess blinding factor public key and both tx fee and lock height).

  4. The new outputs, transaction kernel and kernel offset.

1 Like
  1. Because knowing Bobā€™s blinding factor and nonce, Alice could use the transferred funds, even after the transaction has been executed.
  2. Because before doing that, Alice needs to sign 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 if Alice knew Bobs rr and kr, she could spend his money.
    2)Because Alice needs to verify Bobs information and sign the transaction
  2. Signature of the transaction, public key associated with the excess blinding factor, Transaction fee and lock_height of the transaction.
  3. Inputs used, New Outputs, Transaction Kernel, Kernel offset
1 Like
  • Why canā€™t Alice choose Bobā€™s blinding factor (rr) and nonce (kr) for him? ā€” or else she would be able to take the funds she just sent to Bob and do a double spend
  • 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 is one half of the signature and thus a partial signature so Alice still needs to sign to broadcast the transaction
  • What information does the transaction kernel contain? ā€” signature of transaction, public key associated with axes blinding factor, and transaction fee and lock height
  • What pieces of information are actually broadcast in a Grin transaction? ā€” 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 it needs to be kept a secret, otherwise Alice could spend Bobs UTXOā€™s.

  • 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 Alice needs to sign her transaction first

  • What information does the transaction kernel contain?

lock_height, transaction fee, signature of the transaction and the blinding factor public key

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

inputs used, new 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 Alice would be able to have control of the funds she transferred.

ā€¢ 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 have a partial signature, Bob needs Aliceā€™s signature to broadcastā€¦

ā€¢ What information does the transaction kernel contain? Signature of the transaction. The public key associated with the ā€œExcess blinding factorā€. The transaction fee and lock height.

ā€¢ What pieces of information are actually broadcast in a Grin transaction? The inputs used. The new outputs. The transaction kernel.

1 Like

1. Why canā€™t Alice choose Bobā€™s blinding factor (rr) and nonce (kr) for him?
If Alice choose Bobs blinding factor and nonce, then she would be able to spend his UXTO.
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?
Alice needs Bobs partial sig to create the signature of the transaction
3. What information does the transaction kernel contain?

  • The signature of the transaction
  • Public key associated with the excess blinding factor
  • The transaction fee and block height
    4. What pieces of information are actually broadcast in a Grin transaction?
  • Inputs
  • New outputs
  • Transaction kernel
  • The kernel offset
1 Like
  1. If his blinding factor is known, she can access his funds(post-transaction too).
  2. Because Bob would have half of the signature, she would need to verify his blinding factor and hers.
  3. Kernel Transaction:
    Signature of transaction
    Public key associated with ā€œexcess blinding factorā€
    Transaction fee and lock_height
    4.The inputs, new outputs, transaction kernel, and kernel offset are all broadcasted in a GRIN transaction.
1 Like

. Because she would be able to spend new Bobā€™s outputs.

. Because more information is needed to sign the transaction.

. Signature, public key, the Ā« message Ā».

. Inputs used. New outputs. The kernel. The kernel offset.

1 Like
  1. Why canā€™t Alice choose Bobā€™s blinding factor (rr) and nonce (kr) 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?
    Bob cannot broadcast until Alice generates the complete signature of the transaction consisting of both Aliceā€™s partial signature and Bobā€™s complete signature.
  3. What information does the transaction kernel contain?
    The signature of the transaction, the public key associated with the excess blinding factor, the transaction fee, and lock_height.
  4. What pieces of information are actually broadcast in a Grin transaction?
    The inputs used, the new outputs, the transaction kernel and the kernel offset.
1 Like
  1. Why canā€™t Alice choose Bobā€™s blinding factor (rr) and nonce (kr) for him?
    So that Alice canā€™t use the funds once transferred.

  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 Alice needs to validate Bobā€™s partial signature.

  3. What information does the transaction kernel contain?
    The information used to validate the transaction: transaction signature, public key associated with the excess blinding factor, transaction fee and lock_height.

  4. What pieces of information are actually broadcast in a Grin transaction?
    Inputs, outputs, transaction kernel and transaction offset.

1 Like

1.- She would be able to steal his funds, initially sent by her.

2.- Because she still needs to sign the transaction before broadcasting it to the blockchain.

3.- TX signature, public key linked to the excess blinding factor, the TX fee and lock height.

4.- Inputs used, new outputs, transaction kernel and the kernel offset.

1 Like
  1. Alice canā€™t choose Bobā€™s blinding factor (rr) and nonce (kr) for him because only Bob, and not even Alice the sender of the Grin, needs to know the blinding factor rr ( (r for ā€œrecipientā€, in this case Bob) for this output and therefore he is able to spend this output. Otherwise Alice could also spend the Grin she sent to Bob if she knew the blinding factor (rr). Likewise only Bob picks his own random nonce kr (r, again, for ā€œrecipientā€), or else once again, Alice could spend the Grin she sent to Bob herself if she knew the nonce (kr) value.
  2. Alice constructs a partial transaction and sends it to Bob. Bob canā€™t broadcast the transaction after choosing his blinding factor and nonce because this will result in this transaction only having a partial signature so will fail. Bob needs to send Alice his partial signature, after he generates the ā€œSchnorr challengeā€ for the transaction, in order for it to eventually be added to Aliceā€™s partial signature to create the complete signature of the entire transaction, before it is ready for broadcast.
  3. The information that the transaction kernel contains is:
  • The ā€œsignatureā€ of the transaction (s, k ā€¢ G).
  • The public key associated with the ā€œexcess blinding factor ā€ (in this case, 25ā€¢G). Used to validate s.
  • The ā€œtransaction feeā€ and ā€œlock_heightā€ (the block number at which this transaction becomes valid) of the transaction. (Note: if this was a Coinbase transaction [freshly mined block], neither of these would be present).
  1. The pieces of information which are actually broadcast to the network in a Grin transaction are:
  • The inputs used.
  • The new outputs.
  • The transaction kernel.
  • The kernel offset (not covered in this article).
1 Like
  • Why canā€™t Alice choose Bobā€™s blinding factor (rr) and nonce (kr) for him?
    Because Alice could spend Bobā€™s coins after heā€™s received it

  • Alice constructs a partial transaction and sends it to Bob. Why canā€™t Bob broadcast the transaction after choosing his blinding factor and nonce?
    -he must send it back to Alice for validationā€¦so that Alice may locally compute ā€œeā€ (Schnorr challenge) from the rrG and krG that Bob sent Alice. The separately computed ā€œeā€ would be equal for them both. She will then compute his ā€œhashedā€ Schnorr signature SrG. She will also directly ā€œhashā€ Bobs Schnorr signature (which he also sent to her as Sr) to get SrG, and both the independently calculated and hashed SrG should be identicalā€¦thus validating that the Bobs knows his transaction information without Alice seeing his actual chosen blinding factor and nonce. This validation is necessary before the transaction could be broadcasted. Alice confirms this is valid by combing her and his Schnorr signature and her and his nonces into one final S signature for the transaction.

  • What information does the transaction kernel contain?
    Within Aliceā€™s initial UTXO was the commitment that contained r0, the random blinder of that UTXO. As Alice and bob made their own random blinding factors for this transaction (rs and rr), these randos added together then subtracted from r0 will produce some number (r0-(rs+rr)). But if you did the same with the values/balances (v0-(vs+vr)), you would get zero ie. it balancesā€¦so the difference between the two commitments leaves only an r number on its own, the balances have cancelled each other out. This is the ā€œkernel excessā€ which can be used to make a public key. Thus the information contained in both Aliceā€™s and Bobā€™s Schnorr signatures makes this validation possible. This is therefore the data in the Transaction Kernelā€¦sender and receiverā€™s shielded nonces, their Schnorr signatures, the kernel excess pub.key, tx. fee and lock height.

What pieces of information are actually broadcast in a Grin transaction?
-The UTXO (input)
-The transaction output
-Transaction kernel
-Kernel offset
The visibility of both input and output is a weakness.

1 Like