cd bls-eth-go-binary && go run examples/*.go
The sscli
command-line tool is a collection of utilities for analyzing and correcting validator attestations in the Ethereum 2.0 Beacon Chain. Here is the list of available commands:
To use sscli
, you can either build and use the tool from source code
cd bls-eth-go-binary && go run examples/*.go
or download a prebuilt binary.
We recommend run the source file since certain action is dependent on the file structure.
If you choose to download the prebuilt binary, simply add it to your system's PATH
environment variable, and you can run sscli
from anywhere in the terminal. You can find the prebuilt binary on GitHub here.
allFalse
: Fetch from Google Drive and verify all atts for all blocks, output failed verification to verificationResult/args
: Print command-line argumentsbf
: Brute-force search pubkey for each 1-val casecheck
: Check for all interested attestations in double / surround vote detected from beaconcha.incompletion
: Generate the autocompletion script for the specified shellcsc
: Get computed committee schedule given randaomix etc.dv
: Search in-file duplicated vote from Google Drive after correctionfetch
: Fetch epoch for interested block under epochs/fi
: Get first index of shuffled committee given randaomix etc.help
: Help about any commandndv
: Search duplicated vote without validator index correction, this is for detecting all potentially slashable case directly from beaconcha.inrecover
: Correct the wrong validator index for attestation that has false signature verificationsearch
: Brute-force search for correct signer for single validator caseshow
: Print correction map to the consoleshuffle
: Shuffle duplicate votessr
: Compute and print signing root for a specific attestationss
: Use unvoted validators as a restrained space for faster search pubkey for correcting signing validator setsunvote
: Find all unvoted validators in an epoch defined by input blockvc
: Verify all correction made from computed committee schedule by checking the signaturevdv
: Search all verifiable in-file double vote after correction from Google Drive, expect all output should be slashed otherwise staking-slashing model has troubleverify
: Verify attestations that identified by validatorIdx and block number, print result to consoleverifyAll
: Verify all attestations in a specified block, if the block attestation data doesn't exist in local, automatically fetch to test/verifyDrive
: Fetch from Google Drive and verify all atts for all blocks, output failed verification to verificationResult/
-h
,--help
: Show help message forsscli
This code was written very quickly and is intended for research purposes only. It may be rough around the edges and should be used with caution. For a full description of our research and methodology, please refer to our paper available at https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4344299.