Gelalens

Market Prices

Coin Price 24h
BTC Bitcoin
$62,422.1 -1.07%
ETH Ethereum
$1,841.32 -1.54%
SOL Solana
$71.25 -2.69%
BNB BNB Chain
$575 -2.21%
XRP XRP Ledger
$1.06 -0.94%
DOGE Dogecoin
$0.0690 -1.60%
ADA Cardano
$0.1719 +0.12%
AVAX Avalanche
$6.24 -3.35%
DOT Polkadot
$0.7694 +0.22%
LINK Chainlink
$7.97 -2.63%

Fear & Greed

27

Fear

Market Sentiment

Event Calendar

{{年份}}
18
03
unlock Sui Token Unlock

Team and early investor shares released

12
05
halving BCH Halving

Block reward halving event

10
05
upgrade Ethereum Pectra Upgrade

Raises validator limit and account abstraction

28
03
unlock Arbitrum Token Unlock

92 million ARB released

22
03
unlock Optimism Unlock

Circulating supply increases by about 2%

15
04
halving Bitcoin Halving

Block reward reduced to 3.125 BTC

08
04
upgrade Solana Firedancer

Independent validator client goes live on mainnet

30
04
upgrade Celestia Mainnet Upgrade

Improves data availability sampling efficiency

Altseason Index

44

Bitcoin Season

BTC Dominance Altseason

Gas Tracker

Ethereum 28 Gwei
BNB Chain 3 Gwei
Polygon 42 Gwei
Arbitrum 0.5 Gwei
Optimism 0.3 Gwei

Market Cap

All →
1
Bitcoin
BTC
$62,422.1
1
Ethereum
ETH
$1,841.32
1
Solana
SOL
$71.25
1
BNB Chain
BNB
$575
1
XRP Ledger
XRP
$1.06
1
Dogecoin
DOGE
$0.0690
1
Cardano
ADA
$0.1719
1
Avalanche
AVAX
$6.24
1
Polkadot
DOT
$0.7694
1
Chainlink
LINK
$7.97

🐋 Whale Tracker

🔴
0x4a76...8b9c
1d ago
Out
1,182,313 USDT
🟢
0x8b43...0189
1h ago
In
633,830 DOGE
🔴
0xd71b...f272
1d ago
Out
4,911,572 USDT

💡 Smart Money

0xe296...1fe1
Market Maker
+$0.4M
70%
0x4298...0dec
Experienced On-chain Trader
+$3.6M
69%
0x6f55...2dd5
Early Investor
+$1.4M
70%

🧮 Tools

All →
DeFi

The Share Button Paradox: 10,000 Private Chat Messages Were Publicly Indexed—Here Is the On-Chain Proof

Samtoshi

Last Monday, I ran a routine Dune query on the privacy-focused blockchain chat app ChatLock. The dashboard showed a sudden spike in calls to its getPublicShare endpoint—from zero to over 15,000 in under 48 hours. Something was wrong. The project’s whitepaper promised end-to-end encryption and “off-chain sharing with access control.” Yet here, the data screamed: public access was wide open.

Context: The Privacy Promise ChatLock launched in early 2024 with a clear selling point: encrypted direct messages stored on-chain, with a share function that only reveals the decryption key to a specific recipient via a signed link. The protocol uses a permission ledger smart contract to track which addresses can read a shared message. The share function requires a setSharePermission call that writes an entry {chatId, allowedAddress}. Only the holder of the correct key can read the encrypted payload. The model is sound—on paper.

But the on-chain data told a different story. Over the past three months, the number of getPublicShare calls that returned a decrypted message without a prior setSharePermission entry grew exponentially. By cross-referencing the two tables—permission logs and share endpoints—I found a critical mismatch: 10,347 message IDs had no corresponding permission record, yet were retrieved successfully by unauthenticated addresses.

Core: The Missing Line I traced the issue to a single function in the chat app’s frontend proxy contract. The developer wrote:

function publicShare(bytes32 chatId) public view returns (string memory) {
    // Missing: require(permissionLedger[msg.sender][chatId] == true);
    return store.retrieve(chatId);
}

A one-line omission. No permission check before returning the decrypted payload. The team had intended to include a check that msg.sender had been granted access, but the line was never added. The result? Anyone who knew the chatId—and because chat IDs are deterministic hashes of the conversation data, they could be guessed—could fetch the message. No license required. No permission needed.

On-chain, I identified 2,300 unique chatIds that were called without a prior permission record. Assuming each shared message contains an average of 1.5KB of text, that’s roughly 15 MB of private conversation data exposed. Worse: the exposed data included timestamps, wallet addresses, and plaintext message bodies. Some messages contained transaction details, account passwords, and even seed phrases shared in confidence.

Contrarian: The Myth of Discovery The usual narrative is “bug reported, bug fixed, crisis averted.” But the on-chain data shows the bug existed since deployment—over 170 days. The team’s internal monitoring never caught it. A third-party security researcher noticed the permissionless getter because they were crawling every function call on the chain. The team patched within 6 hours of the report, but the data exposure window was half a year.

Correlation does not equal causation, but the spike in getPublicShare calls in the last month correlates with a marketing push that drove new users to the share feature. The more people used the “share” button, the more messages became public. The team’s patched contract now includes the missing require statement, but the historical data remains exposed—copied, cached, and potentially sold. High APY doesn’t always mean high returns; sometimes it means high risk.

Takeaway: What to Watch Next Week The ChatLock token pumped 12% after the patch announcement—investors cheered the quick fix. But I’ll be watching the daily new permission ledger entries for the next seven days. If the number drops back to zero after the patch, it means the team is truly enforcing access control. If it stays flat, the fix might be cosmetic. Trust is a variable, data is a constant. The data will tell us if the security culture is real—or just another vanity metric.

Trust is a variable, data is a constant. The data will tell us if the security culture is real—or just another vanity metric.