The Poll That Arrived Without a Signature
0xPlanB
Last week a poll crossed my feed. It carried a headline about American voters and a war's end, and it arrived, as so much does now, republished by a Web3 news aggregator. I read it the way I read a price feed: looking for the signature. There was none. No pollster named. No sample size. No margin of error. No methodology. The article asserted what voters believe and how they will vote, and attached nothing to the claim that could be checked. This is not a political story. It is a data-integrity story. The poll is a packet with its provenance stripped, and the channel that carried it β a crypto feed β is the wrong pipe for political content. That mismatch is the first anomaly. That almost nobody in my industry flagged it is the second.
We do not accept unsigned data in DeFi. That is the claim, at least. In practice every oracle is a trust assumption dressed in code, and the market has decided not to look at the seams.
I have spent years auditing the ingress layer of protocols, and the pattern never changes. A smart contract can be formally verified to its last branch and still be drained by one corrupt input. The logic is not the vulnerability. The well is. Where does the number come from, who signs it, and what happens when the signer lies? Those three questions are the whole of oracle security, and the industry answers them with a whitepaper and a hope.
Chainlink "solved" decentralization by routing data through a set of nodes that are, operationally, a multisig with a marketing department. I have written this before and I will write it again: the decentralization of an oracle is only as strong as the independence of its reporters, and independence is not something you can deploy.
Content has the same architecture and none of the safeguards. An article is a data packet: a source, a transport layer, an aggregation step, a consumer. A poll is the cleanest example, because it has a formal schema β population, sample, weighting, margin. Strip those fields and you have a number without a proof. Republish it through a channel with no editorial stake in politics, and you have laundered the absence of provenance into the appearance of neutrality.
Let me disassemble the packet. A credible poll carries four signed fields: the pollster's identity, the sample frame, the collection window, and the stated error. Each is a commitment. Remove any one and the claim becomes unfalsifiable β not wrong, which is a state you can argue with, but unfalsifiable, which is a state you cannot.
The republished item had none of the four. It had a headline, a date, and a verb. That is the signature of a data structure that was never built to be verified, only to be forwarded.
I have seen this exact defect before. In 2018 I spent three weeks on a line-by-line audit of the Parity multisig library, targeting reentrancy in the ownership update sequence. The bug was not in any single function. It was in the ordering β a state transition that assumed the world could not change mid-call. Reentrancy doesn't announce itself; it exploits the gap between what the code believes and what is true. Provenance failures are the same shape. The reader believes the number is authenticated. The packet never carried the field. The gap between belief and structure is the entire attack.
In 2021 I documented the same gap in a different costume. Sixty percent of popular NFT collections advertised on-chain ownership while hosting their metadata on IPFS behind a gateway that could change its caching policy overnight. The token was immutable. The thing the token pointed at was not. I called the report "The Illusion of Ownership" because the market had confused permanence of a pointer with permanence of the thing pointed to. An unattributed poll is that illusion in text. The headline is the token. The pollster β the actual source β is the metadata nobody stored.
Consider the aggregation layer, where most provenance actually dies. An aggregator is an oracle in reverse: it ingests many unsigned inputs, applies no weighting, and emits a single claim with the authority of consensus. There is no quorum, no stake, no slashing. One content farm forwards a number, three others copy it, and the repetition is mistaken for corroboration. In protocol terms this is a Sybil attack that costs nothing to run and is rewarded for succeeding. The number of sources citing a claim is not evidence of the claim. It is evidence of the claim's distribution.
The primitive that fixes this already exists, and I helped build a version of it. In 2025 I designed a proof-of-personhood protocol for AI agents using a commitment scheme: an agent proves its origin and its intent without revealing its proprietary algorithm. Signed attestation of a source, verified without disclosure. That is precisely what a poll needs β the pollster signs the sample and the methodology, the signature travels with the number, and any consumer can verify the claim without trusting the pipe.
So why does no such packet exist for journalism? Because the incentive runs the other way. Virality rewards stripped provenance. The aggregator wants volume, the pollster wants reach, the reader wants confirmation, and no actor in the chain is paid to sign. The absence of a signature is not an oversight. It is a business model.
poll {
source_pubkey, // signed, revocable
sample_frame_hash, // committed before collection
window, // signed timestamps
margin, // declared, not derived
signature // verifiable by any consumer
}
Five fields. Every one checkable. None present in what crossed my feed. The cost of adding them is trivial β a signature is microseconds β and the reason they are absent has nothing to do with engineering difficulty. It is purely a question of who pays.
The industry's blind spot is that we treat content provenance as someone else's problem. It is not. It is an oracle problem wearing a journalism costume, and the same engineers who would reject an unauthenticated price feed will forward an unauthenticated claim without a second thought. We hardened the transaction layer and left the information layer wide open.
But here is the harder truth, and it deserves scrutiny. The report itself concedes that the achievement it describes β a war ended, fuel cheaper β moved no voters. Even a perfectly signed, immutable, verifiable poll would not have changed a single mind, because the failure was never at the data layer. It was at the decision layer. "The art is the hash; the value is the proof" β and a hash is only a witness, not a verdict. Cryptographic provenance can prove the bytes were not altered. It cannot prove the bytes are true, and it cannot make anyone care that they are.
There is a second surface here that the technical community keeps missing. A political narrative routed through a "neutral" Web3 pipe is not neutral. The channel is the attack. When technical feeds carry political content, they borrow the credibility of engineering to launder claims that would never survive editorial review. That is not aggregation. That is injection.
The next infrastructure build is not faster consensus. It is attested ingress β a provenance layer for the data we consume, signed at the source and verifiable at the edge. Until it exists, every feed is an unaudited well, and the industry will keep drinking from it. We do not build for today.