본문 바로가기

블록체인 기초

(11)
해시 트리: 머클 트리(Merkle tree) 머클 트리(Merkle tree), 머클 루트(Merkle root) 머클 트리와 머클 루트는 데이터가 위변조 되었는지 효율적으로 확인하기 위한 용도로 사용하고 있다. - Merkle tree 머클 트리(Merkle tree) 발명자인 랄프 머클(Ralph Merkle)의 이름에서 따온 단어로, 해시 트리(Hash tree)라 부르기도 한다. 머클 트리는 여러 블록으로 나뉘어 있는 데이터를 전송할 때 데이터가 변조되지 않았음을 보증하는 용도로 쓰인다. 특히 P2P 네트워크에서 전송받은 데이터에 오류가 있거나 외부로부터 조작이 있었는지 검증하는 용도로 사용한다. 머클 트리는 랄프 머클이 여러 램포트 서명(디지털 서명 알고리즘)을 효율적으로 다루기 위해 개발했다. 램포트 서명은 보안에 대해서는 어느 정도 검..
해시함수, SHA-256, 해시레이트(hashrate) 해시함수(Hash function) 어떤 내용을 넣더라도 항상 같은 길이의 결과를 내놓는 함수이다. 해시 함수를 적용해 나온 고정된 길이의 값을 해시 값이라 한다. 해시 코드, 해시섬, 체크섬 등으로도 불리기도 한다. 해시 함수는 특정 데이터에 대해 언제나 동일한 해시 값을 내놓는다. 그러므로 두 해시 값이 다르면 원래의 데이터도 다르다. 또한 원래 입력 값에서 1bit만 바꿔도 해시 값은 크게 달라진다. 이러한 성질 때문에 해시는 정보의 위변조를 확인하기 위한 용도로 쓰인다. - wikipedia 한편 해시 함수는 단사 함수(일대일 함수)가 아니다. 같은 해시 값을 갖고 있다면 원래의 입력 값이 서로 같을 가능성은 있으나, 꼭 그렇다고 보장할 수는 없다. 단사 함수(일대일 함수) : 정의역의 특정한 원..
지분위임증명(DPoS: Delegated-Proof-of-Stake) 지분위임증명(DPoS: Delegated-Proof-of-Stake) 지분위임증명(DPoS)은 대표 노드에게 데이터를 검증하는 역할을 위임하는 방식이다. 대표 노드는 투표권을 가진 각 참여자들의 투표를 통해 선출된다. 직접 민주주의와 간접 민주주의를 혼용하여 사업적 효율성을 택하였다. 윤리 문제처럼 소수에게 권한이 집중되어 생기는 이슈에 대해서는 다른 검증인들이 대표 노드를 감시할 수 있는 장치를 마련함으로써 보완하고 있다. 다만 한번 증인을 하면 그 사람이 계속 증인을 할 가능성이 높다는 한계가 있다. 지분증명(POS)도 초당 수십 만 건을 처리하기는 어렵기 때문에 영향력 있는 20-21명에게 위임하여 그들이 결정하도록 하자는 취지에서 나오게 되었다. 가장 급진적인 형태의 합의 알고리즘 방식이다. - ..
지분증명(PoS: Proof-of-Stake) 지분증명(PoS: Proof-of-Stake) 지분증명(PoS)은 컴퓨터의 연산능력에 기대지 않고, 신규 코인을 발행할 때 노드가 가진 지분만큼 지급하는 합의 방식이다. 작업증명이 노드들이 경쟁하는 방식이라면, 지분증명은 신규 블록을 생성하여 보상을 얻는 자격이 각 노드의 지분에 따라 확률로 정해지게 된다. 따라서 채굴 과정이 필요 없다. 네트워크 참여자의 영향력 결정 요인 작업증명(PoW) : 성능 좋은 채굴기를 얼마나 많이 갖고 있느냐 지분증명(PoS) : 얼마나 많은 지분(코인)을 보유하고 있느냐 지분증명에도 여러 합의 방식이 있다. 일정 주기마다 검증인을 지정하는 랜덤 변수를 돌리는Chain-based PoS, 알고리즘에 의해 블록을 생성할 권한을 얻은 검증인이 새 블록을 제안하고 투표로 마무리하..
비트코인 작업증명 (POW: Proof-of-Work) 비트코인 작업증명 (POW: Proof-of-Work) 작업증명(POW)은 새로 생성된 블록을 블록체인에 추가하는 작업을 완료했음을 증명하는 것이다. P2P 네트워크를 사용하는 암호화폐는 해시 함수를 계산해서 블록체인에 새로운 블록을 추가하는 방식으로 화폐를 만들거나 송금을 한다. 작업증명은 이때 사용하는 방법이다. 데이터 무결성이 증명되어 비트코인을 비롯한 수많은 암호화폐에서 이 방식을 사용하고 있다. 비트코인(Bitcoin)은 SHA-256을 기반으로 하는 해시캐시(Hashcash) 방식을 사용하고 있다. 새로운 블록을 블록체인에 추가하기 위해서는 새로 생성된 블록의 블록 해시를 계산해야 한다. 이 블록 해시를 계산할 때 해당 블록의 블록 헤더 정보 중 하나인 논스 값을 계산하여 구해야 하는데, 이 ..
블록체인 합의 알고리즘(Consensus) 블록체인 합의 알고리즘(Consensus) P2P(peer to peer) 네트워크에서 각 노드 간 정보가 도달할 때 시간 차이가 발생하게 되는데, 이때 참여자들이 하나의 결과에 대하여 합의를 얻기 위한 알고리즘이다. 즉, 특정 거래에 대한 연산을 종결하는 것이다. 합의 알고리즘이 중요한 이유는 짧은 시간에도 네트워크 안에서는 수많은 거래가 일어나는데 어느 거래가 진짜이고 가짜인지 검증(종결)을 해야 허위거래나 이중지불 등의 문제를 막을 수 있기 때문이다. 합의 알고리즘이 올바르게 작동하면 데이터 무결성을 보장할 수 있다고 본다. 블록체인 기반 서비스, 기술에서 가장 중요한 것은 합의 알고리즘이다. - AD4th 홍준 대표 비트코인의 PoW는 합의 알고리즘 중에 수학/기술적으로 가장 증명이 잘 되어 있고..
소프트 포크, 하드포크, 세그윗(Segwit) 포크(Fork) 포크는 나뉘어 갈라지는 것이다. 소프트웨어 개발 포크, 프로젝트 포크라고도 한다. 개발자가 오픈소스 소프트웨어의 소스 코드를 통째로 복사해서 이를 바탕으로 새로운 소프트웨어를 만드는 행위를 이른다. 오픈소스 소프트웨어는 소스 코드가 공개되어 있고, 통째로 복사하여 활용하는 것이 허용된다. 따라서 원저작자의 허락 없이도 포크를 통해 새로운 소프트웨어를 개발할 수 있다. 블록체인에서는 특정 시점을 기준으로 나뉘어 갈라진다는 의미로 쓰인다. 소프트 포크(Soft Fork)와 하드 포크(Hard Fork)가 있다. 소프트 포크(Soft Fork) Ver 1.0 → Ver 1.1 소프트 포크는 단순한 오류를 수정하는 수준의 업그레이드다. 기존의 블록체인에 큰 영향을 미치지 않고, 이전 버전의 블록..
블록체인 노드(node), 풀노드, 라이트노드 블록체인 노드(node) 노드는 같은 LAN을 쓰는 컴퓨터와 주변기기들을 통틀어 이르는 말로, 블록체인에서는 검증인을 뜻한다. 검증인은 거래 데이터를 보관하고, 신규 거래를 승인·합의하는 역할을 한다. 퍼블릭 블록체인은 누구나 검증인이 되어 네트워크 유지 및 관리에 참여할 수 있다. 블록체인 네트워크는 노드로 이루어져 있다. 노드는 데이터 변화를 중개하고, 거래 내역을 분산 데이터베이스인 블록체인 내 각각의 컴퓨터에 저장한다. 전 세계 곳곳에 저장되어 있기 때문에 몇몇 노드가 해킹을 당해 기존 합의 내용이 달라진다 하더라도 나머지 다수에게 원래 데이터가 남아 있어 기존의 합의 내용을 유지할 수 있다. 풀노드(Full node) 풀노드는 블록체인에서 이뤄진 모든 거래 정보를 전부 저장하는 검증인을 뜻한다...
비트코인 제네시스 블록(Genesis block) 블록(block) 블록은 데이터를 저장하는 단위이다. 일정 기간 동안 쌓인 거래 데이터의 변화를 여러 블록에 분산하여 담게 된다. 블록체인 네트워크마다 블록 안에 담는 거래 데이터나 양은 조금씩 다르다. 블록에는 거래 데이터를 비롯해 타임스탬프와 이전 블록의 해시값이 표시되어 있다. 타임스탬프는 블록이 생성된 시간을 명시함으로써 다른 내역과 겹치지 않도록 한다. 이전 블록의 해시값은 블록과 블록은 체인처럼 연결되어 있는데 연결되어 있는 블록들이 서로 같은 해시값을 갖도록 함으로써 위변조를 막고 있다. 새로 생성되는 블록은 채굴자들의 작업증명(PoS) 과정을 거쳐 블록체인에 추가된다. 비트코인의 경우, 10분마다 새로운 블록을 생성하여 블록체인에 연결하고 있다. 속도가 느리다는 단점이 있어 블록을 크게 만..
암호화폐, 암호화폐 거래소, 탈중앙화 거래소(DEX) 암호화폐(cryptocurrency) 암호화폐는 암호학(cryptography)과 화폐(currency)를 결합한 단어로, 디지털 화폐의 일종이다. 기존의 디지털 화폐와 가장 큰 차이는 암호화가 되어 있다는 점이다. 암호화폐 기술은 암호학과 분산 원장 기술(Distributed ledger technology)을 바탕으로 하는데, 공개된 알고리즘으로 규정한 방식에 따라 발행한다. 따라서 특정한 발행 주체가 아니라 정해진 알고리즘에 의해 발행된다는 특징이 있다. 암호화폐는 해시 함수를 사용해 새로운 코인을 생성하고, 거래 내역을 검증하는 식으로 운영된다. 거래 내역을 검증하는 방식에 따라 작업증명(Pow: Proof of Work), 지분증명(PoS: Proof of Shake) 등으로 나뉜다. 최초의 암..