블록체인 분리가 가져오는 안전 도전

블록체인 갈라짐은 소프트 갈라짐과 하드 갈라짐으로 나뉜다.본고는 주로 하드코어를 연구하는데 뒤로 호환되는 소프트웨어 업그레이드 방식을 지원하지 않는다.하드 포인터는 공통된 인식의 분열 또는 변화이다. 공통된 인식은 블록체인 시스템에서 각 노드가 데이터의 일치성을 달성하는 알고리즘이다. 정상적인 상황에서 각 노드는 같은 규칙의 알고리즘을 실행해야 한다. 예를 들어 비트코인이 실행되는 것은 PoW(작업량 증명)를 바탕으로 하는 공통된 인식이고 이더리움도 PoW 공통된 인식이었으나 최근'The Merge'를 통해 PoS 공통 알고리즘으로 전환되었다.

갈라지는 원인은 여러 가지가 있는데 블록체인에서 흔히 볼 수 있는 현상이다. 보통 짧은 거리의 갈라지는 것이다. 이것은 공통 알고리즘과 관련이 있다. 같은 높이에서 서로 경쟁하는 블록이 나타날 수 있지만 최종적으로 어떤 블록은 포기되고 하나의 블록만 보존된다.그러나 하드 포인터가 다르다. 이것은 계획적이고 목적이 있는 포인터이다. 일부 노드 클라이언트는 원 네트워크와 다른 프로그램 버전을 배치했다. 생산된 블록은 포인터 체인에서만 검증을 통과할 수 있고 원 네트워크에서 받아들일 수 없고 원 네트워크의 블록도 받아들일 수 없다.예를 들어 최근에 인기를 끌고 있는 ETHW(EthereumPoW)의 갈라짐

만약에 블록체인을 성공적으로 분할하는 것이 쉽지 않다. 원래 네트워크의 코드를 직접 복제하는 것이 아니라 기본적인 수정을 해야만 블록체인의 안전한 운행을 보장할 수 있다. 이를 위해 우리는 몇 가지 흔히 볼 수 있는 안전 문제와 보호 방법을 총결하였다.

네트워크 계층

분할 체인은 원래 네트워크에 독립된 블록체인이기 때문에 먼저 네트워크 층(P2P)에서 격리해야 한다.

1. 피드 노드

피드 노드는 bootnode 또는seednode라고도 하는데 블록체인이 시작될 때 네트워크가 먼저 연결을 시도하는 노드이다.갈라진 체인은 시작할 때 먼저 피드 노드 목록의 노드를 연결하여 네트워크에 있는 다른 대등 노드를 발견한 다음에 블록을 동기화하고 공감대를 형성할 수 있다.따라서 원본 네트워크에 연결되지 않도록 피드 노드 목록을 수정해야 합니다.

2. 이형 공격

피드 노드 목록이 바뀌었다고 해서 갈라진 네트워크가 원 네트워크에 연결되지 않는 것은 아니다. 쌍방의 P2P 프로토콜이 같기 때문이다. 만약에 한 노드가 무의식중에 다른 네트워크의 노드 연결을 추가한다면 두 노드는 악수에 성공하고 상대방을 노드 주소 탱크에 추가할 것이다.뿐만 아니라 쌍방 노드는 자신의 노드 안의 주소를 상대방에게 공유하여 쌍방 네트워크 노드 탱크가 서로 오염되게 할 수 있다.이 문제에 대해 느린 안개는 이전에 단독으로 을 공개한 적이 있다.

주소지가 서로 오염되는 문제를 해결하기 위해서는 통신 프로토콜에서 네트워크 식별을 해야 한다.초기의 이더리움은 네트워크 구분을 지원하지 않았지만 후속 버전에는 프로토콜에 네트워크 ID를 네트워크 구분의 표식으로 추가했다. 네트워크 ID는 일반적으로 모든 체인의 체인 ID이다. 예를 들어 이더리움 메인 네트워크의 네트워크 ID와 체인 ID는 모두 1이고 ETHW 초기 버전에서는 네트워크 ID를 구분하지 않아 이형 공격의 빈틈이 존재할 수 있다.

비트코인 네트워크에서 사용하는 것은Magic값을 사용하여 서로 다른 네트워크를 표시하는데 보통chainparams에서 정의한다. 예를 들어 비트코인의 메인 네트워크 값은 F9BEB4D9이고 테스트 네트워크 값은 FABFB5DA이다.

공통 계층

1. 거래 격리

일반적으로 블록체인과 상호작용할 때 우리는 자신의 개인 키로 거래를 체결해야 한다. 그 다음에 이 거래는 네트워크에 방송되고 광부나 블록 노드에 의해 블록에 포장된다.그러나 만약에 블록체인이 갈라지면 이 거래는 두 개의 네트워크에 의해 각각 다른 블록에 포장될 수 있다. 만약에 이것이 원래 체인의 이체라고 가정하면 갈라진 체인에도 같은 이체가 있을 것이다. 이것은 분명히 예상치 못한 행위이고 자산 손실을 초래할 것이다.

이때 거래에 대한 리셋 보호가 필요하다. 초기 이더리움 버전에서는 이런 보호를 하지 않았고 나중에 EIP155 이후 거래 구조에 ChainID를 추가하여 사용자가 서명한 거래가 현재 네트워크에만 사용되도록 확보했다.이더리움에 대해 분할을 한다면 ChainID에 대한 재정의도 필요하다. 물론 이것은 설정 안의 ChainID만 수정하는 것이 이렇게 간단한 것은 아니다. 분할체인은 낡은 블록을 호환해야 하기 때문에 분할 높이 이후에 새로운 ChainID를 사용해야 분할체인이 정상적으로 운행할 수 있다.

비트코인의 거래 구조에 ChainID가 존재하지 않는다면 어떻게 리셋 보호합니까?비트코인은 UTXO라는 모델을 사용했다. 간단하게 말하면 하나의 거래(UTXO)를 소비하는 것이지 계정을 소비하는 것이 아니다. 일반적으로 새로 시작한 네트워크는 같은 두 건의 거래가 존재하지 않고 재생하는 장면도 존재하지 않는다.

그러나 하드 포크의 경우 거래 재개 문제가 존재한다. 예를 들어 2017년의 BCH 포크와 이후의 BSV 포크이다.BCH는 거래 데이터 서명을 통해 SIGHASH_ 추가FORKID(0x40)를 사용하면 BCH의 거래와 BTC의 거래가 더 이상 서로 호환되지 않고 리셋 보호의 목적을 달성할 수 있습니다.

2. 산력 조정

갈라지기 전에 원체인은 전체 네트워크의 모든 산력을 차지한다. 그러면 PoW 공통 알고리즘에 따라 그의 블록 계산 난이도도 비교적 높다.갈라진 후에 산력은 서로 다른 블록체인에 분산된다. 그러면 갈라진 체인은 공감대가 부족하기 때문에 새로운 블록을 생산할 충분한 산력을 얻지 못하고 블록의 성장은 정체에 빠질 것이다.이때 갈라진 후의 초기 계산 난이도를 낮추고 갈라진 체인에 산력을 신속하게 조정하는 시간 창을 얻을 필요가 있다.

3, 51% 공격 방지

네트워크와 거래가 분리되고 블록체인이 갈라지며 새로운 블록이 순조롭게 생산되고 모든 것이 정상적으로 보인다.그러나 안전 문제는 여전히 두드러진다. 그것은 여전히 더욱 보편적이고 방어하기 어려운 공격이 존재한다. 51%의 공격이다.

광산을 파는 것은 이익을 추구하는 것이다. 지폐가 나타날 때 어느 쪽의 광산 수익이 높은지 광부들은 산력을 그 네트워크로 전환시킨다. 그러나 현실은 지폐가 종종 화폐 가격이 낮아서 전체적인 산력이 매우 낮다는 것이다.ETHW의 갈라진 지점을 예로 들면 우리는 2miners에서 본 바와 같이 원래 ETH 네트워크의 산력 최고치가 최고 900TH/s를 넘었고 원고를 쓸 때 ETHW의 산력은 30TH/s 정도밖에 되지 않았다. 대량의 산력이 사라지는 것은 좋은 일이 아니라 언제든지 ETHW에 51%의 공격을 할 수 있다.

이런 51% 공격에 대한 예방은 좋은 방법이 거의 없고 확인수를 늘려 예방할 수밖에 없다.

응용층

우리는 거래에 구축된 응용, 예를 들어 가상 기기 기반의 스마트 계약을 응용층으로 분류한다.블록체인이 갈라질 때 블록체인에서 실행되는 응용에도 큰 영향을 미친다.

1. 서명 리셋

서명 리셋은 위에서 언급한 거래 리셋과 같은 이치이다. 일부 계약, 예를 들어 Gnosis Safe는 계약에서 사용자의 서명을 검증한다. 만약에 서명에 ChainID가 포함되지 않으면 이 서명은 두 개의 체인에서 리셋할 수 있어 자산 손실을 초래할 수 있다.

2. 예언기 실효

갈라진 블록체인의 대부분 스마트 계약은 여전히 정상적으로 운행할 수 있다. 예를 들어 Token 계약, AMM 계약이다. 이런 자체 운영 시스템은 체인 아래의 데이터에 의존하지 않고 안정적으로 운행할 수 있지만 MakerDAO 등 대출 시스템과 같이 예언기의 가격 데이터에 고도로 의존하고 체인 아래의 가격 지원을 잃은 후에 계속 운행할 수 없다.

3. 가격 변동

블록체인이 갈라져서 하나의 응용 프로그램이 두 개의 체인에서 동시에 실행되고 사용자는 어떤 체인의 응용을 사용해야 합니까?어느 것이'정통'이라고 할 수 있습니까?이 문제는 다시 공통된 인식으로 돌아갔다. 통상적으로 어느 블록체인이 정통적인 공통된 인식을 가지면 그 위의 자산은 원래의 가치 공통된 인식을 보존하고 다른 블록체인의 자산은 순간적으로 가치를 잃게 된다.

이런 가격상의 격렬한 변화는 DeFi 응용이 철저히 붕괴되고 대출 응용은 영원히 창고를 정리할 수 없다. 일부 유식한 사람들은 갈라진 시간 창구를 잡아'제로'의 자산을 AMM 등 응용을 통해 메인 체인 화폐로 바꾸어 일부 가치를 보존한다. ETHW 갈라진 사건에서 우리는 대량의 갈라진 체인에서의 이윤 매매 행위를 관찰했다.

총결산

이로써 우리는 네트워크 층, 공감대 층과 응용 층에서 블록체인 갈라짐의 안전성을 분석한 결과 그 안에 존재하는 기술적 위험을 볼 수 있고 갈라짐에 대해 우리는 매우 신중하게 대해야 한다.그리고 적지 않은 지렛대의 배후에는 기술 변혁의 수요가 있을 뿐만 아니라 상업상의 직접적인 이익도 존재할 수 있다. 예를 들어 발기자가 지렛대에서 대량의 지렛대를 직접 얻는 것은 모두 사용자가 정확하게 인식하고 불필요한 손실을 피해야 한다.

블록체인은 탈중심화된 시스템으로 그 업그레이드는 단일한 개인이나 조직에 의존하지 않기 때문에 블록체인에서 분리되는 것을 피하기 어렵다. 비록 지역사회 사용자에게 혼란을 가져오지만 시스템이 앞으로 발전하여 사회에 더욱 잘 봉사하도록 추진했다.