블록체인 롤백은 어떤 원리로 가능한가요?
비탈릭 부테린 이더리움 창시자가 트위터에 인기 스마트 컨트랙트 월렛이 해킹을 당했다고 가정해보자. 도난 당한 자금은 롤백으로 복구할 수 있는데, 이를 위해 당신은 ETH를 얼마나 예치해야 한다고 생각하는가?라는 글을 올렸습니다.
부테린은 암호화폐의 롤백이 가능하다고 하는데 어떤 원리로 가능한건가요?
롤백은 해당솔루션 알고리즘을통해 자동으로 처리됩니다. 트랜잭션은 데이타의 전송 상호 작용을 처리하는데 성공인지실폐인지에 따라 작용하는 범위가 다릅니다,
트랜잭션 거래가 성사될때 노드들은 여러가지를 살피고 이상유무가 없다면 연산을 실시하고 성공하면 성공에 대한 작업증명을 통해 블록에 저장하는 수순의 작업을 실행합니다. 그과정을 설명한다면.
트랜잭션 초기 동작상태로 거래원장의 계좌,잔고,시스템,하드웨어,알고리즘등 모든
정보를 검증합니다.
서로의 검증을 통해 입금 송금하는 연산작업을 실행합니다.
서로의 장부거래에 문제점이 없다면 연산작업의 검증을 실시하고 블록에 저장합니다.
이때 시스템이나 하드웨어 트랜잭션 내부오류등 장해가 발생한다면 연산작업을
실폐함을 인지하고 원래의 상태대로 롤백시킵니다.
이처럼 트랜잭션 작업시 성공하면 저장하고 실폐하면 롤백하는 기능이있습니다.
전송시 필요한 가스 및 수수료등 모든것이 롤백됩니다.
이더리움은 이런식으로 초당 20건이상의 거래트랜잭션을 수행합니다.
현재 임의 코인은 초당 5000-100000건의 거래를 성사시키는 코인도 있습니다.
질문자께서는 제대로 이해하셨지만, 애초에 기사의 내용이 잘못 번역된 것으로 생각됩니다. 왜냐하면 실제로 비탈릭 부테린의 트위터에 가서 원문을 확인해 보면, https://twitter.com/VitalikButerin/status/1187854232398917632 '롤백'이라는 단어는 전혀 찾아볼 수 없기 때문입니다.
"Suppose a popular smart contract wallet that a large portion of the ETH community uses gets hacked. This could be reverted by reverting all chain activity since the hack and doing a DAO-style HF to recover the funds. How much ETH must be at stake for you to support this?" 라고 되어 있습니다.
이것을 번역하면 "ETH 커뮤니티의 큰 부분을 차지하는 대중적인 스마트 컨트랙트 지갑이 해킹당했다고 가정해보자. 이것은 해킹 이후의 모든 체인 활동을 되돌리고, 자금 회수를 위해 DAO-style HF(DAO 스타일의 하드포크)를 실시함으로써 되돌릴 수 있다. 이러한 일을 지원하기 위해 얼마 만큼의 ETH를 예치해야 하는가?"가 됩니다.
이때 중요한 것은 DAO-style HF(DAO 스타일의 하드포크)라는 말입니다. 이 다오 스타일의 하드포크란 과거 더 다오 해킹으로 인해 하드포크를 해야 하는가 하는 문제에서 의견이 대립되었을 때, 의사 결정을 위해 Geth 클라이언트 상에서 찬/반 투표를 통해 이루어진 하드포크 방식을 의미합니다.
그러므로 다시 비탈릭 부테린의 말을 살펴보면, "만약에 사람들이 많이 사용하는 스마트 컨트랙트 지갑이 있고, 그것이 해킹을 당한 경우 하드포크를 통해 그것을 해킹 전으로 되돌릴 수 있다. 그런데 이러한 하드포크를 할지에 대한 의사 결정을 위해 투표가 필요하다. 만약에 이더리움을 특정한 스마트 계약에 예치해야 하고, 예치된 이더리움의 개수를 기준으로 하드포크의 찬/반 결과가 결정된다면 얼마 만큼의 이더리움을 예치되어야 하는가"를 물어본 것이 아닌가 생각합니다.
그리고 비탈릭 부테린의 설문 결과 63%가 해킹을 당하더라도 이를 되돌리기 위한 개입이 없어야 한다는 의견을 나타냈다고 할 수 있습니다.
끝으로 다오 스타일의 하드포크를 하기로 결정된 이후 거래 내역을 되돌리는 방법은, 하드포크 관련 코드가 적용된 새 버전의 클라이언트 소프트웨어를 통해 이더리움 블록체인 네트워크에 접속하여 DAO에 예치된 모든 이더리움 코인을 환불하는 출금(withdraw) 용도의 스마트 계약을 실행함으로써 가능해집니다.
즉, DAO 토큰 보유자가 100 DAO를 단위로 DAO 출금용 스마트 컨트랙트를 통해 전송할 때마다 그 가치에 상응하는 이더리움이 출금되도록 함으로써 원래대로 거래 내역을 되돌릴 수 있고 이러한 방식이 DAO-style HF(DAO 스타일의 하드포크)가 된다고 할 수 있겠습니다.
*본 답변에는 저의 개인적인 생각이 포함되어 있으며 제가 이해하고 있는 바대로 답변을 드렸기 때문에 혹시나 잘못된 내용이 있을 수도 있다는 점을 말씀드립니다. 그렇기 때문에 답변을 단순 참고 용도로 활용해 주시면 좋겠습니다.
답변이 도움이 되길 바랍니다.
안녕하세요. 블록체인 네트워크 상의 롤백은 리오그를 통해 가능합니다. 리오그 (Reorgs)란 최근에 생성된 몇개의 연속된 블록들이 버려지는 현상을 의미합니다.
위의 그림에서 초록색 블록이 연속되어다가 끝에 빨간색 블록과 초록색 블록으로 나뉘어 집니다. 빨간색 블록은 2개까지 생기다가 초록색 블록이 하나 더 생기면서 더 많은 작업증명이 발생되고 초록색 블록의 진행방향이 정상적으로 판단되어 최근 2개가 생성된 빨간색 블록들은 사라지게 됩니다. 이것이 리오그 현상입니다. 빨간색 블록이 컨펌을 몇개 받았다고 하더라도 삭제가 되는 것이죠.
리오그가 나는 경우는 종종 있는데 네트워크 연결속도로 인해 의도치 않은 고아블록이 발생될 경우 리오그 현상이 발생되기도 합니다. 그리고 공격자가 해쉬파워를 빌려서 준비해둔 블록을 집어넣어 리오그를 발생시키는 경우도 있습니다.
과거에 비트코인 해킹으로 인해 바이낸스가 해쉬파워를 빌려 준비해둔 블록을 집어넣어 리오그를 할 수 있다고 언급한 적이 있었습니다. 리오그를 통해 해커가 탈취한 비트코인을 무의미하게 할 수 있다고 했었죠. 만약 바이낸스가 리오그를 했었더라면 비트코인 네트워크에 치명적인 신뢰를 깨는 방식을 사용한 것이기 때문에 비트코인 네트워크에서는 큰 신뢰도의 타격을 입었을 겁니다. 따라서 리오그를 진행하지 않았고 잘된 일이라고 생각합니다.