惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园_首页
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
ThreatConnect
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 聂微东
H
Help Net Security
T
Threat Research - Cisco Blogs
Blog — PlanetScale
Blog — PlanetScale
A
Arctic Wolf
G
Google Developers Blog
量子位
U
Unit 42
I
InfoQ
V
V2EX
F
Fox-IT International blog
P
Privacy & Cybersecurity Law Blog
V
Visual Studio Blog
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏
C
CERT Recently Published Vulnerability Notes
博客园 - 三生石上(FineUI控件)
T
The Exploit Database - CXSecurity.com
T
Tailwind CSS Blog
SecWiki News
SecWiki News
Know Your Adversary
Know Your Adversary
MyScale Blog
MyScale Blog
宝玉的分享
宝玉的分享
The Hacker News
The Hacker News
Project Zero
Project Zero
Application and Cybersecurity Blog
Application and Cybersecurity Blog
月光博客
月光博客
Recent Commits to openclaw:main
Recent Commits to openclaw:main
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
GRAHAM CLULEY
C
Cisco Blogs
I
Intezer
Simon Willison's Weblog
Simon Willison's Weblog
O
OpenAI News
Recorded Future
Recorded Future
T
Tenable Blog
W
WeLiveSecurity
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
T
The Blog of Author Tim Ferriss
www.infosecurity-magazine.com
www.infosecurity-magazine.com
D
Docker
C
Cybersecurity and Infrastructure Security Agency CISA
PCI Perspectives
PCI Perspectives

DEV Community

Why I'm Building Decision Systems Instead of Prediction Systems We Replaced Jest With node:test in 12 Services — Here's What Broke and What Didn't Best AI Code Review Tools in 2026: Tested & Ranked Should You Vibe Code Your SaaS Starter or Just Buy One? I built a Spotify recently-played banner for GitHub — without registering an OAuth app Positions Elements in CSS Supply Chains, Zombie OSS, and Agent Firewalls Rudi AI Is a Character Wrapper Over Grok 4. Here Is What That Architecture Teaches Us About Building Persona-Driven AI Products. Why Your Website Can Be "Up" And Still Broken: A Deep Dive Into Latency Phases 5 Uptime Monitoring Mistakes That Cost Developers Hours of Debugging Building a Public Status Page: What to Show and What to Hide A self-hosted Google reCAPTCHA alternative (we ship it) Strong Java Starts with Strong Fundamentals Patrones de Diseño para un Manejo de Errores Limpio y Mantenible en Go Paul Okhrem on Magento and AI: How Elogic Commerce Is Extending Adobe Commerce with Generative AI RSC Component Architecture, Next.js Dev MCP, Interactive Apps Guide, React Doctor, Bklit UI, Chat SDK Community Agent, Prefetch App Shells Kiosk mode behavior on Android TV boxes in real deployments 89 drones hit the water simultaneously: the RF failure mode every event tech operator should model for One Ruler to Measure Them All: How Language Affects LLM Quality Will Opus 4.8 change our daily routine, or did it just add a slider? How We Reduced LLM Latency by 89% and Token Usage by 91% in a Production Chrome Extension Oracle ORA-00028 오류 원인과 해결 방법 완벽 가이드 Stop Writing "fixed stuff": Automate Your Git Commits with Zero AI The four-minute gap: what the Nando's machete incident reveals about incident response systems (not just training) We open-sourced our EU AI Act compliance checklist, and most teams misread Article 12 Check this out! Architecting Production-Ready AI Agent Workflows for the Enterprise Distraction fraud as a systems problem: how organised retail crime syndicates exploit documentation gaps — and what operators can build to close them AI Conf 2026: Classic ML Is Dead, Everyone's Building Agents how I revived and scaled Vim Royale, a pvp vim based multiplayer game to 200+ users I Spent a Weekend Hunting Through Linux's File System and Here's What I Found Beyond Autocomplete: How AI Editors Actually Understand Your Codebase Paul Okhrem on RAG for compliance document review: from 3 hours to under 20 minutes Your AI Has Two Brains: Fast Pattern Mode and the A11 Deep Reasoning Engine 🔮 Hermes Agent 🤖: A Practical Guide 🔥 — and How It Stacks Up Against OpenClaw & GoClaw 📊 Make my boss occupied by a lot of agentic bots: creating automatic workflows for an emerging charity Most Teams Don't Move to Amazon RDS for Performance A Privacy-First Video Captioner That Runs in Your Browser Não achei um framework Go production-ready para agentes de IA. Então construí um. Stop the Lag: Optimizing Heavy Browser-Based PDF Image Extraction Why Codex's Context Compression Breaks at Scale — A Deep Dive Into the Silent Memory Leak Smart Face Recognition Attendance System — No More Proxy Attendance Everyone’s Building AI Agents. Here’s the One I Built for Myself I Couldn't Find a Production-Ready Go Framework for AI Agents. So I Built One. Why Objects Are Passed as Arguments in Java – Complete Guide for Beginners Fractal Time Generator in Schrödinger equation Your AI Is Live. But Do You Actually Know If It's Working? Claude Wrote a NestJS Service. TypeScript Was Happy. ESLint Found 6 Security Holes. What is VPC? Explained for Beginners When Your MCP Publish Channel Is Blocked, Content Becomes Infrastructure Securing continuous delivery loops: How to verify configuration shifts locally with secure YouTube Downloader before deploying to cloud clusters BugWhisperer: How I Finally Finished My Abandoned GitHub Issue Analyzer (8 Months Later) with GitHub Copilot Why AI Image Generation Should Be Async AI Search Systems for Businesses: The Next Big Opportunity for Developers BoxAgnts Introduction (5) — Rust Has Become a New Option for AI Agents 5090 vs 4090 for AI Workloads: Buy, Rent, or Validate in the Cloud? The Prometheus label that blew our monitoring bill out 6x Building a random live webcam discovery site I was tired of security scanners with 90% false positives, so I built my own 📄Paper: RORA-VLM: Robust Retrieval Augmentation for Vision Language Models Free Model Providers to Use with Hermes Agent I built a backend platform that generates REST APIs from a schema — no code, no server setup What I learned from my first AI-assisted bug bounty submissions I built a one-button game in vanilla JS Canvas — single file, no engine, plays in your browser Ideas About How to Get People to Use a Free Wishlist App I Built a Python Prompt Orchestrator for Structured LLM Pipelines What Looked Simple Until I Started Building the MVP Tensors Explained Part 2: Why Tensors Are Useful I built a 9-agent AI dev team in a Claude Code plugin — here's what happened Frontend Engineering in 2026: Mastering Performance and DX The Day Our Treasure Hunt Engine Blew Up at 3 AM (And How We Rebuilt It Right) LLM Benchmarks, Agent Frameworks, and the Tools That Matter in 2026 [03:37:09] Building a Resume Download Gate: Email Collection, Signed Tokens, and an S3 Lesson We have introduced Discord for SuperRails and LazyCafe user support Battery Balancing Explained: Passive vs Active Balancing How I Protected My Inbox from Spam Bots While Building Landing Pages Why output-stage PII masking is the wrong protective surface for data exfiltration in RAG 这个 GitHub 开源项目让你的 AI Agent 拥有「工具应用商店」,86K+ Stars 但 90% 的人只用了 1% 的功能 MCP Registry's 5 Hidden Uses Nobody Talks About in 2026 I Tested 7 SERP APIs in 2026 — Here's Who's Overpriced and Who's Actually Worth It The "Audit Trail" Pattern: Architecture for Immutable Sustainability Data SQL Injection Protection in Flask: A Practical Guide. Part 5 of e2ee chat series How AI Is Reshaping the Data Engineer Role in 2026 The Deploy Tax: The Hidden Cost Nobody Talks About After AI Generates Your Code CSS Flexbox & Grid: The Layout Guide I Wish I Had (2026) From Zero to PCB: A Software Engineer‘s Guide to Designing Your First Circuit Board TanStack shipped a postmortem for the 42-package npm compromise. Here is what every project should change this week. Productivity Perfected: How I Wrapped Up the Super Time Tracker UI How to Give Your Dev Team Shared AI Memory with MCP (Step-by-Step) The AI Memory Problem Is a Team Problem (And Nobody's Talking About It) CLAUDE.md, Obsidian, Markdown Files, and Why Workarounds Don't Scale for Teams Best MCP Memory Servers for Teams in 2026: Context Cloud vs mem0 vs Basic Memory vs claude-mem vs MemPalace Laravel chunk() vs cursor() vs lazy() — Handle Large Data Without Crashing Your Server 🦄 Modernizing Wild Rydes with modern technologies Markio ✨ — A Modern Markdown Editor Rebuilt with GitHub Copilot Une journée avec `/challenger` : 4 bugs, 4 hypothèses réfutées avant le fix A day in the life of `/challenger`: 4 bugs, 4 hypotheses falsified before the fix Stop pasting tokens into random websites: meet SmartDevUtils Circuit Breakers: The Unsung Heroes of Resilient Microservices How I Built a Q&A Bot for My Documentation (and What I Learned)
They Lost Millions by Clicking ‘Sign’ - Here’s How to Never Make That Mistake
Mahima Thack · 2026-05-29 · via DEV Community

Picture this: You're the treasurer of a major crypto exchange. Your phone buzzes with a notification - another routine transaction needs approval. You glance at your screen, see familiar addresses, and click "approve" without a second thought. Within minutes, millions of dollars vanish into thin air.

This isn't fiction. This exact scenario played out when Bybit, one of the world's largest cryptocurrency exchanges, fell victim to a sophisticated hack executed by North Korean cybercriminals. The culprit? A signer who didn't fully verify a transaction, leading to a critical Safe UI vulnerability that drained millions from their multi-signature wallet.

The harsh reality is that even the most secure wallet setups can crumble with one careless click. But here's the good news: these disasters are completely preventable when you know what to look for.

Don’t want to be the next victim?

Let’s walk through how to verify calldata, use multi-sig safely, and pick the right wallet for your level.

The Wallet Hierarchy: Choosing Your Guardian

Before diving into verification techniques, let's address the elephant in the room: which wallet should you even use?

Total Beginner with Small Amounts: Start with custodial wallets or keep funds on reputable exchanges. Yes, "not your keys, not your crypto" is true, but losing $100 to exchange risk beats losing $100 to your own mistakes.

Beginner with Small Money: Browser wallets like MetaMask or Phantom work well. They're user-friendly and perfect for learning the ropes with amounts you can afford to lose.

Intermediate Users with Medium Amounts: Hardware wallets like Ledger or Trezor become essential. They keep your private keys offline and away from internet threats.

Intermediate Users with Large Amounts: Combine multi-signature wallets with hardware wallets. This creates multiple checkpoints that hackers must breach simultaneously.

Advanced Users with Significant Holdings: Multi-signature wallets with social recovery, or custom solutions. At this level, you're building Fort Knox for your digital assets.

For wallet comparisons and security audits, check out walletscrutiny.com, it's like a Consumer Reports for crypto wallets.

Hot vs Cold Wallets

Hot wallets stay connected to the internet (MetaMask, Phantom, and mobile apps). They're convenient for daily transactions but vulnerable to online attacks.

Cold wallets remain offline (Ledger, Trezor hardware devices). They're like keeping cash in a physical safe, much harder to steal remotely.

Important:

Even a cold wallet becomes hot if you connect it to a Safe multi-sig UI!

Always be aware of when you’re online vs offline

Verifying Simple Transactions: Your First Line of Defense

When using MetaMask or similar wallets, you'll sometimes see transaction details that look like gibberish. Don't panic,  here's how to decode them:

Check These Three Things:

Estimated changes - What's actually moving in and out of your wallet

The "to" address - Where your money is going

Hash data - The first 4 bytes reveal the function being called

For example, if you see "0xa9059cbb" in your transaction data, you can decode it using Cast (a developer tool):

cast sig "transfer(address,uint256)"

This returns the function selector you can compare against your transaction. If they match, you're calling a transfer function. If they don't match, stop immediately.

To verify the specific parameters of a transfer:

cast calldata-decode "transfer(address,uint256)"

This shows exactly where your tokens are going and how many.

Multi-Sig Transactions: Where Things Get Complicated

Multi-signature wallets require multiple people to approve transactions before they execute. Think of it like a shared bank account where both you and your spouse need to sign checks for large purchases

Critical Point: A signature request is NOT the same as a transaction request. You're not sending money yet, you're just adding your approval to a pending transaction.

How to Verify a Multi-Sig Transaction

Step 1: Install the Right Tools Get Cyfrin's Safe_hashes tool from GitHub

https://github.com/Cyfrin/safe-tx-hashes?tab=readme-ov-file#curl

This tool decodes Safe transactions into a human readable format.

Step 2: Run the Verification Command

safe_hashes --address --network --nonce

If no transaction appears, use --untrusted mode in above command

Step 3: Manual Verification (Advanced) For complete independence from APIs, use Cast:

cast calldata "approve(address,uint256)"

Then verify with Safe hashes:

safe_hashes --address --network --nonce 2 --data --offline --to

The Golden Rules That Could Save Millions

Never sign and execute simultaneously. Some wallets try to streamline this process, but convenience is the enemy of security.

Watch for operation codes. If you see "operation = 1" in your transaction, you're looking at a DELEGATECALL - essentially giving another contract permission to act with your wallet's full authority. This is extremely dangerous and should only be used in very specific circumstances.

Always verify these three elements before any signature:

  • The destination address (where is this going?)
  • The function selector (what action is being performed?)
  • The value or amount (how much is involved?)

Why This Matters More Than Ever:

The Bybit hack wasn't an isolated incident. Similar attacks happen regularly because people skip verification steps. The difference between a secure transaction and a devastating hack often comes down to spending 30 seconds to verify what you're actually signing.

Remember: in the world of cryptocurrency, there's no "undo" button. Once a transaction is confirmed on the blockchain, it's permanent. The few minutes you spend verifying could be the difference between protecting your assets and reading about your loss in tomorrow's crypto news.

The tools and techniques outlined here aren't just for crypto professional, they're for anyone who values their digital assets enough to protect them properly. Start with the basics, build good habits, and gradually level up your security practices as your holdings grow.

TL;DR

Pick the right wallet for your level

Always verify the transaction before signing, especially calldata

Never trust the UI blindly

Use Safe_hashes or Cast for decoding

Multi-sig ≠ automatic safety

One wrong click can empty your wallet. Take 30 seconds and verify,  your future self will thank you.