AI Slop Code RIsk Monitor

ethereum/go-ethereum

Go implementation of the Ethereum protocol

4.4 Low pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for ethereum/go-ethereum, a Go project with 51,388 GitHub stars. SynthScan examined 579,322 lines of code across 2101 source files, recording 1989 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 4.4 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

4.4
Adjusted Signal
4.4
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
51.4K
Stars
Go
Language
579.3K
Lines of Code
2.1K
Files
2.0K
Pattern Hits
2026-10-12
Scan Date
0.02
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 15.3/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 1923 finding(s).

Hallucinated Dependency & Supply Chain Risk 4.6/100 · LOW

Are imports declared and package/API names verified? 45 finding(s).

Agent Over-Engineering Ratio 0.9/100 · LOW

Are wrappers, guards, and repeated structures necessary? 29 finding(s).

PR Review Velocity Impact 18.7/100 · LOW

Which changes need focused human review? 1989 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 39HIGH 1MEDIUM 30LOW 1919

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 1989 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Over-Commented Block1899 hits · 1872 pts
SeverityFileLineSnippetContext
LOWinterfaces.go1// Copyright 2016 The go-ethereum AuthorsCOMMENT
LOWinterfaces.go61COMMENT
LOWinterfaces.go81//COMMENT
LOWinterfaces.go201COMMENT
LOWoss-fuzz.sh1#!/bin/bash -euCOMMENT
LOW.golangci.yml21 - usetestingCOMMENT
LOWmetrics/cpu_disabled.go1// Copyright 2020 The go-ethereum AuthorsCOMMENT
LOWmetrics/config.go1// Copyright 2021 The go-ethereum AuthorsCOMMENT
LOWmetrics/metered_lru.go1// Copyright 2026 The go-ethereum AuthorsCOMMENT
LOWmetrics/disk.go1// Copyright 2015 The go-ethereum AuthorsCOMMENT
LOWmetrics/cpu.go1// Copyright 2018 The go-ethereum AuthorsCOMMENT
LOWmetrics/cputime_nop.go1// Copyright 2018 The go-ethereum AuthorsCOMMENT
LOWmetrics/cpu_enabled.go1// Copyright 2020 The go-ethereum AuthorsCOMMENT
LOWmetrics/disk_nop.go1// Copyright 2015 The go-ethereum AuthorsCOMMENT
LOWmetrics/disk_linux.go1// Copyright 2015 The go-ethereum AuthorsCOMMENT
LOWmetrics/cputime_unix.go1// Copyright 2018 The go-ethereum AuthorsCOMMENT
LOWmetrics/internal/sampledata.go1// Copyright 2023 The go-ethereum AuthorsCOMMENT
LOWmetrics/influxdb/influxdb_test.go1// Copyright 2023 The go-ethereum AuthorsCOMMENT
LOWmetrics/prometheus/collector.go1// Copyright 2019 The go-ethereum AuthorsCOMMENT
LOWmetrics/prometheus/prometheus.go1// Copyright 2019 The go-ethereum AuthorsCOMMENT
LOWmetrics/prometheus/collector_test.go1// Copyright 2023 The go-ethereum AuthorsCOMMENT
LOWcmd/ethkey/generate.go1// Copyright 2017 The go-ethereum AuthorsCOMMENT
LOWcmd/ethkey/message.go1// Copyright 2017 The go-ethereum AuthorsCOMMENT
LOWcmd/ethkey/message_test.go1// Copyright 2018 The go-ethereum AuthorsCOMMENT
LOWcmd/ethkey/changepassword.go1// Copyright 2018 The go-ethereum AuthorsCOMMENT
LOWcmd/ethkey/run_test.go1// Copyright 2018 The go-ethereum AuthorsCOMMENT
LOWcmd/ethkey/utils.go1// Copyright 2017 The go-ethereum AuthorsCOMMENT
LOWcmd/ethkey/inspect.go1// Copyright 2017 The go-ethereum AuthorsCOMMENT
LOWcmd/ethkey/main.go1// Copyright 2017 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/discv4cmd.go1// Copyright 2019 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/enrcmd.go1// Copyright 2019 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/crawl.go1// Copyright 2019 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/runtest.go1// Copyright 2020 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/dnscmd.go1// Copyright 2019 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/nodesetcmd.go1// Copyright 2019 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/discv5cmd.go1// Copyright 2020 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/nodesetcmd_test.go1// Copyright 2026 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/dns_route53.go1// Copyright 2019 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/rlpxcmd.go1// Copyright 2020 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/nodeset.go1// Copyright 2019 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/rlpxcmd_test.go1// Copyright 2026 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/dns_route53_test.go1// Copyright 2020 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/discoverycmd.go1// Copyright 2026 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/keycmd.go1// Copyright 2020 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/main.go1// Copyright 2019 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/dns_cloudflare.go1// Copyright 2019 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/internal/ethtest/suite.go1// Copyright 2020 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/internal/ethtest/chain_test.go1// Copyright 2020 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/internal/ethtest/snap.go1// Copyright 2022 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/internal/ethtest/protocol.go1// Copyright 2023 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/internal/ethtest/transaction.go1// Copyright 2020 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/internal/ethtest/chain.go1// Copyright 2020 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/internal/ethtest/accesslists.go1// Copyright 2026 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/internal/ethtest/engine.go1// Copyright 2023 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/internal/ethtest/snap2.go1// Copyright 2026 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/internal/ethtest/snap2.go21 "math/rand"COMMENT
LOWcmd/devp2p/internal/ethtest/snap2.go61COMMENT
LOWcmd/devp2p/internal/ethtest/eth71.go1// Copyright 2026 The go-ethereum AuthorsCOMMENT
LOWcmd/devp2p/internal/ethtest/eth71.go21 "math/rand"COMMENT
LOWcmd/devp2p/internal/ethtest/suite_test.go1// Copyright 2021 The go-ethereum AuthorsCOMMENT
1839 more matches not shown…
Hallucination Indicators39 hits · 540 pts
SeverityFileLineSnippetContext
CRITICAL⚡crypto/bn256/google/bn256.go340 xxxBytes := n.p.x.x.x.Bytes()CODE
CRITICAL⚡crypto/bn256/google/bn256.go341 xxyBytes := n.p.x.x.y.Bytes()CODE
CRITICAL⚡crypto/bn256/google/bn256.go342 xyxBytes := n.p.x.y.x.Bytes()CODE
CRITICAL⚡crypto/bn256/google/bn256.go343 xyyBytes := n.p.x.y.y.Bytes()CODE
CRITICAL⚡crypto/bn256/google/bn256.go344 xzxBytes := n.p.x.z.x.Bytes()CODE
CRITICAL⚡crypto/bn256/google/bn256.go345 xzyBytes := n.p.x.z.y.Bytes()CODE
CRITICAL⚡crypto/bn256/google/bn256.go346 yxxBytes := n.p.y.x.x.Bytes()CODE
CRITICAL⚡crypto/bn256/google/bn256.go347 yxyBytes := n.p.y.x.y.Bytes()CODE
CRITICAL⚡crypto/bn256/google/bn256.go348 yyxBytes := n.p.y.y.x.Bytes()CODE
CRITICAL⚡crypto/bn256/google/bn256.go349 yyyBytes := n.p.y.y.y.Bytes()CODE
CRITICAL⚡crypto/bn256/google/bn256.go350 yzxBytes := n.p.y.z.x.Bytes()CODE
CRITICAL⚡crypto/bn256/google/bn256.go351 yzyBytes := n.p.y.z.y.Bytes()CODE
CRITICAL⚡crypto/bn256/google/bn256.go387 e.p.x.x.x.SetBytes(m[0*numBytes : 1*numBytes])CODE
CRITICAL⚡crypto/bn256/google/bn256.go388 e.p.x.x.y.SetBytes(m[1*numBytes : 2*numBytes])CODE
CRITICAL⚡crypto/bn256/google/bn256.go389 e.p.x.y.x.SetBytes(m[2*numBytes : 3*numBytes])CODE
CRITICAL⚡crypto/bn256/google/bn256.go390 e.p.x.y.y.SetBytes(m[3*numBytes : 4*numBytes])CODE
CRITICAL⚡crypto/bn256/google/bn256.go391 e.p.x.z.x.SetBytes(m[4*numBytes : 5*numBytes])CODE
CRITICAL⚡crypto/bn256/google/bn256.go392 e.p.x.z.y.SetBytes(m[5*numBytes : 6*numBytes])CODE
CRITICAL⚡crypto/bn256/google/bn256.go393 e.p.y.x.x.SetBytes(m[6*numBytes : 7*numBytes])CODE
CRITICAL⚡crypto/bn256/google/bn256.go394 e.p.y.x.y.SetBytes(m[7*numBytes : 8*numBytes])CODE
CRITICAL⚡crypto/bn256/google/bn256.go395 e.p.y.y.x.SetBytes(m[8*numBytes : 9*numBytes])CODE
CRITICAL⚡crypto/bn256/google/bn256.go396 e.p.y.y.y.SetBytes(m[9*numBytes : 10*numBytes])CODE
CRITICAL⚡crypto/bn256/google/bn256.go397 e.p.y.z.x.SetBytes(m[10*numBytes : 11*numBytes])CODE
CRITICAL⚡crypto/bn256/google/bn256.go398 e.p.y.z.y.SetBytes(m[11*numBytes : 12*numBytes])CODE
CRITICAL⚡crypto/bn256/cloudflare/bn256.go445 if err = e.p.x.x.x.Unmarshal(m); err != nil {CODE
CRITICAL⚡crypto/bn256/cloudflare/bn256.go448 if err = e.p.x.x.y.Unmarshal(m[numBytes:]); err != nil {CODE
CRITICAL⚡crypto/bn256/cloudflare/bn256.go451 if err = e.p.x.y.x.Unmarshal(m[2*numBytes:]); err != nil {CODE
CRITICAL⚡crypto/bn256/cloudflare/bn256.go454 if err = e.p.x.y.y.Unmarshal(m[3*numBytes:]); err != nil {CODE
CRITICAL⚡crypto/bn256/cloudflare/bn256.go457 if err = e.p.x.z.x.Unmarshal(m[4*numBytes:]); err != nil {CODE
CRITICAL⚡crypto/bn256/cloudflare/bn256.go460 if err = e.p.x.z.y.Unmarshal(m[5*numBytes:]); err != nil {CODE
CRITICAL⚡crypto/bn256/cloudflare/bn256.go463 if err = e.p.y.x.x.Unmarshal(m[6*numBytes:]); err != nil {CODE
CRITICAL⚡crypto/bn256/cloudflare/bn256.go466 if err = e.p.y.x.y.Unmarshal(m[7*numBytes:]); err != nil {CODE
CRITICAL⚡crypto/bn256/cloudflare/bn256.go469 if err = e.p.y.y.x.Unmarshal(m[8*numBytes:]); err != nil {CODE
CRITICAL⚡crypto/bn256/cloudflare/bn256.go472 if err = e.p.y.y.y.Unmarshal(m[9*numBytes:]); err != nil {CODE
CRITICAL⚡crypto/bn256/cloudflare/bn256.go475 if err = e.p.y.z.x.Unmarshal(m[10*numBytes:]); err != nil {CODE
CRITICAL⚡crypto/bn256/cloudflare/bn256.go478 if err = e.p.y.z.y.Unmarshal(m[11*numBytes:]); err != nil {CODE
CRITICALgraphql/internal/graphiql/graphiql.min.js2!function(){var e,t,n={8042:function(e,t){var n,r;"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self&&seCODE
CRITICALeth/downloader/downloader_test.go863 tester.downloader.queue.resultCache.lock.Lock()CODE
CRITICALeth/downloader/downloader_test.go869 tester.downloader.queue.resultCache.lock.Unlock()CODE
Decorative Section Separators21 hits · 92 pts
SeverityFileLineSnippetContext
MEDIUMcrypto/secp256k1/libsecp256k1/CMakeLists.txt3#=============================COMMENT
MEDIUMcrypto/secp256k1/libsecp256k1/CMakeLists.txt5#=============================COMMENT
MEDIUM⚡crypto/secp256k1/libsecp256k1/CMakeLists.txt38#=============================COMMENT
MEDIUM⚡crypto/secp256k1/libsecp256k1/CMakeLists.txt40#=============================COMMENT
MEDIUM⚡crypto/secp256k1/libsecp256k1/CMakeLists.txt44#=============================COMMENT
MEDIUM⚡crypto/secp256k1/libsecp256k1/CMakeLists.txt46#=============================COMMENT
MEDIUM⚡core/state/reader_eip_7928.go49// ┌──────────────┴──────────────┐ ┌──────────────┴──────────────┐COMMENT
MEDIUM⚡core/state/reader_eip_7928.go52// └──────────────┬──────────────┘ └──────────────┬──────────────┘COMMENT
MEDIUM⚡core/state/reader_eip_7928.go54// └────────────────┬─────────────────┘COMMENT
MEDIUM⚡core/state/reader_eip_7928.go56// ┌──────────────┴──────────────┐COMMENT
MEDIUM⚡core/state/reader_eip_7928.go59// └──────────────┬──────────────┘COMMENT
MEDIUM⚡core/state/reader_eip_7928.go61// ┌──────────────┴──────────────┐COMMENT
MEDIUM⚡core/state/reader_eip_7928.go64// └─────────────────────────────┘COMMENT
MEDIUM⚡triedb/pathdb/nodes.go438// └───────────────────────────────┘COMMENT
MEDIUM⚡triedb/pathdb/nodes.go440// │ │ │ │ │ │ └───── FlagB: set if no extended bitmap is present after the metadata byteCOMMENT
MEDIUM⚡triedb/pathdb/nodes.go441// │ │ │ │ │ └───────── FlagC: bitmap for node (only used when flagB == 1)COMMENT
MEDIUM⚡triedb/pathdb/nodes.go442// │ │ │ │ └───────────── FlagD: bitmap for node (only used when flagB == 1)COMMENT
MEDIUM⚡triedb/pathdb/nodes.go443// │ │ │ └───────────────── FlagE: reserved (marks the presence of the 16th child in a full node)COMMENT
MEDIUM⚡triedb/pathdb/nodes.go444// │ │ └───────────────────── FlagF: reservedCOMMENT
MEDIUM⚡triedb/pathdb/nodes.go445// │ └───────────────────────── FlagG: reservedCOMMENT
MEDIUM⚡triedb/pathdb/nodes.go446// └───────────────────────────── FlagH: reservedCOMMENT
AI Slop Vocabulary8 hits · 23 pts
SeverityFileLineSnippetContext
MEDIUMcore/state_prefetcher.go35// from disk. Transactions are executed in parallel to fully leverage theCOMMENT
MEDIUMcore/rawdb/freezer_batch.go246 // buffer to utilize the full capacity.COMMENT
MEDIUMcore/txpool/blobpool/blobpool.go402// behavioural expectations allow us to design a transaction pool that is more robustCOMMENT
MEDIUMtests/state_test_util.go306 // utilize those codepaths.COMMENT
MEDIUMgraphql/internal/graphiql/graphiql.min.js2!function(){var e,t,n={8042:function(e,t){var n,r;"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self&&seCODE
MEDIUMeth/protocols/snap/sync.go2374 // Essentially, a recursive expansion of HR = (1-MI)*HR + MI*NR.COMMENT
MEDIUMnode/config.go118 // origin. These attacks do not utilize CORS, since they are not cross-domain.COMMENT
MEDIUMnode/config.go183 // origin. These attacks do not utilize CORS, since they are not cross-domain.COMMENT
Hyper-Verbose Identifiers8 hits · 10 pts
SeverityFileLineSnippetContext
LOWinternal/jsre/deps/web3.js9344 function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {CODE
LOWaccounts/abi/abigen/bind_test.go809 function AllPurelyUnderscoredOutput() constant returns (int _, int __) {CODE
LOWaccounts/abi/abigen/bind_test.go2030 function functionWithKeywordParameter(range uint256) public pure {}CODE
LOWaccounts/abi/abigen/testdata/v2/rangekeyword.go.txt63// Solidity: function functionWithKeywordParameter(uint256 range) pure returns()COMMENT
LOWaccounts/abi/abigen/testdata/v2/rangekeyword.go.txt76// Solidity: function functionWithKeywordParameter(uint256 range) pure returns()COMMENT
LOWaccounts/abi/abigen/testdata/v2/underscorer.go.txt63// Solidity: function AllPurelyUnderscoredOutput() view returns(int256 _, int256 __)COMMENT
LOWaccounts/abi/abigen/testdata/v2/underscorer.go.txt76// Solidity: function AllPurelyUnderscoredOutput() view returns(int256 _, int256 __)COMMENT
LOWaccounts/abi/abigen/testdata/v2/underscorer.go.txt91// Solidity: function AllPurelyUnderscoredOutput() view returns(int256 _, int256 __)COMMENT
Fake / Example Data6 hits · 9 pts
SeverityFileLineSnippetContext
LOW⚡rlp/encode_test.go218 val: "Lorem ipsum dolor sit amet, consectetur adipisicing eli",CODE
LOW⚡rlp/encode_test.go218 val: "Lorem ipsum dolor sit amet, consectetur adipisicing eli",CODE
LOW⚡rlp/encode_test.go222 val: "Lorem ipsum dolor sit amet, consectetur adipisicing elit",CODE
LOW⚡rlp/encode_test.go222 val: "Lorem ipsum dolor sit amet, consectetur adipisicing elit",CODE
LOW⚡rlp/encode_test.go226 val: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur mauris magna, suscipit sed vehicula non, iCODE
LOW⚡rlp/encode_test.go226 val: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur mauris magna, suscipit sed vehicula non, iCODE
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHcore/txpool/blobpool/buffer.go59 // request budget, so a peer serving cells as fast as requested fits in it.COMMENT
Slop Phrases2 hits · 4 pts
SeverityFileLineSnippetContext
LOWeth/gasprice/gasprice_test.go125// newTestBackend creates a test backend. OBS: don't forget to invoke tearDownCOMMENT
MEDIUMeth/catalyst/simulated_beacon_api.go65 // It's worth noting that in case a tx ends up in the pool listed asCOMMENT
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOWethclient/ethclient.go101// Example usage:COMMENT
LOWethclient/ethclient.go249// Example usage:COMMENT
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWoss-fuzz.sh73 ## Check if there exists a seed corpus fileCOMMENT
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…ecp256k1/libsecp256k1/include/secp256k1_preallocated.h29 * The purpose of this function is to determine how much memory must be providedCOMMENT
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…6k1/libsecp256k1/tools/test_vectors_musig2_generate.py454CODE