본문 바로가기

알기쉬운 블록체인

전자서명 (Digital signature) 지난 시간 트랜잭션을 알아보았다. 트랜잭션에는 원본데이터와 전자서명이 포함돼 있으며블록체인상에서 각 노드로 전파된 해당 트랜잭션이 진짜인지 유효성을 검증하려면 디지털서명(Digital signature) 즉, 전자서명이 필요하다고 언급했다. 그래서 비트코인을 거래한다면 원본 데이터와 전자 서명된 데이터를 함께 보내 해당 트랜잭션 데이터 내용이 수정되었거나 올바른 메시지인지 '검증' 하게 된다. 이 때 전자서명은 공개키 암호화 알고리즘을 이용하여 전자서명 한다. 암호화 알고리즘은 비대칭 암호화 방식이다. '개인 키'로 암호화 데이터는 오직 '공개 키'로만 해석할 수 있는데 이 방식은 '공개 키'를 가진 사용자라면 그 누구라도 암호화된 데이터 내역을 복호화 할 수 있지만 이러한 암호화 데이터는 오직 '개인 .. 더보기
트랜잭션 (Transaction) 오늘은 트랜잭션을 알아본다. 트랜잭션 (transaction)은 거래라는 뜻이다. 암호화폐상에서는 코인을 송금하는 거래 과정 및 그 과정에 전송되는 서명된 정보를 말한다. 비트코인 거래를 예를 들어본다. 비트코인을 거래하려면 거래 정보를 작성해야 한다. A가 B에게 1.0 BTC를 보내려면 메시지를 작성한다. 이렇게 작성된 메시지를 트랜잭션 (Transaction)이라 표현한다. 해당 트랜잭션은 비트코인 네트워크에 연결된 노드 (지갑)들에게 전파된다. 트랜잭션을 수신받은 각 노드는 거래 내역을 업데이트하고 다른 노드들에게 해당 트랜잭션을 전파하게 된다. 코인을 송금 과정에서 전송되는 서명된 정보를 문자열로 변환하게 되는데, 이를 트랜잭션 ID라고 부른다. 트랜잭션 ID = Transaction ID = .. 더보기
블록체인 타임스탬프 (Time Stamp) 타임스탬프란, 일반적으로 날짜와 시간이 적힌 문자열을 의미한다. 예를 들어 버스 예매표를 보자. 표에는 언제 몇 시 몇 분 탑승을 위한 계약 내용이 날짜와 함께 저장된다. 이 역시 타임스탬프의 한 종류다. 타임스탬프의 역할은 어떤 이슈가 일어난 날짜와 시간을 기록하여 사실에 대한 전후관계를 보장하는 것이다. 나카모토 사토시의 논문에는 블록체인이라는 용어를 사용하지 않고 그에 해당되는 개념을 ‘타임스탬프 서버’ (Timestamp Server)라는 부분에 설명했다. 사토시는 비트코인 백서를 통해 이렇게 언급한 바 있다. “이 논문에서 P2P 타임스탬프 서버를 이용하여 거래의 시간 순서를 전산을 통해 이중지불을 해결할 수 있는 방안을 제시하고자 한다.” “우리가 제시하는 해결책은 타임스탬프 서버에서 시작된다.. 더보기
비트코인 세그윗 SegWit 원래 비트코인이 등장했을 때 블록은 10분에 한 번씩 생성되도록 설정되었다. 블록 크기는 1MB로 제한되었다. 하지만 거래가 폭발적으로 증가하면서 데이터 용량이 부족해졌다. 비트코인의 확장성과 거래속도를 높이기 위한 기술이 필요해진 것이다. 세그윗은 비트코인의 인기가 높아지면서 거래 처리 용량을 늘리기 위해 개발자들이 2017년 8월 시장에 처음 선보인 소프트웨어 업데이트 기능이다. 지난 시간 우리는 비트코인 소프트 포크 (Soft Fork)를 알아 보면서 세그윗 개념도 간단히 살펴보았다. 이는 비트코인 소프트웨어 업그레이드를 하지 않아도 세그윗 이전 버전과 세그윗 적용 버전을 모든 노드가 사용할 수 있다는 뜻이다. 세그윗 (SegWit)은 비트코인 소프트포크 방식의 업그레이드 방법 중 하나임을 기억하면.. 더보기
비트코인 소프트 포크 VS 하드 포크 비트코인이 이슈가 되면서 거래량이 늘어났다. 이렇게 되자 문제가 발생했다. 비트코인의 문제는 무엇일까? 작은 블록크기다. 거래량이 늘어나 블록 사이즈가 포화되어 거래 정보를 기입할 공간이 부족해졌기 때문이다. 늘어난 거래량 때문에 시스템 업그레이드가 필요해졌다. 이 작은 블록크기를 두고 의견이 분분했다. 한 편은 블록 사이즈를 늘리자고 주장했다. 그러면 어떻게 될까? 블록 사이즈를 늘리면 더 많은 메모리가 필요하고 채굴자는 운영비용이 높아지게 된다. 결국 소수의 중앙화된 채굴자에 의해서 독점과 담합의 위험이 늘고 장부조작 위험이 생긴다. 한 편은 작은 블록을 주장했다. 분권화와 안정성을 위해서 거시적으로 보자는 입장이다. 결국 비트코인을 쪼개자는 결론에 도달하게 되었고 이를 전문용어로 포크(Fork)라고.. 더보기
블록체인 머클트리 (Merkle Trees) 블록체인 머클트리 (Merkle Trees) 지난 시간에 이어 블록의 구성요소 중 머클트리에 대해 알아본다. 블록은 블록의 정체성을 띄는 데이터를 가진 블록 헤더와 해당 블록에 거래 개수를 알려주는 거래 카운터, 가장 많은 공간을 차지하는 거래 목록들이 있다. 지난 시간 블록은 데이터를 저장하는 단위이며 바디와 헤더로 구분되며 바디에는 거래 내용이, 헤더에는 머클해시(머클루트)나 넌스 등 암호코드가 담겨 있다고 언급했다. 블록헤더는 3가지 구성으로 나눌 수 있다. 첫째는 이전 블록과 현재블록이 연결되어 있음을 나타내는 이전블록 해시값을 포함한다는 부분이다. 둘째는 난이도와 타임스탬프, 넌스 등 암호코드가 있다. 채굴자들이 연산을 통해 블록을 채굴하는 것과 연관 있는 사항들이다. 세번째는 머클루트 (Mer.. 더보기
블록체인 암호해시 이해하기 쉽도록 쉽게 쓴 블록체인 이야기, 비트코인 암호해시를 알아본다. 기술적 관점의 용어인만큼 최대한 가볍게 다루고 넘어가고자 한다. 그 전에 블록체인과 관련된 기본 용어들을 살펴본다. 분산형 데이터 저장기술인 블록체인은 블록에 데이터를 담아 체인형태로 연결해 수많은 컴퓨터에 이를 이를 복제해 저장한다. 그래서 공공거래 장부라고도 부른다. 블록체인을 구성하는 기본 기술은 암호화된 해시다. 이는 문서를 요약해 고유값을 자동생성하는 기술이다. 여기서의 요약은 내용과 무관하게 문서를 요약한 후 고유값을 생성한다. 고유값은 문서가 길던 짧던간에 256바이트이며 한글로 치면 128자 정도의 문자열이다. 즉, 해시함수는 어떤 데이터를 입력해도 같은 길이의 결과를 도출하는 함수를 말한다. 블록은 데이터를 저장하는.. 더보기
블록체인, 탈중앙화 암호화폐 거래소 이더리움(ETH)의 창시자 비탈릭 부테린은 중앙화된 암호화폐 거래소를 두고 일전에 이렇게 일침을 날린 바 있다. 부테린은 “중앙화된 거래소들이 지옥에서 불타기를 바란다.” “어리석은 왕이 힘을 사용하게 만들어서는 안 된다”고 언급한 바 있다. 그는 암호화폐의 탈중앙화 정신에 대한 긍정적 입장을 재차 드러내면서 분산형 거래소가 활성화되어야 한다고 강조했다. 부테린은 왜 중앙화된 거래소를 비판했을까. 지난 시간 글을 통해 개인키와 공공키를 설명하면서 안전한 거래소의 판별기준으로 탈중앙화된 거래소가 안전하다는 점을 설명하기도 했다. 이번에는 중앙화된 거래소 VS 탈 중앙화 거래소에 대해 알아본다. 암호화폐에 대한 높은 관심만큼 거래소도 지속적으로 성장 중이다. 거래소는 어떤 일을 할까? 시중 ‘은행’처럼 사용.. 더보기