블록체인 구조
네트워크 구성
블록체인은 개인간 거래(P2P) 네트워크에서 실행되는 시스템이다. P2P에 참여하는 컴퓨터(노드)는 동일한 블록체인
소프트웨어가 실행되고 동일한 블록체인 데이터를 보유한다.
이로써 일부 노드가 갑자기 중단되는 경우에도 데이터의 손실 및 시스템 다운을 방지한다.
데이터를 쓰는 규칙
블록체인의 P2P 네트워크 규칙에 따라 생성된 데이터를 기록한다.
이것을 '거래'라고 하는데 비트코인의 경우
1.보낸사람 주소
2.받는사람 주소
3.송금액
4.수수료
5.이전 트랜잭션의 고유한 값(해시 값)
주소는 '공개키 암호 방식'으로 관리되는 전자서명이며, 트랜잭션은 보낸 사람의 공개키로 검증할 수 있다.
또한 각 트랜잭션은 이전 트랜잭션의 해시 값을 항상 포함한다. 그래서 사실상 위변조가 불가능하다.
합의 알고리즘
블록체인에서 모든 트랜잭션을 "올바른 인증"을 결정하는 '합의 알고리즘'이 요구된다. 일반적인 시스템에서는 중앙 관리자가 제어하는 컴퓨터가 각 트랜잭션의 정확성을 검증하고 적용하지만 블록체인의 합의 알고리즘은 참여하는 각 노드가 검증 작업을 한다.
비트코인은 '프루프 오브 워크(PoW)'라는 합의 알고리즘을 도입했다. 앞서 설명한 대로 블록의 모든 내용은 모든 참여자에게 전달된다.
PoW에 참여하는 노드들은 비트코인을 얻기위해 채굴(블록 생성)에 나선다. 그런데 노드 A가 하나의 비트코인을 노드 B와 C에게 동시에 거래한다고 보냈다. 둘 중의 하나가 중복으로 사용된 비트코인이다.
채굴이 곧 올바른 인증이므로 노드들은 A→B, A→C 거래에 각각 달라붙어 채굴에 나선다.
채굴은 대략 10분마다 이뤄진다.
만약 A→C 거래를 상대로 채굴에 나선 노드들이 문제를 먼저 풀어 다음 블록이 생성되면 즉 체인이 연결되면 A→B 거래보다 블록체인이 길어지게 된다.
이때 경쟁에서 진 블록체인에서 다뤄진 A→B 거래는 비정상 거래로 간주해 자동 폐기한다.
먼저 거래된 블록을 정당한 것으로 인정하는 것이 PoW의 합의 규칙이다.
비트코인 채굴에 성공한 노드는 12,5BTC (비트코인 거래 단위)와 블록에 가져온 트랜잭션이 지불한 모든 수수료가 주어진다.
이것이 경제적인 동기부여로 연결돼 많은 사람들이 컴퓨터를 가동시켜 채굴해왔고 채굴 중이며 비트코인 네트워크가 유지되고 있다.
비트코인은 도쿄올림픽이 열리는 2020년 채굴보수가 절반이 되는 반감기(4년마다 돌아옴)를 맞이하고, 비트코인 공급량은 2100만개로 유한하다.