Workspace Index › Dev Notes › OP_RETURN became a negotiation channel — sharing one fact without trust
#76PoC
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.
리퀴드 공격자와 블록스트림이 비트코인 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가 그 영수증입니다.