티스토리 뷰

경제

블록체인과 해시값

새로운관심 2018. 12. 10. 11:37
블록체인은 모든 트랜잭션을 일어난 순서대로 블록체인-데이터-구조에 저장하여 전체 이력을 유지한다.  

월급을 받아서 생활비도 사용하고, 카드값도 내고 한달간 생활한다.  즉 순서가 월급이 먼저 들어와야 한다.  그렇지 않으면 모든게 꼬이게 된다.  예를 들어 20일이 월급날인데, 현금이 없는 상황에서 15일 경에 생활비가 필요하거나, 신용카드 결제일이 17일에 지정되어 있다면 카드대금이 연체되거나 아니면 마이너스 통장이면 대출이 발생하게 된다.  그래서 급여소득자들은 이렇게 급여일 이후에 사용할 금액이나 처리할 비용을 정산하는게 일반적이다.  

이렇듯이 트랜잭션이 일어난 순서가 중요하다.   이렇게 트랜잭션 데이터의 이력은 소유권을 관리하는 블록체인의 심장이라고 할 수 있다.  이력은 소유권 상태를 재구성하는 가장 기본이 되는 요소이다.  이를 통해서 현재의 소유자를 명확하게 판단할 수 있다.  따라서 전체 시스템의 무결성을 지키려면 이력 데이터를 안전하고 완전하며 정확하고 일관되게 유지할 필요가 있다.  따라서 블록체인은 오직 유효한 트랜잭션 데이터만 블록체인 - 데이터 - 구조에 추가되도록 보장하는 보안수단을 제공해야 한다.  

트랜잭션 데이터가 필요한 모든 정보를 정확한 형식으로 기술되어야 한다.  또한 트랜잭션 데이터의 의미와 의도한 결과와 관련이 있어야 한다.  또한 블록체인의 모든 트랜잭션 데이터는 계좌 소유자가 정말로 소유권 이전에 동의하는지 증명할 수 있는 정보를 반드시 가지고 있어야 한다.

블록체인은 암호화 해시값이라는 개념을 광범위하게 사용한다.  따라서 블록체인을 이해하려면 암호화 해싱을 이해하는 것이 필수적이다.
해시함수는 어떤 형태의 데이터든 입력 데이터의 길이와 상관없이 고정된 길이의 숫자로 변환하는 함수이다.  입력 데이터를 보고 해시값을 예측할 수 없다.  또한 해시값을 이용해서 원래 입력 데이터를 복원할 수 없다. 마치 지문만 따로 보아서는 그 지문을 지닌 사람에 대한 어떤 정보도 얻을 수 없는 것처럼 해시값은 입력 내용에 대한 어떠한 정보도 갖고 있지 않다.  서로 다른 데이터가 동일한 해시값을 가질 확률이 낮으면  그 해시 함수를 충돌회피라 한다.  해시함수는 16진수로 이루어진다.  컴퓨터과학자들은 16진수를 좋아한다고 한다. 

해시참조는 참조 데이터가 만들어진 뒤로 데이터가 변경되지 않았는지 검증도 해준다.  참조한 데이터가 변경된 경우 그 참조값으로는 더 이상 데이터를 추출할 수 없다.  해시참조의 주된 아이디어는 기술적인 오류 혹은 누군가의 고의로 인해 사용자도 모르게 참조 데이터가 변경되었을 때 원본 데이터를 추출하지 못하도록 보호하려는 것이다.  따라서 해시 참조는 한번 생성된 이후 절대 변경되어서는 안 되는 데이터와 관련된 모든 경우에 활용할 수 있다.  해시참조의 핵심은 암호화 해시값을 활용하는 것이다.  암호화 해시값은 데이터의 고유한 지문이라 할 수 있다.  따라서 서로 다른 데이터 조각들이 동일한 해시값을 가지는 일은 거의 일어나지 않는다.  그러므로 해시참조가 깨진 것은 해시 참조가 생성된 이후 데이터가 변경되었다는 증거가 된다. 

비대칭 암호화 기법의 묘책은 암호문을 생성할 때 사용한 키로는 절대 암호를 복호화할 수 없다는 것이다.  블록체인은 소유자와 자산의 매핑을 유지하기 위해 사용자와 사용자 계정을 모두 식별해야 한다.  블록체인은 비대칭 암호화 기법 중 공개에서 개인 접근방식을 사용해서 사용자 계정을 식별하고 사용자 간 소유권을 이전한다.  블록체인인 사용자 계정을 우편함과 비슷하게 취급한다고 볼 수 있다.  즉, 공개된 주소를 통해 누구나 메시지를 전송할 수 있다.  

트랜잭션 데이터는 소유권 양도에 관한 내용에 그 소유권자가 동의했는지를 증명하는 데이터를 항상 포함해야 한다.  이 동의 속에는 소유권을 이전하려는 계정의 소유자에게서 시작해 트랜잭션 데이터를 검사하는 모두에게 도달해야 한다는 정보의 흐름이 내재되어 있다.  이런 정보의 흐름은 비대칭 암호화 기법 중 개인에서 - 공개의 사용법과 유사하다.  서류의 자필 서명과 유사하게 전자 원장에 트랜잭션에 동의한다고 표시하는 개념을 설명한다.  이 개념은 블록체인에서 개별 트랜잭션의 보안을 위해 절대적으로 중요하다. 

블록체인이 해결해야 할 과제는 합법적 소유자로만 이전 권한을 제한하는 동시에 개방성을 유지하는 것이다.  블록체인의 목표는 전체 트랜잭션 이력을 정렬 상태로 유지하는 것이다.  
모든 트랜잭션 데이터를 발생순서를 유지하면서 어떠한 변경이 있을 경우 재빠르게 감지할 수 있도록 저장하는 것이 과제이다.  변경을 재빨리 감지하는 것은 매우 중요하다.  트랜잭션 이력을 조작하거나 위조하는 것을 방지하는 근간이기 때문이다.

순서일람표 페이지와 해당 내용 페이지는 단지 가상의 단위일 뿐이다.  순서일람표 페이지와 내용 페이지는 물리적으로 서로 다른 개체이기 때문이다.  전자는 해시 참조를 통해 후자를 참조함으로써 가상의 한 단위를 형성하게 된다.  이것을 블록이라 부르는데 블록들이 모두 모여 블록체인 - 데이터 - 구조를 형성한다.  

순서일람표의 각 페이지는 블록체인 - 데이터 - 구조 내 단일 블록 헤더와 동일하다.  블록 헤더는 참조를 통해 선형으로 연결되어 블록 헤더의 체인을 형성한다.  순서일람표와 유사하게 블록 헤더의 체인은 트랜잭션 데이터를 직접 저장하지 않고 해당 트랜잭션 데이터에 대한 해시 참조만 저장한다. 

변환된 책의 내용은 블록체인에 의해 유지되는 트랜잭션 데이터와 같다.  사실 이 데이터는 소유권 관리와 관련된 특정 응용분야에만 국한된다.  실제 블록체인 응용에서는 내용 페이지가 없다.  내용 페이지라는 용어는 독자의 이해을 돕기 위해 임의로 만든 것일 뿐이다.  실제 블록 체인 응용은 내용 데이터를 머클 트리라 불리는 데이터베이스에 직접 저장하고, 머클 트리의 루트는 블록 헤더에 저장된다.

변환된 책에서 순서일람표의 페이지를 식별하기 위해 사용하는 페이지 참조값은 블록체인 - 데이터 - 구조 내 개별 블록 헤더의 암호화 해시값과 같다.  이들은 각각 블록 해시 또는 이전 블록의 해시라 불린다.  이 값은 각 블록 헤더를 고유하게 식별하고 이전 블록 헤더를 참조하기 위해 사용된다. 

[위 내용은 다니엘 드레셔의 <블록체인 무엇인가>에 나오는 내용을 기반으로 재정리 함]

'경제' 카테고리의 다른 글

주52시간 = 워라밸??  (0) 2019.02.09
이상한 나라의 세금  (0) 2019.01.25
훔친사과? 아니란거 증명해봐?  (0) 2018.11.20
P2P와 블록체인  (1) 2018.11.16
블랙체인의 실용화  (0) 2018.11.13
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday