Live data from Hacker News

Hackers have withdrawn ~4k BTC (~$320M) from the Liquid Federation wallet

twitter.com

51–60 of 101 posts

Re: Hackers have withdrawn ~4k BTC (~$320M) from the Liquid Federation wallet

#52

Earlier quoted context omitted.

Wasn't this all supposed to be decentralized? How can a foundation choose to unilaterally "pause the sidechain"?

You are conflating the original BTC network and a lot of the other projects in the cryptocurrency / token / stable currency space. Every time there was a new token that was 80% reminded or was governed by a central company, the original cryptocurrency enthusiasts cried fowl. Most people don't read the fine print, don't read the founding white papers, and don't care about the differences between the protocols and the…

I think it's more that the 'original cryptocurrency enthusiasts' tend to look the other way, because the more of these weird shitcoins/nfts/networks get minted, the more their numbers go up.

It's 2026. Show of hands, who here actually uses any of this, and why?

Re: Hackers have withdrawn ~4k BTC (~$320M) from the Liquid Federation wallet

#53
post #33
post #18

Time for bitcoin classic++?

Are you thinking of ETH? All the bitcoin classic forks are over various aspect of network rules (eg. block size or block reward), not to roll back a transaction like ETH classic.

You’re right, I misremembered. Yeah, I was speaking about ETH Classic thing. Thanks for pointing that out.

Re: Hackers have withdrawn ~4k BTC (~$320M) from the Liquid Federation wallet

#56
post #3

Why do they say it's white hat hackers?

While moving the funds, the attackers left an OP_RETURN message with the text "we are whitehats. contact us on chain" https://mempool.space/tx/c103de95817b43f2df635ec6f35ff126ca2...

Further on-chain communications:

https://mempool.space/tx/91271efcbb5ab29abfc38ae635f0644e3ba... "Please contact security@blockstream.com"

https://mempool.space/tx/bd81219691eb1e22475c5985d847fa888c3... from Blockstream, unknown PGP message

https://mempool.space/tx/3a3eac4a26395b8c2563aaf1eb8b1b77798... from attackers, "sending most back to bc1qdlld6antmv4xug242ed83q7k4rqw50cwfns38szx4qu2f4jwaxxsuhwxxr, is that ok"

https://mempool.space/tx/8a444eed65c4584f138e08ee138f61490ef... from Blockstream, PGP-signed "Yes, thank you."

https://mempool.space/tx/83825b2135dd0abac12c9dfe17f29ab81b3... from attackers, "Please fix the bug first. The chain is under risk at latest commit right now. Make sure every node is patched. Then we will transfer the money back safely after confirming the fix. The detail is as follows (encrypted using https://blockstream.com/pgp.txt)." with unknown PGP-encrypted payload

As of writing, no response from Blockstream, and funds are still controlled by the attackers.

Re: Hackers have withdrawn ~4k BTC (~$320M) from the Liquid Federation wallet

#57
I worked at blockstream back in 2017 and developed the original cryptographic range proofs which are the ancestors some of the involved code here. However, the vulnerabilities here and the whole liquid product as it exists today postdates my involvement in the company (while I was there it was under initial development but envisioned quite differently than what they eventually did), and I haven't followed any of it closely since.

But I gave this issue a quick look based on the transactions and github history.

Underlying issue was related to validation caching. Signatures and proofs are expensive to validate, to improve performance and prevent certain DOS attacks their validation is cached. It's important that the key used in the cache capture everything that goes into the validation decision (though to prevent some attacks its important not too much goes into the key, or an attacker can flood with valid proof attacked to insignificantly different transactions).

It appears to me that there was a longstanding vulnerability-- stemming back to the introduction of multiple-asset-support-- which could cause a consensus split/ddos. But on a lazy review I can't come up with any way of translating it into theft. I see how someone could make an invalid transaction that would be falsely accepted by nodes that have cache state from a constructed prior transaction, but the ways I can come up with results in the invalid transaction just burning assets--- not directly very useful. [Big asterisks on the non obviously exploitable here, I've only thought about it for a minute or two and I really know fairly little about assets support in Liquid-- but exploiting it would require being able to create a fake 'shadow' asset with the a generator that is the negation of a real asset.]

In any case: This was recently fixed, but the "fix" introduced a hash collision vulnerability: The new fields added to the hash were not delimited. Failing to include type information like lengths in hashes is a perennial problem in cryptographic protocols.

Imagine you have a protocol where you sign a {comment, command} tuple, each a string. If the protocol computes the hash by just concating the command and comment and they're variable length fields, then you could get a signature of {"boring comment containing dangerous command", "boring command"} but then present it to someone as {"boring comment containing ","dangerous command boring command"} and have the signature pass. That sort of thing.

This new vulnerability has a somewhat straight forward path to exploitation and prints funds out of thin air.

Based on some of the public comments about nodes rejecting the attack transaction, I'm guessing they rolled out the "fix" to the federation in advance of publishing the changes because they seem to have accepted an attack that everyone else was still rejecting.

Advanced private deployment of a 'fix' might have gave them the confidence to drop the fix on github with little fanfare as it was "already fixed", but doing so painted a target on the issue that remained. Interestingly, off the shelf open weight AI like Kimi K3 immediately identify the new vulnerability without any particularly artful prompting. Makes me wonder if "safe" AI played a role in the introduction of the new, more serious, vulnerability.

Interestingly, it looks like the funds are being returned: https://mempool.space/tx/3a3eac4a26395b8c2563aaf1eb8b1b77798...

I'm going to guess that anyone who actually knows more has their hands busy dealing with the return of the funds. I'm not sure if anyone has ever taken and then returned 1/3rd of a billion dollars worth of assets before.

Re: Hackers have withdrawn ~4k BTC (~$320M) from the Liquid Federation wallet

#58
There’s kind of an interesting thread here about open source, which is usually thought of as more secure because of more eyes on the code, actually being less secure because an accidental merge can be exploited instantly with LLM’s monitoring. Is there a lot more security value in obscurity than before?

Re: Hackers have withdrawn ~4k BTC (~$320M) from the Liquid Federation wallet

#59
post #58

There’s kind of an interesting thread here about open source, which is usually thought of as more secure because of more eyes on the code, actually being less secure because an accidental merge can be exploited instantly with LLM’s monitoring. Is there a lot more security value in obscurity than before?

false security. if there aren't LLM's monitoring patches with disassembler MCPs ready, there will be soon.

Re: Hackers have withdrawn ~4k BTC (~$320M) from the Liquid Federation wallet

#60
post #57

I worked at blockstream back in 2017 and developed the original cryptographic range proofs which are the ancestors some of the involved code here. However, the vulnerabilities here and the whole liquid product as it exists today postdates my involvement in the company (while I was there it was under initial development but envisioned quite differently than what they eventually did), and I haven't followed any of it c…

I'm told by someone who threw AI at it that there may be a way to exploit the initial longstanding vulnerability by counting on the fact that updates to validation cache are non-atomic: You can make an invalid transaction that primes the cache before its rejected. But that these priming transactions can't propagate in the network (because they're invalid)... so getting them to the parties that need to sign the blocks might have been impractical to exploit.
Post reply on HN