Grin Transactions - Reading Assignment

  1. Why can’t Alice choose Bob’s blinding factor (rr) and nonce (kr) for him?
    She would be able to spend his assets even after she sent them to 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?
    She has to complete the signing of the transaction so that it can be sent.
  3. 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 ” (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).

  1. 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: Alice could spend the funds she just sent even after the TRx has been processed
2: Both parties must have the signed the sign the TRx with their partial signatures to complete the TRx
3:TRx Fee+ lock_height, signature, public key associated with the blinding factor
4:Inputs used, New outputs, TRx kernel, Kernel offset

1 Like
  1. Alice would be able to spend the funds that she sent to Bob if she picked Bob’s blinding factor and nonce.
  2. Bob needs to send Alice his partial signature (sr) so she can combine her partial signature with Bob’s to make a whole transaction.
  3. The transaction kernel contains the the
    a) Signature of the transaction (s, k • G)
    b) The public key associated with the excess blinding factor (in this case, 25•G)
    c) The transaction fee and lock_height of the transaction.
  4. The info broadcast in a Grin transaction are
    a) Inputs used
    b) New outputs
    c) Transaction kernel
    d) Kernel offset
1 Like
  1. Why can’t Alice choose Bob’s blinding factor (rr) and nonce (kr) for him?
    Because this will allow Alice to have access to all of bobs funds

  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 they need to combine their partial signatures

  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).
  1. What pieces of information are actually broadcast in a Grin transaction?
  • The inputs used.
  • The new outputs.
  • The transaction kernel.
  • The kernel offse
  1. Why can’t Alice choose Bob’s blinding factor (rr) and nonce (kr) for him?

She needs to be able to spend his assets even after she sent them to him.

  1. 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 has to complete the signing of the transaction so that it can be validated and sent.

  1. 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 block height.

  1. 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. Alice can’t choose Bob’s blinding factor and noce as this would allow here to spend the funds after they had been sent to Bob. Bob does not want Alice to be able to spend his money.
  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 can only partially sign the transaction. He needs to complete his half and then send it back to Alice prior to it being broadcast as a complete transaction.
  3. What information does the transaction kernel contain? 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. What pieces of information are actually broadcast in a Grin transaction? The information broadcast are: 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 was able to Choose the receiver info for bob, she could possibly steal/spend bobs Grin.

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

Though we have bobs entire signature, its still incomplete if he wants to spend the Grin, he needs Alice complete/partial signature to complete 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 ” (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).

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

After all this is said and done, the only things broadcast to the network from the transaction are:

  • The inputs used.
  • The new outputs.
  • The transaction kernel.
  • The kernel offset (which I didn’t cover here).

None of the transaction metadata from earlier are relayed. Even better, some of this information may get discarded, too — but we will save that for another post.

  1. Why can’t Alice choose Bob’s blinding factor (rr) and nonce (kr) for him?
  • The blinding factor exists because whoever paid you this Grin would also know what v is (how much Grin they sent you). But only you — not even the sender of the Grin — would know the blinding factor for this output and therefore only you are able to spend this output.
  1. 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 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.
  1. What information does the transaction kernel contain?
  • The signing of the transaction
  • The public key associated with the “excess blinding factor”
  • The transaction fee
  • Lock_height of the transaction.
  1. What pieces of information are actually broadcast in a Grin transaction?
  • The inputs used.
  • The new outputs.
  • The transaction kernel.
  • The kernel offset (which I didn’t cover here).

1: Alice cannot choose Bob’s blinding factor (n) and (kr) for him because; it would stop her from being able to handle the funds she is working with.
2: Bob cannot broadcast the transaction because; he can only sign a portion f the transaction with the schnorr signature, it is Alice that will need to complete it with her signature.
3:The transaction Kernal contains the signature of the transaction (s,k &G) used to validate s as well as the transaction key and the lock_height of the transaction.
4:In a Grin transaction the info actually broadcast is , the inputs used, new outputs ,transaction kernel and kernel offset.

  1. Because then Alice would be able to spend Bobs funds.
  2. Bob must send the tx back to Alice that can then calculate the Schnorr challenge for the transaction.
  3. The transaction signature, the public key associated with the excess blinding factor, the transaction fee and lock_height of the transaction.
  4. The inputs used, new outputs, transaction kernel and kernel offset.
2 Likes
  • Why can’t Alice choose Bob’s blinding factor (rr) and nonce (kr) for him? Because Bob is the recipient and chooses the rr and kr as his part of the private partial signature. This protects Bobs funds.
  • 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’s commitment and nonce are sent back to Alice for computation locallyand their combined signature the tx is then broadcasted.
  • What information does the transaction kernel contain? The receivers commitment to the nonce.
  • What pieces of information are actually broadcast in a Grin transaction? The inputs and outputs used, the transaction kernel, and the kernel offset.
1 Like
Why can’t Alice choose Bob’s blinding factor (rr) and nonce (kr) for him?
Alice constructs a partial transaction and sends it to Bob. Why can’t Bob broadcast the transaction after choosing his blinding factor and nonce?
What information does the transaction kernel contain?
What pieces of information are actually broadcast in a Grin transaction?

1 She could than take his funds if she knows his blinding factor.Even after the transaction.
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
a The signature of the transaction
b the public key associated witht he excess binding factor
c) the transaction fee and lock height of the transaction

4 the ouputs and the transaction krernel

1 Like

It also contains the inputs and kernel offset. :slight_smile:

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?
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?
The signature of the transaction,
the public key associated with the excess blinding factor,
the transaction fee,
lock_height

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. Why can’t Alice choose Bob’s blinding factor (rr) and nonce (kr) for him? When Bob uses e to generate his Schnorr signature for the transaction, sr (r for recipient), and Alice eventually receives sr, she will not be able to uncover the values kr or rr from it.
  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 both partial signatures have to match in order for the transaction being broadcast.
  3. What information does the transaction kernel contain? The signature of the transaction (s, k o G). The public key associated with the “excess blinding factor” (in this case, 25oG). As described above, this can be used to validate s. The transaction fee and lock height of the transaction.
  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
  1. 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 UTXO.
  1. Alice constructs a partial transaction and sends it to Bob. Why can’t Bob broadcast the transaction after choosing his blinding factor and nonce?
  • That way, Alice can validate Bob’s Schnorr signature. This proves that Bob knows how much he will receive, he knows his nonce and his blinding factor for the UTXO he will receive.
  • As I understand, the first Alice’s signature is not the same she will eventually use to sign the transaction. Only by getting Bob’s partial signature, she can construct a correct partial signature of her own, which then she will combine to finally sign the transaction.
  1. What information does the transaction kernel contain?
  • Signature of the transaction;
  • Public key associated with the excess blinding factor;
  • Transaction fee and lock height of the transaction, but these wouldn’t be present in a Coinbase transaction. (meaning, Coinbase - the exchange?)
  1. What pieces of information are actually broadcast in a Grin transaction?
  • Used inputs;
  • New outputs;
  • Transaction kernel;
  • Kernel offset.
1 Like

Coinbase is the first (and most blockchains the only) transaction in a block that contains the block reward and fees for the miner. :slight_smile:

2 Likes
  1. Because Alice can use Bob’s funds. As the blinding factor and nonce are required for Bob to use his unspent transactions.
  2. Bob needs Alice’s partial signature to create a signature for the transaction. As Bobs signature is only a partial signature.
  • 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

Alice cannot choose bobs blinding factor and nonce because a)knowing these two values would provide the ability to double spend, and b) Bob needs to generate these components on his end in the form of pedersen commitments which comprise the eventual output of spendable coins.
Bob cannot broadcast a partial tx from Alice because the construction of the validation forces a collaborative proof of information to generate the schnorr signature required to spend the eventual output.
transaction kernels include all the necessary elements used to validate transaction. These include, the signature of the transaction, the excess blinding factor public key, the transaction fee, and the lock_height.
Inputs used, outputs generated, the transaction kernel and the kernel offset are the pieces of info broadcast in Grin

1 Like

Questions:

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
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.
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).
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