Home市場Blockstream、Liquidから盗まれたBTCの残りを返すようハッカーに要求

Blockstream、Liquidから盗まれたBTCの残りを返すようハッカーに要求

ホワイトハットのハッカーがBlockstreamのLiquidサイドチェーンを標的にし、約4,000BTCを持ち去った。ハッカー側はその一部を報酬として手元に残したい考えだ。Blockstreamはこれに納得していない。

ビットコインのインフラ企業Blockstreamは、先週同社のLiquidネットワークから4,000BTCを盗んだハッカーとの、これ以上の交渉を拒否した。

Blockstreamは金曜日にXへ投稿し、同社が法執行機関と連携する前に、ハッカーにはまだ資金を返す時間があるとした。

ホワイトハットのハッカーは日曜日、BlockstreamのサイドチェーンであるLiquidを裏付けるフェデレーションのウォレットから、約3億2,000万ドルを引き出した。Blockstreamとの交渉を経て資金の大半を返したものの、4,600万ドル超に相当する598.5BTCは手元に残し、身代金として要求している。

身代金は支払わないとする声明

「Blockstreamは、盗まれた資金の返還に身代金を支払わない」と投稿は述べている。「許可なく資産を持ち出し、その返還を拒むことは犯罪であって、責任ある開示ではない。ホワイトハットの活動でもない。窃盗だ」

「Liquid Networkからビットコインを盗んだ者たちへ:Blockstreamは、盗まれた資金の返還に身代金を支払わない。許可なく資産を持ち出し、その返還を拒むことは犯罪であって、責任ある開示ではない。ホワイトハットの活動でもない。それは…(続く)」

同社はさらに、「法執行機関、取引所、サービス事業者、資金追跡の専門家、その他の関係者と協力し、資産を追跡・回収するとともに、責任者を特定する」と続けた。

「盗まれた財産の返還に対価は払わない。ユーザーを見捨てることはない。ビットコインコミュニティは資金の追跡をやめない」

インフレーションバグとブロックに書き込まれたメッセージ

Liquidは、Blockstreamが開発したレイヤー2で、ユーザーが資産をすばやく移動できるようにするものだ。その資産の一つであるLBTCは、ビットコインに裏付けられたトークンで、ライトニングネットワークにやや似た形で、迅速な決済を可能にする。

ハッカーは、Liquidサイドチェーン上のインフレーションバグ(本来裏付けのないLBTCを新たに生成できてしまう不具合)を悪用し、それまで存在しなかった約4,000LBTCを生成したうえで、オンチェーンの実際のビットコインに換金して資金を手にした。

その後ハッカーは、ビットコインのブロックに書き込んだメッセージを通じて、Blockstreamとやり取りした。

あるメッセージで、ホワイトハット側はこう書いている。「まずバグを直してほしい。最新のコミットの時点で、チェーンはリスクにさらされている。すべてのノードにパッチが当たっていることを確認してほしい。修正を確認できたら、我々は資金を安全に返す」

最新のメッセージでは、ハッカーはBlockstreamを「現実が見えておらず、強欲で、傲慢だ」と非難し、やり取りを復号するための秘密鍵を、いずれ公開するとも述べた。

メッセージにはこうある。「あなたたち自身の資金から、10%をバグ報奨金として必ず支払え。さもなければ、あなたたちは自らの無責任さとけちさによって、自分たちの保有者全員に15%の損失を負わせることになる」

ビットコインコミュニティは、7月にハッカーがColdcardウォレットの保有者から1億4,000万ドル近くに相当する1,800BTC超を盗み出した件の衝撃から、いまだ立ち直っていない。

Coinkiteが手がけるこの人気のハードウェアウォレットのユーザーが標的になったのは、製造元が真性乱数生成器を使っていなかったためだ。これによってハッカーは、ユーザーのシードフレーズを事実上推測できた。

Author

RELATED ARTICLES
.bitcoin-widget { background-color: #1a1a2e; color: white; padding: 20px; border-radius: 10px; max-width: 325px; width: 100%; font-family: Arial, sans-serif; box-sizing: border-box; margin: 0 auto; } .bitcoin-header { display: flex; align-items: center; margin-bottom: 15px; flex-wrap: wrap; } .bitcoin-icon { width: 24px; height: 24px; margin-right: 10px; } .price { font-size: 24px; margin: 0; margin-bottom: 10px; } .stats-container { display: flex; flex-wrap: wrap; justify-content: space-around; gap: 10px; margin-top: 10px; } .stat-column { text-align: center; flex: 1 1 30%; } .stat-label { font-size: 12px; color: #999; margin-bottom: 5px; } .stat-value { font-size: 14px; } .positive { color: #00ff00; } .negative { color: #ff0000; } .error-message { color: #ff0000; font-size: 12px; display: none; margin-top: 10px; } .view-charts-button { display: block; width: 100%; max-width: 250px; margin: 20px auto 0; padding: 10px; background-color: #ff9500; color: white; text-align: center; text-decoration: none; border-radius: 5px; font-size: 14px; font-weight: bold; } .view-charts-button:hover { background-color: #e68600; text-decoration: none; color: white; }
Bitcoin Bitcoin BTC/JPY
¥0
24hr %:
0.0%
24hr High:
¥0
24hr Low:
¥0
Error loading data. Check console for details.
VIEW 150+ BITCOIN CHARTS
async function updateBitcoinPrice() { try { const response = await fetch('https://api.coingecko.com/api/v3/coins/bitcoin?localization=false&tickers=false&market_data=true'); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } const data = await response.json(); // Update price in JPY const price = data.market_data.current_price.jpy; const change = data.market_data.price_change_percentage_24h; // Percentage is currency-agnostic const high = data.market_data.high_24h.jpy; const low = data.market_data.low_24h.jpy; // Update price display with Yen symbol document.getElementById('bitcoin-price').textContent = `¥${price.toLocaleString('ja-JP', { minimumFractionDigits: 0, maximumFractionDigits: 0 })}`; // Update price change with color const changeElement = document.getElementById('price-change'); changeElement.textContent = `${change.toFixed(1)}%`; changeElement.className = 'stat-value ' + (change >= 0 ? 'positive' : 'negative'); // Update high and low prices with Yen symbol document.getElementById('high-price').textContent = `¥${high.toLocaleString('ja-JP', { minimumFractionDigits: 0, maximumFractionDigits: 0 })}`; document.getElementById('low-price').textContent = `¥${low.toLocaleString('ja-JP', { minimumFractionDigits: 0, maximumFractionDigits: 0 })}`; hideError(); } catch (error) { console.error('Error fetching Bitcoin price:', error); showError('Failed to fetch Bitcoin price'); } } function showError(message) { const errorElement = document.getElementById('error-message'); errorElement.textContent = message; errorElement.style.display = 'block'; } function hideError() { const errorElement = document.getElementById('error-message'); errorElement.style.display = 'none'; } // Initialize and start updates document.addEventListener('DOMContentLoaded', () => { try { updateBitcoinPrice(); setInterval(updateBitcoinPrice, 60000); } catch (error) { console.error('Initialization error:', error); showError('Initialization failed'); } });

LATEST NEWS

custom ad 1