Workspace IndexDev Notes › A faucet without limits is a payout, not a feature

#66PoC

A faucet without limits is a payout, not a feature

Anything free and permissionless — faucets, airdrops, gasless calls, referral bonuses — gets farmed by generated wallets within hours. Abuse economics is application design: price the free thing in something the attacker cannot mint.

Deploy a naive faucet, drain it with fifty generated wallets, then rebuild it behind cost-bearing gates — per-address cooldown, proof-of-personhood stub, small stake, or paid gas — and measure how each gate changes the attacker's unit economics.

Why

In a permissionless system, an address costs nothing — so any benefit keyed to an address is keyed to nothing. One person is a thousand wallets whenever a thousand wallets pay better than one. Every airdrop-farming industry, every drained testnet faucet, every sybil-swept referral program is the same arithmetic: benefit per wallet greater than cost per wallet, repeated until the pool is empty.

The defense is not detection — it is repricing. Attach to each claim a cost the attacker cannot manufacture: time (cooldowns cap extraction rate), money (a small stake makes 1,000 wallets 1,000 stakes), computation, or identity (proof-of-personhood, at its own trust cost). The design question is a product question: which cost can you impose that a legitimate user barely notices and a wallet-generator cannot amortize? The faucet is the minimal lab for this, but the same table prices your airdrop, your free tier and your sponsored gas.

How it works

One naive faucet, one scripted sybil, four gates, and the attacker's P&L per gate.

PoC

On anvil (or a public testnet): Faucet.sol paying 0.1 tokens per claim. Attack script: generate 50 wallets, claim with each, sweep balances to one address — record time and gas spent vs tokens extracted. Then add gates one at a time and rerun: (1) per-address cooldown of 24h — extraction throttles but new wallets bypass it, proving address-keyed limits alone fail; (2) claim requires a 0.02 stake locked for a week — the sybil's capital cost now scales with wallet count; (3) claimer pays own gas on a chain where gas is nontrivial — same effect via fees; (4) a proof-of-personhood stub (one signature per registered identity). Output: one table, rows = gates, columns = attacker cost, attacker yield, legitimate-user friction.

What it proves

Sybil resistance is not a detection feature bolted on later — it is the pricing of the free thing, decided at design time. The winning gates are the ones that scale cost with wallet count while staying flat for a human with one wallet; the table makes that trade-off measurable instead of rhetorical. Directly reusable for the paymaster caps in sponsored-gas-is-cogs and any future Jayverse airdrop.

← All Dev Notes · Workspace Index · Top ↑

한도 없는 파우셋은 기능이 아니라 지출이다

무료이면서 무허가인 모든 것 — 파우셋, 에어드랍, 가스리스 호출, 추천 보너스 — 은 몇 시간 안에 생성 지갑들에게 파밍당합니다. 남용 경제학은 애플리케이션 설계입니다: 공격자가 찍어낼 수 없는 것으로 공짜의 값을 매기세요.

순진한 파우셋을 배포해 생성 지갑 50개로 고갈시킨 뒤, 비용을 지우는 게이트들 — 주소별 쿨다운, 인격 증명 스텁, 소액 스테이크, 유료 가스 — 뒤에 다시 만들어 각 게이트가 공격자의 단위 경제를 어떻게 바꾸는지 측정합니다.

무허가 시스템에서 주소는 공짜입니다 — 그래서 주소에 묶인 혜택은 아무것에도 묶이지 않은 것입니다. 지갑 천 개가 하나보다 더 벌리는 순간, 한 사람은 지갑 천 개가 됩니다. 모든 에어드랍 파밍 산업, 모든 고갈된 테스트넷 파우셋, 모든 시빌에게 쓸려 나간 추천 프로그램은 같은 산수입니다: 지갑당 혜택 > 지갑당 비용, 풀이 빌 때까지 반복.

방어는 탐지가 아니라 재가격 책정입니다. 각 청구에 공격자가 제조할 수 없는 비용을 붙이세요: 시간(쿨다운은 추출 속도를 상한), 돈(소액 스테이크는 지갑 1,000개를 스테이크 1,000개로 만듦), 연산, 또는 신원(인격 증명 — 그 자체의 신뢰 비용을 치르고). 설계 질문은 제품 질문입니다: 정상 사용자는 거의 못 느끼고 지갑 생성기는 상각할 수 없는 비용이 무엇인가? 파우셋은 이것의 최소 실험실이지만, 같은 표가 당신의 에어드랍, 무료 티어, 스폰서드 가스의 값을 매깁니다.

동작 방식

순진한 파우셋 하나, 스크립트 시빌 하나, 게이트 넷, 그리고 게이트별 공격자 손익계산서.

PoC

anvil(또는 공개 테스트넷)에서: 청구당 0.1 토큰을 주는 Faucet.sol. 공격 스크립트: 지갑 50개 생성, 각각 청구, 잔액을 한 주소로 쓸어 모음 — 추출한 토큰 대비 쓴 시간·가스를 기록. 그다음 게이트를 하나씩 더해 재실행: (1) 주소별 24시간 쿨다운 — 추출은 느려지지만 새 지갑이 우회, 주소 기반 한도 단독은 실패함을 증명; (2) 청구에 一주일 잠기는 0.02 스테이크 요구 — 시빌의 자본 비용이 지갑 수에 비례; (3) 가스가 사소하지 않은 체인에서 청구자가 자기 가스 지불 — 수수료로 같은 효과; (4) 인격 증명 스텁(등록 신원당 서명 하나). 산출물: 표 하나 — 행 = 게이트, 열 = 공격자 비용, 공격자 수익, 정상 사용자 마찰.

무엇을 증명하나

시빌 저항은 나중에 덧붙이는 탐지 기능이 아니라 설계 시점에 결정되는, 공짜의 가격 책정입니다. 이기는 게이트는 지갑 수에 비용이 비례하면서 지갑 하나인 인간에게는 평평한 것들이고, 표는 그 트레이드오프를 수사가 아니라 측정으로 만듭니다. sponsored-gas-is-cogs 의 페이마스터 상한과 미래의 Jayverse 에어드랍에 그대로 재사용됩니다.

← 전체 개발 노트 · 워크스페이스 인덱스 · 맨 위 ↑