
원저자: Janos Nick, Blockstream
원본 편집: Bai Ding, Faust, Geek Web3
개요: 이 기사는 비트코인이 ZK 검증 기능을 지원하도록 하는 방법을 간결하게 설명합니다. 다루는 특정 주제에는 비트코인 UTXO 및 스크립트의 기능적 결함, Taproot 및 OP_CAT과 같은 개념, BitVM 및 체인 상태 증명이 포함됩니다. 일반 내용. 이 기사는 비교적 명확한 관점을 제시합니다.
비트코인 프로토콜에 ZK를 도입하는 것은 피할 수 없는 추세입니다. 이를 위한 두 가지 경로가 있습니다. 하나는 비트코인 스크립트가 OP_CAT 연산 코드의 도움이 필요한 SNARK 검증을 직접 지원하도록 허용하는 것이고, 다른 하나는 OP_CAT이 결국 통과할 확률입니다. 두 번째 경로는 BitVM을 기반으로 하기 때문에 사기 방지 방법을 도입해야 하며 ZeroSync 팀은 기록 데이터에 대한 노드 클라이언트 검증 비용을 줄이기 위해 체인 상태 증명도 제안했습니다.
텍스트: 비트코인을 더 깊이 이해하려면 이를 사회 시스템으로 다루는 것이 가장 좋습니다. 비트코인이 초기에 출시되었을 때 개발자들은 사회 시스템이 따라야 할 일련의 규칙을 결정하는 것과 마찬가지로 비트코인 노드를 실행하는 데 필요한 소프트웨어 프로그램을 결정했습니다. 비트코인의 사회 시스템이 안정적으로 작동할 수 있는 이유는 '비트코인의 본질은 무엇인가', '그것은 무엇이어야 하는가'와 같은 핵심 이슈에 대해 모두가 일정한 합의를 갖고 있기 때문이다. 물론 합의에 도달하는 것은 쉽지 않다. 위의 문제에 대해 광범위하고 진화하는 의견 불일치.
이는 비트코인의 역사적 기원으로 거슬러 올라갑니다. 사토시 나카모토는 비트코인 백서를 발표했을 때 "나는 새로운 전자 결제 시스템을 개발 중입니다. 이 시스템은 완전히 P2P이며 제3자에 의존할 필요가 없습니다."라고 말했습니다. 이 글은 Cypherpunks 메일링 리스트(개인 정보 보호 및 암호화 기술에 관심을 갖고 있는 암호화 전문가 및 기술 애호가 그룹이 1992년에 설립한 이메일 토론 그룹)에 게시되었습니다.
그러나 비트코인은 제품 설계 수준에서 데이터 처리량을 제한합니다. 단위 시간당 처리할 수 있는 거래 수는 제한되어 있습니다. 처리할 거래 수가 급격하게 증가하면 사용자는 거래를 빨리 성공적으로 완료하기 위해 가격 전쟁을 시작하고 지불되는 처리 수수료도 빠르게 증가합니다. 비트코인 네트워크에서 처리 수수료가 가장 높은 단일 거래는 2024년 블록 보상이 절반으로 줄어든 후 발생했으며, 체인에서 중간 우선순위의 거래에 대한 처리 수수료는 150달러에 도달했습니다. 비트코인 네트워크의 비싼 거래 수수료가 문제가 됐다고 할 수 있다.
거래 수수료 문제를 해결하기 위해 사람들은 라이트닝 네트워크 개발에 많은 자원을 투자했습니다. 그러나 2016년에 발표된 논문에 따르면 라이트닝 네트워크는 실제로 수천만 명의 사용자만 지원할 수 있으며 글로벌 결제 시스템이라는 비전을 실현할 수 없습니다.
거래 수수료가 너무 비싸다는 사실 외에도 비트코인이 원하는 익명성을 결코 달성하지 못했다는 문제도 있습니다. 나카모토 사토시(Satoshi Nakamoto)는 사이퍼펑크 이메일 토론 그룹에서 비트코인에 개인 정보 보호 기능이 있으며 거래 개시자는 완전히 익명으로 처리될 수 있다고 지적했습니다. 그러나 거래 개시자는 KYC를 요구하지 않지만, 비트코인 체인의 거래 데이터는 많은 정보를 유출하여 사용자의 개인정보를 상당 부분 노출시킵니다.
위의 문제를 어느 정도 해결하는 개인 정보 보호 기능을 갖춘 지갑 클라이언트가 있지만 이러한 지갑 클라이언트의 개발자는 다양한 규모의 위협에 직면합니다. 예를 들어, Samourai CoinJoin 지갑 개발자는 2024년 4월 FBI에 의해 체포되었고, 일주일 후 Wasabi 지갑 개발자는 CoinJoin 조정 구성 요소를 종료했습니다. 분명히 이러한 소위 개인 정보 보호 지갑은 사용자의 신뢰를 받을 만한 가치가 전혀 없습니다.
정리하자면, 비트코인의 많은 개념은 오늘날까지 실현되지 못하고 있으며, 관련 기술은 여전히 지속적으로 개발되고 있습니다. 그럼에도 불구하고 비트코인 커뮤니티의 많은 사람들은 비트코인의 프로토콜 설계가 변하지 않아야 한다고 믿고 있지만, 저처럼 비트코인 개선에 열정을 갖고 있는 사람들도 많습니다. 그렇다면 비트코인은 어떤 방향으로 개선되어야 할까요?
위의 문제에 대응하여 비트코인 커뮤니티에는 많은 제안이 있으며 이론적 효과가 가장 좋은 제안은 ZK 및 SNARK와 관련되어야 합니다. ZK 및 SNARK를 사용하면 다음 기능을 얻을 수 있습니다.
1. 개인 정보 보호를 대폭 향상: 동형 Peterson을 사용하여 거래 금액 및 범위 증명을 사용하여 사용자 개인 정보 보호를 크게 향상합니다(예: Monero와 같은) 연결 가능한 서명을 통해 거래 추적을 숨깁니다. Zcash로).
2. 거래 처리량 향상
사실 비트코인에 존재하는 문제를 해결하기 위한 기술적 수단은 많이 있는데 왜 오늘날까지 이러한 기술이 비트코인 프로토콜에 추가되지 않았습니까? 비트코인 프로토콜은 수정하기 어렵기 때문입니다. 비트코인 생태계에는 이더리움 재단과 유사한 조직이 없습니다. 프로토콜을 수정하려면 높은 수준의 커뮤니티 합의가 필요합니다. 여기에는 많은 게임과 전원 확인 및 균형이 필요하므로 이더리움과 달리 EVM 운영 코드가 있습니다. 비트코인 프로토콜은 창립 이후 거의 업데이트되지 않았습니다.
사실, 프로토콜이 어느 정도 수정이 어렵다는 것은 좋은 일입니다. 비트코인 프로토콜을 수정하는 것이 쉽다면 악의적인 변경과 공격도 쉽겠지요. 이는 다음과 같은 질문을 던지게 합니다: 비트코인 프로토콜의 설계를 변경하지 않고 비트코인의 성능을 향상시킬 수 있는 방법이 있습니까?
이 질문에 답하려면 먼저 비트코인에 대해 우리가 알고 있는 내용을 검토해야 합니다. 비트코인을 다른 사람에게 전송하려면 거래를 생성하고 이를 비트코인 네트워크에 브로드캐스트해야 합니다. 거래의 출력 데이터에는 전송된 BTC 금액이 표시되며, BTC 수신자는 수신된 BTC를 사용하기 위해 새로운 거래를 생성할 수 있습니다. 이후 이 새로운 거래는 새로운 출력 데이터를 생성하고 BTC를 다른 사람에게 보냅니다.
여기서 주목해야 할 점은 비트코인은 이더리움과 같은 전역 상태, 특히 계정이 없는 상태가 없고 거래 출력 데이터만 있다는 점입니다. 각 거래의 출력에는 수신자가 지출한 상태 또는 사용하지 않은 상태라는 두 가지 상태가 있습니다. 사용되지 않은 거래 출력은 친숙한 UTXO입니다.
물론 관련 BTC 금액 외에도 각 거래 출력에는 Bitcoin Script라는 언어로 작성된 추가 프로그램이 있습니다. 이 프로그램에 대한 올바른 증거 증인을 제공할 수 있는 사람은 누구나 거래 출력(UTXO)을 사용할 수 있습니다. 비트코인 스크립트 자체는 일련의 opcode를 포함하는 스택 기반 프로그래밍 언어입니다. 앞서 언급한 UTXO 어펜더는 종종 스택을 기반으로 계산을 완료하고 결과를 다시 스택에 넣습니다.
비트코인이 시작된 이래로 사용되어 온 일반적인 비트코인 스크립트에는 여러 유형이 있습니다. 예를 들어, 비트코인에서 가장 일반적인 스크립트는 공개 키 + 디지털 서명을 확인하는 opcode로 구성됩니다. 이 opcode는 UTXO를 사용/잠금 해제하려면 해당 공개 키의 디지털 서명이 제시되어야 한다고 규정합니다.
여기서는 비트코인 스크립트의 기능을 요약합니다. 먼저 비트코인 스크립트는 무엇을 할 수 있나요?
· 스택 재배치, 동등성 검사(상등성 검사를 사용하여 특정 조건이 충족되는지 확인하여 트랜잭션의 보안 및 유효성 보장)를 수행할 수 있으며 if-else와 유사한 분기 작업을 수행할 수 있습니다.
· 32비트 숫자에 대해 제한된 산술 연산, 즉 덧셈과 뺄셈을 수행할 수 있습니다.
· 데이터를 해시할 수 있으며 ECDSA 및 Schnorr 서명을 확인할 수 있습니다.
비트코인 스크립트는 무엇을 할 수 없나요?
· 루프, 점프 또는 재귀가 없습니다. 즉, 튜링이 완료되지 않았으며 프로그래밍 기능이 매우 제한되어 있습니다.
· 비트 연산은 불가능합니다. 곱셈과 나눗셈을 위한 연산코드가 부족합니다.
· 스택의 요소를 연결할 수 없습니다.
· 온체인 거래 데이터를 읽고 검사하는 능력이 거의 없습니다.
· 비트코인 스크립트는 각 거래 금액에 직접 액세스할 수 없으며 상태를 전달할 방법이 없습니다(UTXO는 일회용이며 이전 것은 파기되고 각 전송마다 새 것이 생성됩니다).
Bitcoin의 초기 버전에서는 위 스크립트에서 "할 수 없는" 작업 중 일부가 실제로 수행될 수 있지만 Satoshi Nakamoto가 이러한 opcode에 허점이 있음을 발견했기 때문에 나중에 Satoshi Nakamoto가 일부 기능을 비활성화했습니다. 예를 들어, 스택의 두 요소를 결합하는 Opcode OP_CAT를 사용하여 Bitcoin 노드를 원격으로 공격하여 노드를 붕괴시킬 수 있습니다. Satoshi Nakamoto는 조심스럽게 OP_CAT을 비활성화했으며 일부 다른 opcode도 비활성화되었습니다.
그렇다면 비트코인 스크립트가 SNARK를 확인할 수 있나요? 비트코인 스크립트는 이론적으로 Turing-complete는 아니지만 기본 작업만으로 계산을 검증할 수 있습니다. 그러나 실제로는 검증 단계에 필요한 프로그램 크기가 비트코인의 최대 블록 한도인 4MB를 초과하므로 SNARK 검증을 구현할 수 없습니다.
대규모 유한 필드에서 산술 연산을 수행할 수도 있지만 비용이 매우 높습니다. 예를 들어 BitVM으로 구현된 두 개의 254비트 정수를 곱하면 관련 비트코인 스크립트의 크기가 거의 8KB에 이릅니다.
게다가 OP_CAT 없이 머클 증명을 검증하는 것도 for 루프와 유사한 작업이 필요하기 때문에 비용이 많이 듭니다.
그럼 이전 질문으로 돌아가겠습니다. 단순히 비트코인 프로토콜을 변경하고 더 강력한 연산 코드를 추가할 수 없는 이유는 무엇일까요?
앞서 언급한 바와 같이, 비트코인 생태계에는 중앙화된 의사결정자가 없기 때문에 새로운 프로토콜 규칙에 대한 다수의 합의에 도달하는 것은 매우 어렵습니다. 비트코인 스크립트를 개선하려는 제안은 모두의 입장과 관점이 다릅니다. 비트코인 네트워크에서는 커뮤니티가 다수의 합의에 도달했는지 여부를 측정할 수 있는 좋은 방법이 없으며, 이 경우 업데이트를 강제하면 체인 포크가 발생하게 됩니다.
물론, 비트코인이 완전히 정적이지는 않습니다. 최신 업데이트는 2017년의 SegWit과 2021년의 Taproot입니다.
Taproot 업그레이드는 많은 규칙을 변경했으며 이론 출시부터 실제 활성화까지 3년 반이 걸렸습니다. Taproot를 활성화하는 핵심 요소는 기존 보안 가정을 변경하지 않고 비트코인 프로토콜을 명확하게 개선한다는 것입니다. 예를 들어 ECDSA 대신 Schnorr 서명을 사용할 수 있습니다. 둘 다 이산 로그 가정을 기반으로 하며 동일한 타원 곡선을 사용하지만 전자가 후자보다 더 효율적이고 계산 집약도가 낮습니다.
또한 Taproot의 비트코인 개선 사항은 주로 다음 세 부분으로 나뉩니다.
첫째, Taproot는 선택적인 분기가 많은 스크립트의 검증 비용을 줄여 비트코인이 보다 복잡한 프로그램을 지원할 수 있도록 합니다.
둘째, Taproot는 체인에 공개되어야 하는 스크립트 데이터를 줄입니다. 각 스크립트가 다른 리프에 위치하도록 여러 스크립트를 Merkle 트리로 조합할 수 있습니다. . 그것이 위치한 리프와 머클 증명;
셋째, Taproot는 다른 기계 설계도 추가했습니다.
그런데 비트코인은 Tarpoot와 같은 더 강력한 기능을 추가한 선례가 있으므로 SNARK를 확인하기 위해 전용 opcode를 추가하는 것은 어떨까요? 이는 소위 OP_SNARK opcode를 추가하는 것이 Taproot 업그레이드와 매우 다르기 때문입니다.
우선, OP_SNARK에 대한 많은 설계 아이디어가 있으며 대부분의 사람들이 단일 솔루션을 지원하기 어렵습니다. 둘째, 그러한 제안이 통과되면 모든 비트코인 노드는 이 특정 OP_SNARK 솔루션을 지원해야 하며 이는 엄청난 기술적 과제를 추가하게 됩니다. . 부담.
게다가 OP_SNARK 자체의 복잡성도 큰 과제입니다. 테스트를 제외하면 Taproot는 허용되는 약 1600줄의 코드만 추가하는 반면 OP_SNARK에는 훨씬 더 복잡한 코드가 포함되어 있습니다.
또한 OP_SNARK opcode가 활성화되어야 하는지 여부를 누가 검토합니까? 소수의 사람들이 세부 사항을 이해하지 않고도 비트코인 생태계 내에서 합의를 얻는 방법은 무엇입니까? 이것들은 모두 질문입니다. 따라서 전체적으로 OP_SNARK 업그레이드는 단시간에 이루어지지 않습니다.
그러나 Bitcoin 스크립트에서 SNARK를 확인하는 다른 방법이 있습니다. 우리는 사람들이 스크립트에서 SNARK 검증 프로그램을 구현할 수 있도록 더 간단한 opcode를 추가하여 비트코인 스크립트를 더욱 기능적으로 만들 수 있습니다. 하지만 실제로 비트코인 스크립트 언어로 SNARK 검증 프로그램을 작성하는 것은 매우 어렵습니다.
따라서 Blockstream 연구팀은 Bitcoin Script를 대체하도록 설계된 프로그래밍 언어인 Simplicity를 개발하고 있습니다. 단순성은 블록체인 합의 시스템을 위해 특별히 설계되었으며 의도적으로 Turing-complete가 아니므로 정적 분석 및 공식 검증이 쉽습니다.
아래에서는 비트코인 스크립트를 더욱 강력하게 만들 수 있는 매우 간단하면서도 강력한 제안인 OP_CAT opcode에 대해 이야기하겠습니다. 앞서 언급했듯이 OP_CAT은 비트코인 초기 버전에 존재했지만 이 opcode는 비트코인 노드가 특정 조건에서 DOS 공격을 받을 수 있도록 허용했기 때문에 Satoshi Nakamoto에 의해 비활성화되었습니다. 이제 비트코인 커뮤니티의 일부 사람들은 이를 다시 활성화하기를 원합니다. . 그것.
OP_CAT이 하는 일은 스택의 맨 위에 있는 두 요소를 팝하고 연결한 다음 다시 스택에 넣는 것입니다. 이는 매우 간단해 보이지만 비트코인 스크립트에 엄청난 기능적 개선을 가져올 수 있습니다.
예를 들어, 비트코인 스크립트는 원래 체인의 거래량과 같은 상태 정보에 액세스할 수 없었지만 OP_CAT을 사용하면 OP_CAT를 사용하여 머클 증명을 확인할 수도 있습니다. 간단히 말해서 OP_CAT은 기본 opcode 수준의 업그레이드로, 많은 사람들이 OP_CAT을 사용하여 얻을 수 있는 효과를 제안했습니다.
OP_CAT은 스크립트에서 SNARK를 확인하는 데 도움이 됩니까? 대답은 도움이 된다는 것입니다. Merkle 증명 검증 지원은 FRI 기반 SNARK 검증에 도움이 되고 OP_CAT은 이를 지원할 수 있기 때문입니다. 과거에는 SNARK 검증과 관련된 스크립트가 너무 커서 비트코인 블록에 맞지 않았을 수 있습니다. OP_CAT을 사용하면 프로그램 크기를 줄일 수 있습니다.
OP_CAT은 과거 수년 동안 논의되어 왔으며 점점 더 많은 사람들이 트랜잭션 검사(자체 검사)에서 그 역할을 인식하고 있습니다. 다른 제안과 비교했을 때 OP_CAT의 장점은 이전에 비트코인 스크립트에 존재했기 때문에 커뮤니티에서 합의에 도달하기가 더 쉽다는 것입니다. 그러나 OP_CAT의 활성화로 인해 일부 사람들의 MEV 수입이 손상될 수도 있으므로 비트코인 커뮤니티에서는 아직 이에 대한 합의에 도달하지 못했습니다.
요약하자면, 비트코인이 OP_CAT과 같은 간단한 연산 코드를 활성화하여 비트코인 스크립트에서 SNARK를 검증할 수 있는 잠재적인 경로가 있을 수 있습니다. 또한 곱셈 opcode를 활성화하여 모든 산술 opcode가 임의의 정밀도로 작동할 수 있도록 하는 "Great Script Restoration"이라는 최근 제안이 있다는 점도 언급할 가치가 있습니다.
또한 OP_CAT이 비트코인 네트워크에 미치는 영향을 고려할 때 통과 후 비트코인 노드 운영자에게 미치는 영향을 조사할 수 있습니다. 비트코인 검열에 저항하고 분산화되도록 하기 위해 비트코인 커뮤니티는 가능한 한 많은 사람들이 노드를 실행하여 데이터를 확인하기를 원합니다. 비트코인이 SNARK 검증 작업을 지원하는 경우 비트코인 노드를 실행하는 비용은 여전히 크게 증가하지 않으며 이는 비트코인의 보안 및 검열 저항에 큰 해를 끼치지 않습니다.
현재 비트코인 블록은 최대 4MB의 데이터를 포함할 수 있으며 블록은 10분마다 채굴될 것으로 예상됩니다. 거의 모든 블록은 비트코인 스크립트와 증인 증인(디지털 서명과 유사)으로 채워질 수 있습니다. 계산 결과, 각 블록에는 현재 최대 80K의 서명 검증이 포함될 수 있습니다. 각 블록은 7K~10K의 서명 검증을 지원합니다. 내 2020 Intel CPU는 비트코인 블록을 검증하는 데 평균 3.2초가 걸립니다. 물론 블록 검증 속도에 영향을 미치는 것은 시간이 많이 걸리는 서명 검증만이 아닙니다.
또한, 향후 비트코인 거래가 ZK화를 지원하게 된다면 거래 생성 시간이 연장되더라도 무해할 것으로 보입니다. 자산을 장기간 보관하는 데 사용되는 하드웨어 지갑의 경우 화면이 있고 크기가 크지 않은 경향이 있습니다. 그 기능은 키를 저장하고 서명을 생성하는 것입니다. 하드웨어 지갑의 CPU는 일반적으로 비트코인 거래에 서명할 때 매우 빠르게 반응하는 특정 양의 메모리를 갖춘 240MHz 듀얼 코어 CPU와 같이 상대적으로 약합니다.
나는 사용자들에게 서명 장치가 증거를 생성할 때까지 허용할 최대 지연 시간에 대해 묻는 소규모 설문 조사를 실시했으며 많은 사람들은 특히 얻을 수 있는 상당한 이점이 있는 경우 더 오래 기다려도 괜찮다고 말했습니다. 그래서 우리가 비트코인 거래에 ZK를 도입한다면 큰 문제는 없을 것 같습니다.
우리는 위에서 비트코인의 기본 디자인을 변경하는 방법을 논의하는 데 많은 공간을 소비했지만 실제로는 비트코인을 변경하지 않고도 구현할 수 있는 애플리케이션 시나리오가 많이 있습니다. 여기서는 ZK와 결합하여 블록 해시의 유효성을 증명할 수 있는 BitVM(체인 상태 증명)과 관련된 애플리케이션을 강조하고 싶습니다.
이 기술이 비트코인에 어떤 변화를 가져왔나요? 우선, Chain State Proofs를 사용하면 비트코인 캘린더 데이터의 동기화 및 검증 작업을 압축할 수 있어 노드 실행 비용을 크게 줄일 수 있습니다. 현재 하드웨어가 좋은 기기에서는 제네시스 블록부터 최신 비트코인 블록을 동기화하고 검증하는 데 5시간 30분이 걸리는 반면, 라즈베리파이 수준의 기기에서는 며칠이 걸릴 것으로 예상된다. -소모되는 과정을 대폭 줄일 수 있습니다. 둘째, 체인 상태 증명은 BitVM과 함께 사용할 수 있고 BitVM 구현을 촉진하는 중요한 부분입니다.
ZeroSync 팀은 체인 상태 증명에 대한 심층적인 연구를 수행하고 더 가벼운 "헤더 체인 증명"을 만들었습니다. 이 솔루션은 ZK와 결합하여 비트코인 블록 헤더의 유효성만 입증하므로 "헤더 체인"을 형성하며 850,000개를 모두 포함합니다. 비트코인 기록에 블록 헤더를 저장하고 각 블록 헤더에 대해 80바이트 해시를 생성합니다.
이 체계에서는 해당 PoW 증명을 확인하기 위해 각 비트코인 블록 헤더에 대해 이중 SHA-256 계산이 필요합니다. ZeroSync는 STARK를 사용하여 비트코인의 헤더 체인 증명을 생성합니다. 증명 생성 비용은 약 $4,000이며, 브라우저에서 증명을 확인하는 데는 3초밖에 걸리지 않습니다.
그러나 블록 내 거래 내용의 검증 과정이 포함되어 있지 않기 때문에 헤더 체인 증명은 POW 증명이 가장 많은 블록체인만 유효하다고 가정할 수 있으며 기본적으로 비트코인 클라이언트는 이 체인의 최신 블록을 동기화할 수 있습니다. . 이 시나리오에서 공격자는 유효하지 않은 거래가 포함된 블록을 생성하고, 이 블록 뒤에 더 많은 블록을 추가하고, 기록 데이터를 동기화하는 비트코인 클라이언트를 속이기 위해 헤더 체인 증명을 생성할 수 있지만, 그렇게 하면 공격 비용이 매우 많이 들고 비용이 많이 들 것입니다. 기존 비트코인 풀 노드 클라이언트에 의해 직접적으로 거짓이 밝혀졌습니다.
그러나 이 공격 시나리오의 낮은 성공률에도 불구하고 공격자가 막대한 양의 BTC를 훔칠 수 있다면 헤더 체인 증명은 완벽한 솔루션으로 간주될 수 없습니다. 완전한 체인 상태를 증명하려면 secp256k1 타원 곡선을 기반으로 한 ECDSA 및 Schnorr 서명 확인을 포함하여 비트코인 블록의 모든 내용이 유효하다는 것을 직접 증명해야 합니다.
비트코인의 월간 기록 블록에는 3천만 개의 서명이 포함될 수 있으며, 기록에는 총 25억 개의 서명 작업과 다수의 SHA-256 작업이 포함됩니다. 이런 방식으로 비트코인 네트워크는 매달 약 7GB의 블록 데이터를 생성하며, 모든 과거 데이터의 총량은 650GB가 넘습니다. 실제로는 이 숫자가 2~3배일 수도 있다.
이제 BitVM을 살펴보겠습니다. BitVM을 사용하면 비트코인이 모든 컴퓨팅 작업을 확인할 수 있으며 프로토콜을 변경하지 않고도 SNARK 확인을 달성할 수 있는 가장 좋은 방법입니다. BitVM은 스크립트 크기에 대한 비트코인 블록 제한을 해결하기 위해 두 가지 기술을 사용합니다. 첫째, Taproot MerkleTree의 스크립트 구조를 사용합니다.
둘째, 단일 스크립트를 통해 액세스할 수 있는 KV 스토리지 체계를 활성화하여 많은 수의 스크립트에 연결할 수 있습니다. 그러나 비트코인 프로토콜은 위의 KV 저장 체계의 무결성을 강화하지 않습니다. BitVM은 사기 증명을 통해 악의적인 증명자를 확인해야 합니다. 증명자가 유효하지 않은 진술을 발행하거나 문제가 있는 KV 저장소를 발행하면 다른 사람들이 비트코인 체인에서 거래를 시작할 수 있습니다. 이는 Prover가 부적절하게 행동하여 사전 약속된 자산을 빼앗았음을 나타냅니다.
요약하자면, 비트코인은 큰 도전에 직면해 있으며 이러한 문제를 해결하기 위해 다양한 솔루션이 제안되었습니다. 그러나 이러한 제안은 비트코인 커뮤니티에서 신속하게 채택되지 않으며 프로토콜 변경이 단기간에 완료될 수 없습니다. 좋은 점과 나쁜 점은 비트코인이 분산되어 있고 더 안전하다는 것을 의미하기도 합니다.
비트코인 커뮤니티의 많은 사람들은 SNARK/STARK의 잠재력에 대해 기대하고 있습니다. 중장기적으로 SNARK 검증을 달성하기 위한 가장 실현 가능한 방법은 BitVM일 가능성이 높지만 실제로 효과적이려면 더 많은 R&D 투자가 필요합니다.
OP_CAT opcode를 다시 활성화하는 것도 아이디어이지만 opcode를 다시 시작하는 이점이 위험보다 훨씬 크다는 것을 입증하고 어떤 간단한 opcode가 Bitcoin 스크립트에서 SNARK 검증을 허용할 수 있는지 조사하거나 OP_CAT 기능과 유사한 시나리오를 탐색해야 합니다. 달성될 수 있습니다. 어떤 솔루션을 선택하든 비트코인 커뮤니티의 궁극적인 목표는 제품을 실용적으로 만들고 보다 구현 가능한 시나리오를 지원하는 것이어야 합니다.