ShareText
임해찬
구독자 0명
블록체인 검증은 믿을만할까?
이 글에서는 이전 글에서 예고했듯이 검증 과정이 정말 믿을만한 지에 대해 다룬다. 비트코인은 작업 증명 방식을 사용한다. 여기서 작업이란 블록을 만들기 위해서 필요한 연산을 의미한다. 블록을 만들기 위해서는 특정한 조건에 맞는 해시값을 찾아야 하는데(=해시퍼즐), 찾는 시간이 약 10분 정도 걸리도록 난이도가 조절된다. 따라서 유효한 블록을 만드는 것 자체가 굉장히 어렵기 때문에 가짜 체인을 만드는 것이 사실상 불가능해지는 것이다. 만약 어느 두 컴퓨터가 거의 동시에 해시퍼즐을 풀었다고 해보자. 해시퍼즐을 푼 두 컴퓨터가 각각 A, B 라는 블록을 만들고, 이를 주변 노드(=컴퓨터)에게 전달한다. 그러면 노드들은 먼저 받은 블록을 저장하기 때문에, 네트워크에는 일시적으로 두 체인이 존재하게 된다(A 로 끝나는 체인과 B 로 끝나는 체인). 그러다가 시간이 지나면서 두 체인의 길이가 달라지면 노드들은 더 긴 체인을 채택하기 때문에, 다른 한쪽의 체인은 버려진다. 따라서 두 컴퓨터가 거의 동시에 해시퍼즐을 푼 경우에도, 더 많은 노드에 의해 빠르게 저장된 블록만이 살아남는다. 그래서 비트코인을 채굴하더라도, 한참 뒤에 해당 블록이 버려지지 않았다는 것이 사실상 확실해지는 시점(약 100블록 후)에야 보상을 사용할 수 있다. 이더리움은 지분 증명 방식을 사용한다. 이 방식은 자신이 보유한 지분을 담보로 맡긴 사람에게 검증자 자격을 부여하는 방식이다. 무작위로 선택된 검증자가 블럭을 생성하면 다른 검증자가 생성된 블럭이 유효한지 확인하고 서명한다. 그리고 전체 검증자의 2/3 이상의 서명을 받은 블럭은 유효한 블럭으로 확정된다. 이 수치는 에서 유래된 값으로, 악의적인 사용자가 1/3 이상을 넘지 않을 것이라는 전제에 근거한다. 정말로 악의적인 사용자(블럭의 유효 여부를 조작하는 사용자)가 1/3 이상을 넘을 수 없을까? 2025년 기준 이더리움의 검증자가 100만명을 넘으므로, 어림잡아 30만명 이상의 검증자가 담합해야 한다. 금액으로 따지면 검증자의 최소 지분은 32ETH(한화 약 1.5억원)이므로 수십조원에 달하는 금액이다. 이에 비추어 생각해볼때 악의적인 검증자가 전체의 1/3을 넘기는 현실적으로 어려워 보인다. 다음 글에서는 비트코인, 이더리움 등 여러 블록체인 간에 어떤 차이점이 있는지, 왜 서로 다른 블록체인들이 탄생하게 되었는지를 알아보겠다.
이 글에서는 이전 글에서 예고했듯이 검증 과정이 정말 믿을만한 지에 대해 다룬다. 비트코인은 작업 증명 방식을 사용한다. 여기서 작업이란 블록을 만들기 위해서 필요한 연산을 의미한다. 블록을 만들기 위해서는 특정한 조건에 맞는 해시값을 찾아야 하는데(=해시퍼즐), 찾는 시간이 약 10분 정도 걸리도록 난이도가 조절된다. 따라서 유효한 블록을 만드는 것 자체가 굉장히 어렵기 때문에 가짜 체인을 만드는 것이 사실상 불가능해지는 것이다. 만약 어느 두 컴퓨터가 거의 동시에 해시퍼즐을 풀었다고 해보자. 해시퍼즐을 푼 두 컴퓨터가 각각 A, B 라는 블록을 만들고, 이를 주변 노드(=컴퓨터)에게 전달한다. 그러면 노드들은 먼저 받은 블록을 저장하기 때문에, 네트워크에는 일시적으로 두 체인이 존재하게 된다(A 로 끝나는 체인과 B 로 끝나는 체인). 그러다가 시간이 지나면서 두 체인의 길이가 달라지면 노드들은 더 긴 체인을 채택하기 때문에, 다른 한쪽의 체인은 버려진다. 따라서 두 컴퓨터가 거의 동시에 해시퍼즐을 푼 경우에도, 더 많은 노드에 의해 빠르게 저장된 블록만이 살아남는다. 그래서 비트코인을 채굴하더라도, 한참 뒤에 해당 블록이 버려지지 않았다는 것이 사실상 확실해지는 시점(약 100블록 후)에야 보상을 사용할 수 있다. 이더리움은 지분 증명 방식을 사용한다. 이 방식은 자신이 보유한 지분을 담보로 맡긴 사람에게 검증자 자격을 부여하는 방식이다. 무작위로 선택된 검증자가 블럭을 생성하면 다른 검증자가 생성된 블럭이 유효한지 확인하고 서명한다. 그리고 전체 검증자의 2/3 이상의 서명을 받은 블럭은 유효한 블럭으로 확정된다. 이 수치는 에서 유래된 값으로, 악의적인 사용자가 1/3 이상을 넘지 않을 것이라는 전제에 근거한다. 정말로 악의적인 사용자(블럭의 유효 여부를 조작하는 사용자)가 1/3 이상을 넘을 수 없을까? 2025년 기준 이더리움의 검증자가 100만명을 넘으므로, 어림잡아 30만명 이상의 검증자가 담합해야 한다. 금액으로 따지면 검증자의 최소 지분은 32ETH(한화 약 1.5억원)이므로 수십조원에 달하는 금액이다. 이에 비추어 생각해볼때 악의적인 검증자가 전체의 1/3을 넘기는 현실적으로 어려워 보인다. 다음 글에서는 비트코인, 이더리움 등 여러 블록체인 간에 어떤 차이점이 있는지, 왜 서로 다른 블록체인들이 탄생하게 되었는지를 알아보겠다.
작업증명
지분증명
임해찬
2025년 12월 29일
조회 4
블록체인이 뭐야?
이 글에서는 블록체인의 거래 과정을 간단히 다룬다. 여러 블록체인의 전반적인 흐름은 같지만 검증 과정은 이더리움의 지분 증명을 기준으로 썼다. 검증자의 신뢰 문제는 글에 포함하지 않았으니, 일단은 검증자는 믿을만한 사람이라고 전제하고 넘어가보자. 우리가 은행에서 송금을 하는 것처럼, 누군가가 상태 변경을 요청한다(==). 그러면 이 요청이 네트워크를 타고 뿌려진다. 노드(=컴퓨터)에서 노드로. 노드는 요청의 대기열이 가지고 있기 때문에 전달받은 요청을 저장해뒀다가 다시 주변에 뿌린다. 노드 중에서 일부는 검증자이다. 검증자는 크게 두 역할을 하는데, 그중 하나는 블록을 만드는 역할이다. 이란 A4용지 한장처럼 정보를 묶은 단위이다. 아무 검증자나 블록을 만들 수 있는건 아니고, 매번 알고리즘을 통해 검증자가 지정된다. 그러면 검증자가 요청의 내용을 바탕으로 블록을 만들고, 주변 노드에게 뿌린다. 블럭을 만들때는 해시라는 과정을 거친다. 해시는 한쪽 방향으로만 가능한 변환이다. 즉, 결과값에서 원래 값을 역산할 수 없다. 원래 값을 알 수 없어도 문제는 없다. 왜냐면 어떤 값을 해시했을때의 결과가 기록된 값(=이전에 해시된 값)과 같다면 원래 값과 같다고 판정할 수 있기 때문이다. 그렇게 만들어진 블록은 네트워크를 타고 뿌려진다. 또다시 노드에서 노드로. 그리고 블록을 받은 검증자는 블럭을 뿌린다. 그리고 블록이 정상적이라면 본인의 서명도 뿌린다. 이것이 검증자의 둘째 역할이다. 노드가 서명을 받으면 어떤 블럭에 대한 서명인지를 파악하여 블럭에 붙여준다. 이렇게 쌓인 서명이 전체 검증자 수의 2/3를 넘으면 그때부터는 블럭을 확정한다. 이렇게 블럭을 받을 때마다 확정된 블럭이 사슬처럼 연결된다. 이것이 이다. 누군가 체인에 사이에 있는 블록을 조작하는 것은 현실적으로 어렵다. 이것은 해시와 관련이 있다. 해시를 할때 요청 받은 내용과 이전 블럭의 해시값을 사용한다. 즉, 만약에 누군가 특정 블록의 내용을 바꾼다면 그 블록의 해시값도 바꿔야 한다. 그러면 그 다음 블록의 해시값도 바뀌어야 한다. 왜냐면 다음 블록의 해시값도 이전 블록의 내용을 기반으로 만들어진 것이기 때문이다. 이런 식으로 조작한 블록 뒤에 있는 모든 블록의 해시값을 바꿔야 한다. 이 때문에 체인 중간에 있는 블록을 조작하기란 사실상 불가능하다. 다음 글에서는 검증자가 정말 믿어도 되는 사람들인지, 그리고 이더리움의 지분증명과 비트코인의 작업증명이 어떻게 다른지에 대해 알아보겠다.
이 글에서는 블록체인의 거래 과정을 간단히 다룬다. 여러 블록체인의 전반적인 흐름은 같지만 검증 과정은 이더리움의 지분 증명을 기준으로 썼다. 검증자의 신뢰 문제는 글에 포함하지 않았으니, 일단은 검증자는 믿을만한 사람이라고 전제하고 넘어가보자. 우리가 은행에서 송금을 하는 것처럼, 누군가가 상태 변경을 요청한다(==). 그러면 이 요청이 네트워크를 타고 뿌려진다. 노드(=컴퓨터)에서 노드로. 노드는 요청의 대기열이 가지고 있기 때문에 전달받은 요청을 저장해뒀다가 다시 주변에 뿌린다. 노드 중에서 일부는 검증자이다. 검증자는 크게 두 역할을 하는데, 그중 하나는 블록을 만드는 역할이다. 이란 A4용지 한장처럼 정보를 묶은 단위이다. 아무 검증자나 블록을 만들 수 있는건 아니고, 매번 알고리즘을 통해 검증자가 지정된다. 그러면 검증자가 요청의 내용을 바탕으로 블록을 만들고, 주변 노드에게 뿌린다. 블럭을 만들때는 해시라는 과정을 거친다. 해시는 한쪽 방향으로만 가능한 변환이다. 즉, 결과값에서 원래 값을 역산할 수 없다. 원래 값을 알 수 없어도 문제는 없다. 왜냐면 어떤 값을 해시했을때의 결과가 기록된 값(=이전에 해시된 값)과 같다면 원래 값과 같다고 판정할 수 있기 때문이다. 그렇게 만들어진 블록은 네트워크를 타고 뿌려진다. 또다시 노드에서 노드로. 그리고 블록을 받은 검증자는 블럭을 뿌린다. 그리고 블록이 정상적이라면 본인의 서명도 뿌린다. 이것이 검증자의 둘째 역할이다. 노드가 서명을 받으면 어떤 블럭에 대한 서명인지를 파악하여 블럭에 붙여준다. 이렇게 쌓인 서명이 전체 검증자 수의 2/3를 넘으면 그때부터는 블럭을 확정한다. 이렇게 블럭을 받을 때마다 확정된 블럭이 사슬처럼 연결된다. 이것이 이다. 누군가 체인에 사이에 있는 블록을 조작하는 것은 현실적으로 어렵다. 이것은 해시와 관련이 있다. 해시를 할때 요청 받은 내용과 이전 블럭의 해시값을 사용한다. 즉, 만약에 누군가 특정 블록의 내용을 바꾼다면 그 블록의 해시값도 바꿔야 한다. 그러면 그 다음 블록의 해시값도 바뀌어야 한다. 왜냐면 다음 블록의 해시값도 이전 블록의 내용을 기반으로 만들어진 것이기 때문이다. 이런 식으로 조작한 블록 뒤에 있는 모든 블록의 해시값을 바꿔야 한다. 이 때문에 체인 중간에 있는 블록을 조작하기란 사실상 불가능하다. 다음 글에서는 검증자가 정말 믿어도 되는 사람들인지, 그리고 이더리움의 지분증명과 비트코인의 작업증명이 어떻게 다른지에 대해 알아보겠다.
임해찬
2025년 12월 28일
조회 3