위험 경고: '가상화폐', '블록체인'이라는 이름으로 불법 자금 모집 위험에 주의하세요. — 은행보험감독관리위원회 등 5개 부처
검색
로그인
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
시장 동향 보기
BCH의 하드포크 비하인드: "리플레이 공격"에 따른 사용자 자조 가이드
安比(SECBIT)实验室
特邀专栏作者
2018-11-16 09:18
이 기사는 약 1857자로, 전체를 읽는 데 약 3분이 소요됩니다
이 분기 후 이론적으로 재생 공격으로 인해 모든 당사자가 합의를 무너뜨리고 컴퓨팅 성능을 0으로 재설정할 수 있습니다.

11월 16일 오전 2시 16분, BCH는 블록 556767에서 하드 포크를 가졌습니다. 포크 전쟁이 끝나고 BCH ABC와 BCH SV의 두 진영으로 나뉘었습니다.

이번 하드포크에서 BCH ABC도 BCH SV도 "재생 방지"를 구현하지 않았습니다. 즉, 이 포크 이후 이론적으로 리플레이 공격은 합의의 붕괴와 모든 당사자의 컴퓨팅 파워 제로로 이어질 수 있습니다.

리플레이 공격이란?

기존의 컴퓨터 용어에서 재생 공격(재생 공격 또는 재생 공격이라고도 함)은 공격자가 대상 호스트에서 수신한 데이터 패킷을 전송하여 시스템을 속이는 목적을 달성하는 것을 말합니다. 재생 공격은 모든 네트워크 통신 과정에서 발생할 수 있으며, 컴퓨터 세계에서 해커들이 흔히 사용하는 공격 방법 중 하나입니다. 주로 인증 프로세스에 사용됩니다.

블록체인 분야에서 리플레이 공격(Replay Attacks)은 보통 블록체인이 하드포크될 때 나타나며, "한 체인의 트랜잭션이 다른 체인에서는 합법인 경우가 많다"고 합니다.

블록체인에서 "재생 공격"이 무엇인지 간단히 설명할 수 있는 예가 있습니다.


리틀A는 결제금액을 확인할 수 없는 양조장에서 맥주를 ​​구매하고(여기서는 어떤 결제인지 알 수 없음) 알리페이 결제 성공 결제 정보를 점원에게 보여주면 점원이 맥주를 건넨다. 그러자 Xiao A는 마지막 결제 정보를 다른 판매원에게 보여주었고, 판매원은 그에게 맥주를 한 잔 더 주었다. Little A가 반복적으로 결제 정보를 표시하는 한 그는 계속해서 맥주를 ​​속일 수 있으며 양조장에게는 재생 공격이며 수많은 맥주를 잃었습니다.

이 BCH 하드포크에 관한 한, BCH는 하나의 체인에서 두 개의 체인으로 변경되었으며, 두 체인이 모두 지원되고 계속 작동할 때 다른 포크된 체인은 자산 BSV를 생성했습니다. 즉, BCH ABC와 BCH SV가 모두 존재합니다. . 리플레이 보호가 없기 때문에 포크 후에 그대로 두고 자연스럽게 성장하도록 놔두면 이때 발생합니다. SV 체인에서 거래할 때 동일한 주소, 알고리즘 및 거래 형식으로 인해 다음과 같은 경우를 얻습니다. ABC 체인이 재방송하면 ABC 체인에서 유효한 것으로 인식하여 동일한 트랜잭션 작업을 수행할 수 있습니다. 공격자는 이 취약점을 악용하여 거래소에 지속적으로 입출금(BCH SV)하면 추가로 BCH ABC를 획득할 수 있습니다.

이는 재생 방지 기능이 없는 BCH 사용자 자산이 위험에 노출되었음을 의미하며, 더 심각하게는 합의 붕괴 및 제로 컴퓨팅 파워로 이어질 것입니다.

"리플레이 공격"의 기원: 이더리움 하드포크

2016년 7월 20일 저녁, 이더리움은 192만 블록에서 하드포크를 하여 ETH 체인과 ETH 클래식 체인이라는 두 개의 체인이 생겼고, 위의 토큰들은 ETH와 ETC라고 불렸습니다.

이 두 체인의 주소와 개인 키 알고리즘은 동일하고 트랜잭션 형식도 정확히 동일하므로 체인 중 하나의 트랜잭션은 다른 체인에서 완전히 합법적일 가능성이 높습니다. 따라서 체인 중 하나에서 트랜잭션을 시작하고 다른 체인에서 재방송하면 확인될 수도 있습니다.

사전에 계획이 없기 때문에 많은 사람들이 이 허점을 악용하여 추가 ETC를 얻기 위해 지속적으로 ETH를 거래소에 입출금합니다. 블록체인 세계에서 "리플레이 공격"이 재정의되었습니다.

재생 공격의 영향을 받는 이더리움의 현재 문제는 사용자에게 존재합니다. ETH와 ETC 모두 경제적인 물량이 풍부하고, 만약 사용자가 자신의 연산이 재생될 가능성을 해결할 수 없다면, 다른 자산을 유지하면서 하나의 자산을 팔고 싶거나, 스스로 분리해야 하거나, 아니면 그것은 교환의 도움을 통해서만 실현될 수 있습니다.

대응: 거래 전 분리

BCH는 리플레이 보호 없이 포크되었기 때문에 리플레이를 피할 수 없으며 손실을 피하기 위해 거래소와 사용자는 BCH ABC/BCH SV 분리 여부를 확인해야 합니다.

BCH의 두 가지 업그레이드 버전인 bitcoin abc 0.18.2와 bitcoin sv 0.1을 다시 살펴보겠습니다.

Abc0.18.2 프로토콜 버전의 주요 수정 사항은 OPcode, OP_CHECKDATASIG(CDS) 및 OP_CHECKDATASIGVERIFY(DSV)의 두 가지 opcode를 추가하고 블록 내 트랜잭션의 순서 지정 규칙을 TTOR(토폴로지 정렬)에서 CTOR(캐노니컬 정렬)로 변경하는 것입니다.

SV0.1 프로토콜 버전의 주요 수정 사항은 4개의 초기 Bitcoin opcode OPCode, OP_MUL, OP_LSHIFT, OP_RSHIFT, OP_INVERT를 복원하고 각 스크립트에 대해 201개의 opcode 제한을 삭제하고 블록 크기의 상한을 128MB로 늘리는 것입니다.

두 버전 모두 오퍼레이션 코드를 업데이트했기 때문에 이미 BCH를 보유하고 있는 사용자의 경우 트랜잭션 오퍼레이션에 새로운 OP 코드를 사용하는 것이 더 안전하며 계정을 운영하기 전에 분리해야 합니다.

분할하는 가장 쉽고 효과적인 방법은 분할 지점 이후 100 블록의 마이닝 풀에서 코인베이스 트랜잭션의 UTXO를 조금 구입하여 BCH 지갑으로 보낸 다음 모든 잔액을 한 번에 새 주소로 전송하는 것입니다. 체인에서 한 번만 수행하면 되며 완전히 분리할 수 있습니다.

두 자산을 분리한 후 새로운 OPCode를 사용할 수 있으며 재생으로 인해 BCH 체인의 새로운 OPCode에 안전 위험이 없습니다.

여기에서 SECBIT Lab은 ABC/BSV를 지원하는 BCH 보유자와 거래소가 재생으로 인한 손실을 방지하기 위해 귀하/귀하의 사용자의 BSV를 분리하기 전에 트랜잭션에서 새로운 OPCode를 신중하게 사용하도록 상기시킵니다.

Odaily 공식 커뮤니티에 가입하세요