1

I understand that once a transaction is settled between two parties the transaction message’s structure is serialized using the Recursive Length Prefix (RLP) encoding scheme. Then it is broadcasted to nodes so that miners can mine the transaction.

My question: What is the form the miners receive to include the transaction in the block? Is it the signed tx or the RLP-encode of the signed tx?

I know that the Recursive Length Prefix (RLP) is used to encode a wide variety of data in Ethereum including transactions. But, I am not sure if this is used once the transactions are transmitted in the blockchain.

I also understand that the form of the transaction looks something like so

enter image description here

So in more concrete words, does the miner receives the signed signature $Sig$ as described in this equation:

enter image description here

where

enter image description here

or does the miner receives the $F_{keccak256}(m)$ or does it receives only m the RLP-encoded transaction which is not yet signed. I am really confused!

1

It is important to differentiate between tx and message (aka internal tx). Based on this link.

A transaction is a cryptographically signed message that specifies what change is to be made, and it is sent to any node in the network.

The message that makes up the transaction is an RLP-encoded array that specifies the details of the transaction such as recipient, value, data, gas limit, gas price, nonce, and signature.

This means that the message form is the serialization of the message RLP-encoded.

The formula described above shows that $m$ is the RLP-encoded message that is transmitted through the nodes. This is still unclear and the book editor does not specify clearly whether the $m$ represents this.

However, based on researching and reading the Ethereum Yellow paper, one can say that this is not the message that is transmitted to the network as the signature needs to be included.

It seems that the transaction that is circulated between nodes for a miner to mine the contract is the RLP-encoded serialization of the transaction including the v,r, and s components.

In particular, this hash could be viewed here https://etherscan.io/txsPending

Where if you enter one pending tx (the tx that is being broadcasted between multiple nodes)

enter image description here

This pending tx is the decoded form of the RLP-encoded tx.

This "Transaction Hash" is the cryptographically signed message that is being transmitted throughout the nodes. I am not sure but most likely the Keecak256 hash of the RLP-encoded tx.

4
  • It is not correct, the whole transaction is sent to the miners.
    – Ismael
    Sep 5 '21 at 19:23
  • @Ismael if you are correct, can you share your reference? Furthermore, what do you mean by the whole transaction is sent to the miners. What is "whole"? If you look at this link you will find out that only raw data is transmitted to the blockchain! See Example response in ethereum.org/en/developers/docs/transactions
    – rsc05
    Sep 5 '21 at 19:54
  • The transaction and signature are rlp encoded and sent to the miners that would be the whole transaction. For the reference is my experience reading the go-ethereum code. How can a miner execute the transaction if they only have the hash?
    – Ismael
    Sep 5 '21 at 20:10
  • 1
    @Ismael thank you, I have fixed this in my answer. Let me know if you still disagree. Furthermore, please refer me to the go-ethereum code you pointed out. Many thanks!
    – rsc05
    Sep 6 '21 at 8:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.