저자: OneKey Chinese, 출처: 저자 트위터 @OneKeyCN
2021년 말 709,632번째 블록에 탭루트 업그레이드가 적용되었습니다. 당시 사람들은 이더리움 NFT 열풍에 휩싸여 있었기 때문에 이것이 BTC의 가장 '부를 창출하는' 업그레이드가 될 줄은 아무도 몰랐습니다.
탭루트는 세그윗 업그레이드와 함께 BTC 네트워크에 새로운 기능을 도입하고 블록 데이터를 간접적으로 확장(1MB에서 4MB에 해당)하여 2023년부터 현재까지 BTC 생태계의 폭발적인 성장을 촉발시켰습니다. 탭루트 자산, 오디날스 탭루트 에셋, 오디날, BRC-20, ARC-20, 룬 및 기타 새로운 자산도 탭루트의 전송 채택률을 기본적으로 절반 이상으로 유지했습니다.
그러나 새로운 자산과 기능이 도입되면서 새로운 보안 문제가 발생했습니다.
비트코인 생태계는 이더리움 생태계와는 다른 기본 모델을 가지고 있습니다. 비트코인의 새로운 자산 생태계에서 '구축할 것이 너무 많고' '이해의 장벽이 높은' 현재 상황은 많은 사용자들에게 흥미진진한데, 이는 결국 '부자가 될 수 있는 기회'를 의미하기 때문입니다.
그러나 이는 또한 사용자의 보안에 대한 새로운 요구를 요구하며, 그렇지 않으면 뚜렷한 이유 없이 코인을 쉽게 잃을 수 있습니다. 심지어 이전 아토믹 마켓플레이스에서 서명 유형이 오용되어 해킹으로 이어진 사건도 있었습니다.
아래에서 원키는 보안 인프라가 부족한 BTC 생태계에서 자산 보안을 극대화하고 피싱을 방지하는 방법에 대해 자세히 살펴봅니다.
탭루트 업그레이드의 영향
피싱 방지에 대해 자세히 알아보기 전에 탭루트 업그레이드의 영향에 대해 알아볼 필요가 있습니다.
앞서 언급했듯이 탭루트는 BTC의 다중 자산 생태계의 번영에 간접적으로 기여하는 것 외에도 BTC 거래의 기본 계층, 주로 슈노르 서명과 MAST 기술에도 큰 변화를 가져왔습니다. 부분 서명 기반 트랜잭션(PSBT)의 조합은 해커에게 더 많은 낚시 공간을 제공합니다.
한 가지는 슈노르 서명입니다. 이 업데이트는 백서의 ECDSA 서명을 대체합니다. 이 서명의 기술적 특징은 여러 개의 서명 또는 공개 키가 하나로 통합된다는 것입니다. 여러 개의 서명을 반복해서 확인해야 했던 것을 이제 한 번만 확인하면 되므로 서명의 공간을 직접적으로 줄일 수 있습니다.
또 하나는 MAST 기술입니다. 전자는 서명을 집계하는 반면, MAST는 여러 스크립트를 '집계'하는 데 사용됩니다(비트코인의 제한된 '스마트 컨트랙트'라고 생각하시면 됩니다). 또한, 지출을 잠금 해제하기 위해 검증을 제출할 때 지출 조건 중 하나만 확인하면 됩니다. 조건이 많은 복잡한 스크립트의 설치 공간을 크게 줄일 수 있습니다.
이 두 기술은 개인정보 보호에 가장 큰 영향을 미치며 암묵적으로 보안 위험의 여지를 남깁니다.
전송 로깅의 경우, 업그레이드 후 모든 UTXO 전송은 동일하게 보입니다. Mempool에서 전송 유형은 모두 P2TR로 표시되며 주소는 모두 bc1p로 시작하는 동일한 길이입니다.
이전에는 일반 주소(P2PKH/P2WPKH)로의 전송과 스크립트 주소(P2SH/P2WSH)로의 전송을 쉽게 구분할 수 있었습니다.
다른 사람들이 UTXO를 사용하기 전에는 일반 주소로의 이체와 스크립팅된 주소로의 이체를 구분할 수 없었습니다.
스크립트의 경우 채굴자 검증은 스크립트의 지출 조건 중 하나만 노출하면 되며, 나머지 분기 스크립트는 외부에 알려지지 않습니다.
비트코인 생태계에서 새로운 자산의 피싱을 방지하기 위한 5가지 마음가짐
불확실하게도 현재 BTC 티어 1 자산 생태계의 보안 인프라는 이더만큼 강력하지 않으며, 사용자가 먼저 이해해야 할 것이 많습니다.
또한 피싱은 이더리움과 완전히 같은 방식으로 작동하지 않으며, 많은 피싱 공격이 발견되기 전에 시장 전체가 제대로 이해하지 못할 수 있습니다. 예를 들어, 아토믹 마켓에서 발생한 *SIGNHASH_NONE 서명 보안 사고와 유니샛/엑스버스 지갑은 나중에 추가된 보안 경고였습니다.
(1) 첫 번째 마인드 트릭: 진부한 암호화폐 보안의 기본.
즉, 개인키의 오프라인 저장 보안에 주의하고, 신뢰할 수 있는 URL인지 주의하며, 트로이 목마 바이러스 등으로부터 컴퓨터를 보호하는 데 주의를 기울여야 합니다.
그러나 FOMO 시장에서 새로운 프로젝트는 사용자가 "서두르기" 전에 신뢰의 공감대를 형성하지 못했을 수 있으므로 다음 몇 가지 거래 트릭이 특히 중요합니다.
>
(2) 두 번째 거래의 비결: 인풋과 아웃풋을 명확히 하세요.
이더리움에는 '블라인드 서명'이 있습니다. 즉, 서명할 때 지갑이 파싱하지 않으면 지저분한 문자로 이루어진 단락만 볼 수 있으며 서명 후 자산에 어떤 일이 일어날지 예측할 수 없습니다. 이는 또한 코인을 잃을 위험을 초래합니다.
반면 비트코인에서는 거래의 입력과 출력이 무엇인지, 그리고 입력과 출력에 해당하는 전송 주소가 무엇인지 항상 명확합니다. (즉, "어디서 들어왔고 몇 개의 코인이 들어왔는지", "어디로 갔고 몇 개의 코인이 갔는지"를 알 수 있습니다.)
서명할 때 PSBT 사용 여부와 관계없이 거래 전후에 발생하는 변경 사항은 지갑에 명확하게 표시됩니다. 그렇기 때문에 입력과 출력이 의도한 것과 일치하는지 확인하는 것이 중요합니다.
예를 들어 해커가 모든 오디널스 인스크립션 NFT를 한 번에 낚으려는 경우, 트랜잭션의 입력(INPUT)에는 모든 인스크립션 NFT가 입력된 것으로 표시될 것입니다. 동시에 아웃풋은 모두 낯선 주소로 전송되었음을 보여줍니다.
유니샛을 사용하여 매직이덴에서 오디널스 인스크립션 NFT를 나열하는 예를 들어보겠습니다. 매직이덴 마켓플레이스에서 하나 이상의 오디널스 NFT를 주문하면 PSBT 서명 요청이 나타나고 거래의 입력(INPUT)이 하나 이상의 오디널스임을 표시하며, 출력에는 거래가 성공하면 받게 될 비트코인이 표시됩니다.
(3) 세 번째 심리 트릭: 서명 유형에 주의하세요.
현재 비트코인의 서명 유형은 여기(https://btcstudy.org/2021/11/09/bitcoin-signature-types-sighash/)에서 확인할 수 있습니다.
여기서 주의해야 할 서명 유형은 SIGHASH_NONE(0x02)과 SIGHASH_NONE | SIGHASH_ANYONECANPAY(0x82)뿐입니다. 이 두 가지 모두 "트랜잭션의 출력과 관계없이 트랜잭션의 입력에만 서명"함을 의미합니다.
거래 인스크립션 자산의 경우, 보안 서명 유형은 PSBT를 통해 신뢰 없이 완전한 거래를 구성할 수 있는 SIGHASH_SINGLE | SIGHASH_ANYONECANPAY (0x83)입니다. 이는 매직이덴, OKX 및 기타 주요 인스크립션 거래소 마켓에서 사용하는 서명 유형이기도 합니다.
아토믹 마켓플레이스에서 이전에 SIGHASH_NONE | SIGHASH_ANYONECANPAY (0x82) 서명을 오용한 사례를 예로 들어보겠습니다.
아톰 비문 자산을 보류 주문하면 서명할 때 올바른 입력과 출력이 표시됩니다. 즉, "내가 보류 중인 자산이 입력에 명시되어 있고 출력에는 내가 받을 수 있는 금액이 있습니다"라고 표시되는 것이죠.
그러나 해커가 이 PSBT를 손에 넣고 출력을 수정할 수 있으며, 제출된 트랜잭션은 채굴자에 의해 포장되어 궁극적으로 보류 중인 주문의 자금을 받을 수 없게 될 수 있습니다. 간단히 말해, 사용된 서명 유형은 입력 부분에만 서명하기 때문에 궁극적으로 '0달러 구매'로 이어지기 때문입니다.
좋은 소식은 Unisat, Xverse와 같은 주요 BTC 전자지갑에서 이미 알림 강조 표시 또는 SIGHASH_NONE 유형 서명 유형 비활성화를 지원한다는 것입니다. 해당 서명 유형에 대한 알림이 표시되면 특수한 목적이 아닌 용도로 사용하지 마시기 바랍니다.
(4) 네 번째 주의 사항: 스크립트를 주의하세요.
특정 스크립트 주소로 자산을 전송해야 하는 프로젝트나 플랫폼이 있다면 각별히 주의해야 합니다. 서명할 때 에셋이 출력에서 낯선 주소로 이동하는 것을 볼 수 있습니다.
이전 콘텐츠에서 알 수 있듯이 탭루트 업그레이드 후에는 스크립트 주소가 사용자의 개인키 주소와 동일합니다.
도둑이 개인키 주소를 스푸핑하려고 시도하면 받은 자산을 바로 전송할 수 있습니다.
실제 스크립트 주소인 경우. 스크립트 주소의 전체 내용을 공개하는지 여부에 따라 다릅니다. 불완전한 내용을 공개하는 경우, 사용자가 사용 시점에 서명하여 정상적으로 자산을 전송할 수 있음에도 불구하고 하나 이상의 악성 UTXO 잠금 해제 조건이 숨겨져 있을 수 있습니다. UTXO 자산이 갑자기 "폐쇄"되어 미래의 어느 시점에 모든 UTXO 자산이 사라질 수 있습니다.
전체 스크립트를 오픈소스화하더라도 시중의 지갑은 스크립트의 MAST와 출력 주소의 일치 여부를 확인할 수 있는 기능이 없기 때문에 기술에 정통한 사용자가 직접 탭루트 알고리즘을 사용하여 이를 확인해야 합니다. 또는 프로젝트와 팀을 신뢰하세요.
좋은 소식은 현재 애플리케이션의 경우 모든 종류의 인스크립션 자산 거래에 복잡한 스크립트가 필요하지 않으며, PSBT(부분 서명 거래)를 사용하여 입력과 출력을 지정하는 것으로 충분하다는 것입니다.
그러나 향후 BTC L2 작업에는 복잡한 다중 조건 비트코인 스크립트가 포함될 가능성이 높습니다. 예를 들어 바빌론 @babylon_chain의 비트코인 서약 스크립트에는 비교적 복잡한 몰수 로직과 잠금 해제 로직이 있습니다.
이런 종류의 비트코인 스크립트와 함께 네이티브 서약을 사용하려면 스크립트를 오픈소스화하고 보안과 무결성을 검증하거나 사용자가 프로젝트를 절대적으로 신뢰하도록 요구하는 것이 특히 중요합니다.
(5) 다섯 번째 비결: 보안 개발 동향을 주시하고 사전에 인지해야 합니다.
보안 분야의 대표 계정을 팔로우하면 최신 피싱 수법을 파악하고 가장 먼저 경고를 받을 수 있습니다. 슬로우미스트의 코사인 @evilcos, Go Plus 보안 공식 계정 @GoPlusSecurity, 스캠 스니퍼 @realScamSniffer, 원키 공식 계정 @OneKeyCN과 같은 계정을 팔로우하세요.
예방 차원에서 다른 곳에서 보안 경험을 마이그레이션할 수 있습니다.
예를 들어, 이더리움에는 헤더와 테일 주소를 유사하게 구성하여 사용자가 자산을 잘못 복사하여 자산을 잃게 만드는 피싱과 같은 것이 있습니다. 그리고 BTC 서명 트랜잭션을 구성할 때 출력 주소를 명확하게 확인하지 않으면 구멍에 빠질 수 있습니다.
유니샛/엑스버스와 같은 주요 BTC 에코월렛에서 탭루트 주소는 bc1px...e9wh0으로 표시되며, 예를 들어 bc1p는 탭루트 주소의 고정 시작입니다.
이것은 확인을 위해 6글자만 표시하는 것과 같습니다. 일반적인 주소록 기능이 있고 기본적으로 10자리 이상의 이더를 표시하는 지갑의 표준과 비교하면 분명히 충분하지 않습니다.
해커가 맞춤형 피싱을 위해 일치하는 주소를 생성하는 것이 가능하다는 뜻입니다(아직 비트코인에서는 많지 않지만).
따라서 절박한 상황이라면 너무 늦기 전에 최대한 많은 주소를 확인해야 합니다.
줄여서 ......
비트코인 공부하기.
비트코인 보안 공부하기.
와 함께 탭루트는 비트코인에 새로운 자산과 시나리오를 도입하면서 새로운 형태의 보안 위협, 특히 진화하는 피싱 기법에 대해서도 배워야 합니다.
특히 지금은 생태계 인프라가 불완전하기 때문에 조직화된 피싱은 말할 것도 없고, 코인을 잘못 배치하거나 소각하는 경우도 발생하고 있습니다.