Workspace IndexKnowledge Notes › OP_RETURN became a negotiation channel — sharing one fact without trust

#130PoC

OP_RETURN became a negotiation channel — sharing one fact without trust

The Liquid attacker and Blockstream settled a return over Bitcoin OP_RETURN + PGP: fix the bug, patch every bridge node, then return the funds. Blockstream posted patch-complete as an on-chain message; 3,400 BTC (85%) came back on 2026-09-07, 598.5 BTC (~$47M) did not. Two parties with zero mutual trust closed a deal by trusting the same ledger.

Not a build — a design lesson to apply. When two sides that do not trust each other need to agree on one fact, look for the cheapest channel that is unforgeable, ordered, publicly verifiable, and irreversible — a chain's data field is exactly that. Then check the part the channel does NOT give you: enforcement. Write, next to every 'the counterparty promised X', the line 'what auto-triggers if they don't' — if that line is empty, it is a gentlemen's agreement, not a protocol. For Verex, the concrete application is to inscribe the resolution basis (which source, which timestamp) on-chain, and to prove by block height that oracle finalization preceded settlement. Confirm the incident specifics against Blockstream's notes before citing figures.

Why

The interesting thing is not the theft; it is that the settlement ran over a data field on Bitcoin. OP_RETURN has four properties at once — unforgeable, ordered, publicly verifiable, irreversible — and those four turned the sentence 'the patch has shipped' into shared state that neither side could later deny. That is the purest form of what a blockchain is for: not payments, but a fact two adversaries can both point at.

But a verifiable channel makes a promise unforgeable, not enforceable, and the 598.5 BTC that never came back is the proof. The channel carried the words and the PGP signatures carried the identity; nothing carried the obligation. This is the same boundary the Liquid mint bug exposed from the other side (liquid-issuance-not-authorization): checking the actor is not checking the object, and here, agreeing on a fact is not compelling an action. The last cell of any protocol table is always the same question — is there code that fires when the counterparty defaults? If not, you have documentation of a broken promise, not a mechanism.

How it works

Why OP_RETURN could be the channel

Property What it gave the deal
Unforgeable neither side could fake the other's message
Ordered 'patch shipped' provably came before 'funds returned'
Publicly verifiable anyone could check the terms, not just the two parties
Irreversible the record could not be quietly edited afterward

Together these make a shared fact between adversaries — the thing a blockchain is actually for. PGP signatures rode alongside to bind each message to an identity, because on a bridge there is no other trusted channel between the sides.

What it could not do

The channel proved the promise; it did not keep it. 598.5 BTC stayed gone. Agreement is not enforcement — and no data field fixes that. Enforcement needs code that executes on default, which an inscription is not.

Where this lands in Jayverse

  • Verex settlement — inscribe the resolution basis on-chain and prove oracle-before-settlement by block height, so the 'why this paid' is itself shared state, not a claim.
  • Any bridge / escrow — pair the agreed fact with an on-chain trigger; the agreement is the easy half, the trigger is the half that makes it a protocol.

The one-line takeaway

A verifiable ledger lets enemies share one fact for free — but sharing a fact is not enforcing a promise, and the missing 598.5 BTC is the receipt.

Where it lands in Jayverse

  • Verex: inscribe the resolution basis on-chain and prove oracle-before-settlement by block height. Record the source and timestamp the market resolved on, so "why this paid" is shared, verifiable state rather than a claim only the UI makes.
  • Token/Bridge: pair the relayer's agreed facts with an on-chain trigger, not just a message. An unforgeable record that a mint or burn event happened is not enforcement — write the code that fires automatically when the counterparty side doesn't follow through.
  • Auditor: require every cross-party settlement to name its default trigger. For any bridge or market resolution, the audit should ask what code executes if the counterparty defaults; an empty answer means a gentlemen's agreement, not a protocol.

Key expressions

Words and phrases from this page worth keeping, with the Korean meaning and the sentence they come from.

Expression뜻 · 쓰이는 자리
settled a return합의로 반환을 해결하다·정산하다 · 분쟁 당사자끼리 반환 조건에 합의할 때 · "settled a return over Bitcoin OP_RETURN + PGP"
shared state(양측이 공유하는) 공통 사실·상태 · 신뢰 없는 두 당사자가 함께 확인 가능한 정보 · "shared state that neither side could later deny"
unforgeable위조 불가능한 · 온체인 기록의 신뢰성을 설명할 때 · "neither side could fake the other's message"
gentlemen's agreement강제력 없는 신사협정 · 집행 장치가 없는 약속을 가리킬 때 · "it is a gentlemen's agreement, not a protocol"
auto-triggers자동으로 발동되다(집행 장치가 자동 실행됨) · 계약 위반 시 자동 실행되는 코드를 가리킴 · "what auto-triggers if they don't"
is the receipt~이 그 증거다 · 결과가 주장을 뒷받침하는 증거임을 강조할 때 · "the missing 598.5 BTC is the receipt"
rode alongside~와 함께 동반되다·같이 따라오다 · 서명이 메시지와 함께 첨부되었음을 말할 때 · "PGP signatures rode alongside to bind"
compelling an action행동을 강제하는 것 · 약속을 지키게 만드는 힘이 없음을 지적할 때 · "agreeing on a fact is not compelling an action"
irreversible되돌릴 수 없는 · 온체인 기록의 특성을 나열할 때 · "the record could not be quietly edited afterward"
PGPPretty Good Privacy · 공개키 암호로 메시지에 서명해 신원을 증명하는 방식, 두 당사자 간 신원 바인딩에 사용 · "PGP signatures rode alongside to bind each message to an identity"
OP_RETURN비트코인 스크립트 opcode · 송금 없이 최대 80바이트 데이터를 트랜잭션에 기록해 온체인에 메시지를 남기는 명령어 · "OP_RETURN became a negotiation channel"
LiquidBlockstream이 운영하는 비트코인 사이드체인 · 이 사건에서 공격당한 브리지 네트워크 · "The Liquid attacker and Blockstream settled a return"

← All Knowledge Notes · Workspace Index · Top ↑

OP_RETURN이 협상 채널이 됐다 — 신뢰 없이 사실 하나를 공유하는 법

리퀴드 공격자와 블록스트림이 비트코인 OP_RETURN + PGP로 반환을 협상했습니다: 버그를 고치고 모든 브리지 노드에 패치가 적용되면 반환. 블록스트림이 패치 완료를 온체인 메시지로 공지한 뒤 2026-09-07에 3,400 BTC(85%)가 돌아왔고, 598.5 BTC(~$4,700만)는 미반환. 서로 신뢰가 0인 두 당사자가 같은 원장을 신뢰해 거래를 성사시켰습니다.

구현이 아니라 적용할 설계 교훈입니다. 서로 안 믿는 두 쪽이 사실 하나에 합의해야 할 때, 위조 불가·순서 보장·공개 검증·되돌리기 불가한 가장 싼 채널을 찾으세요 — 체인의 데이터 필드가 바로 그것입니다. 그다음 그 채널이 주지 '않는' 부분을 확인하세요: 강제(enforcement). '상대가 X를 약속했다' 옆에 '안 지키면 무엇이 자동 발동하는가'를 적으세요 — 그 줄이 비면 프로토콜이 아니라 신사협정입니다. Verex에는 판정 근거(어느 소스, 어느 시점)를 체인에 새기고, 오라클 확정이 정산보다 먼저였음을 블록 높이로 증명하는 것이 구체적 적용입니다. 수치 인용 전 블록스트림 공지로 확인하세요.

흥미로운 건 도난이 아니라, 정산이 비트코인의 데이터 필드 위에서 돌았다는 것입니다. OP_RETURN은 네 성질을 동시에 갖습니다 — 위조 불가·순서 보장·공개 검증·되돌리기 불가 — 이 넷이 '패치가 배포됐다'라는 문장을 어느 쪽도 나중에 부인 못 하는 공유 상태로 만들었습니다. 블록체인이 원래 하려던 일의 가장 순수한 형태입니다: 결제가 아니라, 두 적대자가 함께 가리킬 수 있는 사실 하나.

하지만 검증 가능한 채널은 약속을 위조 불가능하게 만들 뿐 강제하지 못하고, 끝내 안 돌아온 598.5 BTC가 그 증거입니다. 채널은 말을 실었고 PGP 서명은 신원을 실었지만, 의무를 실은 것은 없었습니다. 이는 리퀴드 발행 버그가 반대편에서 드러낸 것과 같은 경계입니다(liquid-issuance-not-authorization): 주체를 검사하는 것이 대상을 검사하는 것이 아니듯, 사실에 합의하는 것이 행동을 강제하는 것이 아닙니다. 어떤 프로토콜 표의 마지막 칸은 늘 같은 질문입니다 — 상대가 안 지켰을 때 발동하는 코드가 있는가? 없으면, 깨진 약속의 기록일 뿐 메커니즘이 아닙니다.

동작 방식

OP_RETURN이 채널이 될 수 있었던 이유

성질 거래에 준 것
위조 불가 어느 쪽도 상대 메시지를 위조 못 함
순서 보장 '패치 배포'가 '자금 반환'보다 먼저임이 증명됨
공개 검증 두 당사자만이 아니라 누구나 조건 확인 가능
되돌리기 불가 기록을 나중에 조용히 고칠 수 없음

이 넷이 합쳐 적대자 사이의 공유 사실을 만듭니다 — 블록체인이 실제로 하려는 일. PGP 서명이 각 메시지를 신원에 묶으려 나란히 실렸습니다. 브리지에는 양측 사이 다른 신뢰 채널이 없기 때문입니다.

하지 못한 것

채널은 약속을 증명했지 지키게 하진 못했습니다. 598.5 BTC는 안 돌아왔습니다. 합의는 강제가 아니고 — 어떤 데이터 필드도 그걸 고치지 못합니다. 강제에는 불이행 시 실행되는 코드가 필요하고, 새겨진 글은 그게 아닙니다.

Jayverse에서의 자리

  • Verex 정산 — 판정 근거를 체인에 새기고 오라클→정산 순서를 블록 높이로 증명해, '왜 이렇게 지급됐나'가 주장이 아니라 공유 상태가 되게 합니다.
  • 모든 브리지/에스크로 — 합의된 사실을 온체인 트리거와 짝지으세요; 합의는 쉬운 절반, 트리거가 프로토콜로 만드는 절반입니다.

한 줄 요약

검증 가능한 원장은 적끼리 사실 하나를 공짜로 공유하게 해줍니다 — 하지만 사실 공유는 약속 강제가 아니고, 사라진 598.5 BTC가 그 영수증입니다.

Jayverse에서의 위치

  • Verex: 정산 근거를 온체인에 새기고 오라클이 정산보다 먼저였음을 블록 높이로 증명한다. 마켓이 어떤 소스와 시각을 기준으로 정산됐는지 기록해, "왜 이렇게 지급됐는지"가 UI만의 주장이 아니라 공유되고 검증 가능한 상태가 되게 한다.
  • Token/Bridge: 릴레이어가 합의한 사실을 메시지뿐 아니라 온체인 트리거와 짝짓는다. 민트나 번 이벤트가 일어났다는 위조 불가능한 기록은 집행이 아니다. 상대방이 이행하지 않을 때 자동으로 발동하는 코드를 작성한다.
  • Auditor: 당사자 간 모든 정산에 기본값(default) 트리거를 명시하도록 요구한다. 모든 브리지나 마켓 정산에 대해, 상대방이 이행하지 않을 때 어떤 코드가 실행되는지 감사에서 묻는다. 답이 없다면 프로토콜이 아니라 신사협정이다.

핵심 표현

이 페이지의 영어 본문에서 배울 만한 단어와 표현, 뜻과 나온 자리.

Expression뜻 · 쓰이는 자리
settled a return합의로 반환을 해결하다·정산하다 · 분쟁 당사자끼리 반환 조건에 합의할 때 · "settled a return over Bitcoin OP_RETURN + PGP"
shared state(양측이 공유하는) 공통 사실·상태 · 신뢰 없는 두 당사자가 함께 확인 가능한 정보 · "shared state that neither side could later deny"
unforgeable위조 불가능한 · 온체인 기록의 신뢰성을 설명할 때 · "neither side could fake the other's message"
gentlemen's agreement강제력 없는 신사협정 · 집행 장치가 없는 약속을 가리킬 때 · "it is a gentlemen's agreement, not a protocol"
auto-triggers자동으로 발동되다(집행 장치가 자동 실행됨) · 계약 위반 시 자동 실행되는 코드를 가리킴 · "what auto-triggers if they don't"
is the receipt~이 그 증거다 · 결과가 주장을 뒷받침하는 증거임을 강조할 때 · "the missing 598.5 BTC is the receipt"
rode alongside~와 함께 동반되다·같이 따라오다 · 서명이 메시지와 함께 첨부되었음을 말할 때 · "PGP signatures rode alongside to bind"
compelling an action행동을 강제하는 것 · 약속을 지키게 만드는 힘이 없음을 지적할 때 · "agreeing on a fact is not compelling an action"
irreversible되돌릴 수 없는 · 온체인 기록의 특성을 나열할 때 · "the record could not be quietly edited afterward"
PGPPretty Good Privacy · 공개키 암호로 메시지에 서명해 신원을 증명하는 방식, 두 당사자 간 신원 바인딩에 사용 · "PGP signatures rode alongside to bind each message to an identity"
OP_RETURN비트코인 스크립트 opcode · 송금 없이 최대 80바이트 데이터를 트랜잭션에 기록해 온체인에 메시지를 남기는 명령어 · "OP_RETURN became a negotiation channel"
LiquidBlockstream이 운영하는 비트코인 사이드체인 · 이 사건에서 공격당한 브리지 네트워크 · "The Liquid attacker and Blockstream settled a return"

← 전체 기술 노트 · 워크스페이스 인덱스 · 맨 위 ↑