In Besu, privacy refers to the ability to keep transactions private between the involved participants. Other participants cannot access the transaction content or list of participants.
For production environments requiring private transactions:
- We recommend using a network with a consensus mechanism supporting transaction finality. For example, IBFT 2.0.
- Tessera must be highly available and run in a separate instance to Besu.
Private transaction manager
Private transactions pass from the Besu node to the associated Tessera node. The Tessera node encrypts and directly distributes (that is, point-to-point) the private transaction to the Tessera nodes participating in the transaction.
By default, each participant in a privacy-enabled network uses its own Besu and Tessera node. Multi-tenancy allows more than one participant to use the same Besu and Tessera node.
Private Transaction Managers are also known as Enclaves.
When enabling privacy in a private network, there's an assumed level of trust among the node operators, since all are members of the private network.
Inefficient contracts deployed accidentally or deliberately can cause performance issues in privacy-enabled networks because gas isn't required in private transactions.
In contrast, gas is required in Ethereum Mainnet and public testnets because they are trustless environments.
Privacy-enabled networks should have a mechanism to establish trust offchain. Node operators should be informed on:
- Guidelines for use, responsibilities, and good behavior.
- Smart contract security, so contracts deployed on the network use resources efficiently.
- Consequences for malicious activity.
Privacy-enabled networks should run development and test environments that closely resemble production, so contracts can be tested, and potential issues can be found before they're deployed in production.
In v1.4, using private transactions in a network using a consensus mechanism where forks occur (that is, PoW algorithms or Clique) is an early access feature.
Do not use private transactions in production environments using consensus mechanisms where forks occur.