lighthouse/book/src
Age Manning 7456e1e8fa Separate BN for block proposals (#4182)
It is a well-known fact that IP addresses for beacon nodes used by specific validators can be de-anonymized. There is an assumed risk that a malicious user may attempt to DOS validators when producing blocks to prevent chain growth/liveness.

Although there are a number of ideas put forward to address this, there a few simple approaches we can take to mitigate this risk.

Currently, a Lighthouse user is able to set a number of beacon-nodes that their validator client can connect to. If one beacon node is taken offline, it can fallback to another. Different beacon nodes can use VPNs or rotate IPs in order to mask their IPs.

This PR provides an additional setup option which further mitigates attacks of this kind.

This PR introduces a CLI flag --proposer-only to the beacon node. Setting this flag will configure the beacon node to run with minimal peers and crucially will not subscribe to subnets or sync committees. Therefore nodes of this kind should not be identified as nodes connected to validators of any kind.

It also introduces a CLI flag --proposer-nodes to the validator client. Users can then provide a number of beacon nodes (which may or may not run the --proposer-only flag) that the Validator client will use for block production and propagation only. If these nodes fail, the validator client will fallback to the default list of beacon nodes.

Users are then able to set up a number of beacon nodes dedicated to block proposals (which are unlikely to be identified as validator nodes) and point their validator clients to produce blocks on these nodes and attest on other beacon nodes. An attack attempting to prevent liveness on the eth2 network would then need to preemptively find and attack the proposer nodes which is significantly more difficult than the default setup.

This is a follow on from: #3328 

Co-authored-by: Michael Sproul <michael@sigmaprime.io>
Co-authored-by: Paul Hauner <paul@paulhauner.com>
2023-04-26 01:12:36 +00:00
..
css Make API friendly to block explorers (#702) 2019-12-19 11:45:28 +11:00
imgs Docs for Siren (#4023) 2023-02-28 02:20:52 +00:00
js Add support for multiple testnet flags (#1396) 2020-07-29 06:39:29 +00:00
advanced_database.md Reformat tables and add borders (#3377) 2022-07-27 00:51:07 +00:00
advanced_metrics.md Configurable monitoring endpoint frequency (#3530) 2022-09-05 08:29:00 +00:00
advanced_networking.md Improve Lighthouse Connectivity Via ENR TCP Update (#4057) 2023-03-21 05:14:57 +00:00
advanced-datadir.md Fixing a few typos / documentation (#3531) 2022-09-05 04:50:48 +00:00
advanced-pre-releases.md Fix links in docs (#3219) 2022-05-31 06:09:07 +00:00
advanced-proposer-only.md Separate BN for block proposals (#4182) 2023-04-26 01:12:36 +00:00
advanced-release-candidates.md Use "release candidate" in book (#2920) 2022-01-17 06:09:58 +00:00
advanced.md Document the freezer DB space-time trade-off (#808) 2020-01-20 10:01:58 +11:00
api-bn.md Correct typos book (#3099) 2022-03-20 22:48:15 +00:00
api-lighthouse.md add attestation inclusion distance in http api (#4148) 2023-04-26 01:12:35 +00:00
api-vc-auth-header.md Implement standard keystore API (#2736) 2022-01-30 23:22:04 +00:00
api-vc-endpoints.md Add API endpoint to get VC graffiti (#3779) 2022-12-09 09:20:13 +00:00
api-vc-sig-header.md Implement VC API (#1657) 2020-10-02 09:42:19 +00:00
api-vc.md Implement standard keystore API (#2736) 2022-01-30 23:22:04 +00:00
api.md Update book with missing Lighthouse endpoints (#3769) 2022-12-09 09:20:10 +00:00
builders.md Enable proposer boost re-orging (#2860) 2022-12-13 09:57:26 +00:00
checkpoint-sync.md Fix docs for oldest_block_slot (#3911) 2023-01-25 02:17:10 +00:00
cli.md Rename Eth1/Eth2 in documents (#3021) 2022-03-02 01:05:08 +00:00
contributing.md [Contribution docs] Add GitPOAP Badge to Display Number of Minted GitPOAPs for Contributors (#3343) 2022-08-09 02:27:04 +00:00
cross-compiling.md Add maxperf build profile (#3608) 2022-09-29 06:13:33 +00:00
database-migrations.md Update database-migrations.md (#4149) 2023-03-31 05:00:50 +00:00
docker.md Update Lighthouse book and some FAQs (#4178) 2023-04-14 01:11:45 +00:00
faq.md Update Lighthouse book and some FAQs (#4178) 2023-04-14 01:11:45 +00:00
graffiti.md Update graffiti.md (#3537) 2022-09-05 08:29:02 +00:00
homebrew.md Document Homebrew package (#2885) 2022-01-08 01:15:07 +00:00
http.md Rename Eth1/Eth2 in documents (#3021) 2022-03-02 01:05:08 +00:00
installation-binaries.md Update Lighthouse book and some FAQs (#4178) 2023-04-14 01:11:45 +00:00
installation-priorities.md Reformat tables and add borders (#3377) 2022-07-27 00:51:07 +00:00
installation-source.md Update Lighthouse book and some FAQs (#4178) 2023-04-14 01:11:45 +00:00
installation.md Update Lighthouse book and some FAQs (#4178) 2023-04-14 01:11:45 +00:00
intro.md Add Run a Node guide (#3681) 2022-11-28 10:05:43 +00:00
key-management.md Book spelling and grammar corrections (#3659) 2022-10-28 03:23:50 +00:00
key-recovery.md Rename Eth1/Eth2 in documents (#3021) 2022-03-02 01:05:08 +00:00
late-block-re-orgs.md Make re-org strat more cautious and add more config (#4151) 2023-04-13 07:05:01 +00:00
lighthouse-ui.md Docs for Siren (#4023) 2023-02-28 02:20:52 +00:00
mainnet-validator.md Fix some typos (#3376) 2022-07-27 00:51:06 +00:00
merge-migration.md Fix some dead links in markdown files (#3885) 2023-01-17 05:13:49 +00:00
pi.md Update Lighthouse book and some FAQs (#4178) 2023-04-14 01:11:45 +00:00
redundancy.md Update stale sections of the book (#3671) 2022-11-07 06:48:32 +00:00
run_a_node.md Fix some dead links in markdown files (#3885) 2023-01-17 05:13:49 +00:00
setup.md Libp2p v0.48.0 upgrade (#3547) 2022-09-29 01:50:11 +00:00
slasher.md Modularise slasher backend (#3443) 2022-08-15 01:30:56 +00:00
slashing-protection.md Fix some typos (#3376) 2022-07-27 00:51:06 +00:00
suggested-fee-recipient.md remove strict fee recipient docs (#3551) 2022-09-08 00:06:25 +00:00
SUMMARY.md Separate BN for block proposals (#4182) 2023-04-26 01:12:36 +00:00
testnet-validator.md Rename Eth1/Eth2 in documents (#3021) 2022-03-02 01:05:08 +00:00
ui-configuration.md Docs for Siren (#4023) 2023-02-28 02:20:52 +00:00
ui-faqs.md Siren Ui Lighthouse Version Requirments (#4093) 2023-03-16 08:03:43 +00:00
ui-installation.md Siren Ui Lighthouse Version Requirments (#4093) 2023-03-16 08:03:43 +00:00
ui-usage.md Docs for Siren (#4023) 2023-02-28 02:20:52 +00:00
validator-create.md Rename Eth1/Eth2 in documents (#3021) 2022-03-02 01:05:08 +00:00
validator-doppelganger.md Rename Eth1/Eth2 in documents (#3021) 2022-03-02 01:05:08 +00:00
validator-import-launchpad.md Fix some typos (#3376) 2022-07-27 00:51:06 +00:00
validator-inclusion.md Remove participation rate from API docs (#3955) 2023-02-09 04:31:22 +00:00
validator-management.md Change --testnet flag to --network (#1751) 2020-11-23 23:54:03 +00:00
validator-monitoring.md Configurable monitoring endpoint frequency (#3530) 2022-09-05 08:29:00 +00:00
validator-web3signer.md Add client authentication to Web3Signer validators (#3170) 2022-05-18 23:14:37 +00:00
voluntary-exit.md docs: remove mention of phases in voluntary exits (#3776) 2022-12-20 01:34:51 +00:00
wallet-create.md Book spelling and grammar corrections (#3659) 2022-10-28 03:23:50 +00:00