dumbtv
dumbtv takes the ads, screen tracking and update nags out of your Fire TV over ADB. No root, none of your apps touched, every step can be undone. Free and open source.
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Zcash 錢包的隱私檢查工具:找出往返交易、快速退出與指紋金額,這些會將隱蔽活動串聯起來,並在您執行提領前進行檢查。
AI 翻譯
A privacy checkup for Zcash wallets: finds the round trips, quick exits and fingerprint amounts that link shielded activity, and checks a withdrawal before you make it.
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A privacy checkup for Zcash wallets. Shielded transactions hide who paid whom and how much. How you enter and leave the shielded pool can still link your addresses together. Tells reads a wallet's history through its viewing key, on your own machine, and shows what an outside observer can connect. Run it before a withdrawal and it proposes a safer way to make it.
The first studies of the Zcash chain found that simple patterns undo most of the privacy people think they have:檢視完整 README ↗A privacy checkup for Zcash wallets. Shielded transactions hide who paid whom and how much. How you enter and leave the shielded pool can still link your addresses together. Tells reads a wallet's history through its viewing key, on your own machine, and shows what an outside observer can connect. Run it before a withdrawal and it proposes a safer way to make it.
Live: https://luoy16002-svg.github.io/tells/
The first studies of the Zcash chain found that simple patterns undo most of the privacy people think they have:
Wallets today warn about transparent addresses, but nothing tells a user "this withdrawal will link you to the deposit you made an hour ago." Tells does, before the transaction exists.
Only three things cross the pool boundary in public: an amount, a block time and a transparent address. Every rule uses nothing else, so every finding is something anyone reading the chain can also find.
| Rule | What it catches | Severity |
|---|---|---|
| Round trip | An exit within a fee (or 0.1%) of an earlier entry | Critical under 2 h, high under a day; up for unique amounts, down for round ones |
| Sum match | An exit equal to two or three recent entries added together | Like round trips |
| Quick exit | Leaving the pool within a day of entering, even with different amounts | High under 1 h |
| Fingerprint amounts | Crossings with four or more decimals (round amounts minus a fee count as round) | Low to medium |
| Address reuse | One transparent address on several crossings | Low to medium |
| Transparent payments | Transparent-to-transparent spends | Low to medium |
| Pool migrations | Sapling, Orchard and Ironwood moves publish their amount | Low |
| Crowd size | Other people's look-alike entries and exits in the same window: exits from compact blocks, entry amounts by resolving each shielding transaction's transparent inputs | Lowers a link by one or two levels |
Measured on mainnet blocks 3,504,400–3,504,495 (about two hours), Tells resolved all 50 shielding transactions: 36 had no look-alike entry, 10 had one and 4 had three. The first run fetched 162 transactions in 45 seconds; a repeat run reads them from the on-disk cache in under a second.
Pre-flight takes a planned withdrawal (amount, time, destination), runs the same rules as if it had happened, and if it is risky proposes alternatives: wait, send a round amount and keep the remainder shielded, split, or use a fresh address. Every alternative is re-checked before it is shown.
Open the live page, look at the sample wallets, try the pre-flight, or drop your own history.json (made below). The page runs entirely client-side.
You need a unified full viewing key (uview1...), which can see your history but cannot spend, and the wallet's birthday height. With Node 22 or newer:
npx github:luoy16002-svg/tells scan --ufvk uview1... --birthday 2726400 --out history.json
This creates a view-only wallet in a temporary folder, syncs it from lightwalletd (zec.rocks by default) with zcash-devtool, prints the checkup and writes history.json for the web page. If zcash-devtool is not on your PATH and you pass no --devtool, Tells downloads a build of the pinned upstream commit made by this repository's public scanner workflow, and checks it against the release's SHA256SUMS. Behind a proxy, set HTTPS_PROXY and NODE_USE_ENV_PROXY=1.
Other commands:
tells report <wallet-dir | history.json>
tells preflight <wallet-dir | history.json> --amount 0.75 --at 2026-10-04T12:00Z --to t1...
tells export <wallet-dir> --out history.json
The rules are a dependency-free TypeScript package (packages/core) that runs in a browser, Node or a mobile JavaScript engine:
import { preflight } from '@tells/core';
const check = preflight(history, { amount: 54_311_000, time: Date.now() / 1000, address: recipient });
if (check.verdict === 'risky') showWarning(check.findings[0].title, check.alternatives);
packages/core rules, scoring, pre-flight (TypeScript, no dependencies, tested with vitest)
packages/cli reads a zcash_client_sqlite wallet (Node's built-in SQLite), drives zcash-devtool for scans
apps/web the checkup page (Vite, plain TypeScript, hand-drawn SVG timeline)
demo/ testnet histories made with real transactions
The CLI reads v_received_outputs, v_received_output_spends and sent_notes from the wallet database to rebuild, per transaction, what the account spent and received in each pool (transparent, Sapling, Orchard, Ironwood). Crossings are derived from those flows the way an observer sees them: value entering or leaving the shielded pools, and moves between them.
zcash-devtool on your machine, which talks to a lightwalletd server like any light wallet does. Use --server to choose one you trust, or route over Tor with zcash-devtool's --connection tor.history.json is read in the browser and never sent anywhere.--entry-crowd-max-blocks and --entry-crowd-max-transactions). A window that hits a cap or a fetch error is reported as incomplete and never lowers a severity.MIT. Built by Kai Chen for the Colosseum Crypto World's Fair (Zcash track).