블록체인이란 P2P네트워크를 통해서 관리되는 분산 데이터베이스의 한 형태입니다. 거래 정보를 담은 장부(원장)를 중앙 서버에 저장하는 것이 아닌, 블록체인 네트워크에 연결된 컴퓨터들에 저장 및 보관하는 기술입니다.
활용되는 목적 또는 공개 범위에 따라 다양한 방법으로 블록체인 네트워크를 구축할 수 있습니다. 퍼블릭, 프라이빗, 컨소시엄 블록체인에 대해서 알아보자.
개방형 블록체인으로 누구나 트랜잭션을 생성할 수 있는 블록체인입니다. 트랜잭션 내역이 모두 공개되기 때문에, 네트워크에 참여한 모든 노드들은 이를 상호검증하고 거래를 승인합니다. 따라서 신뢰도가 높습니다. 하지만 모든 노드들이 거래를 검증하고 기록을 남기기 때문에, 처리 속도가 느리다는 단점이 있습니다.
폐쇄형 블록체인으로 퍼블릭 블록체인의 상대적 개념입니다. 서비스 제공자의 승인을 받아야만 참여할 수 있으며, 주로 기업에서 활용하여 Enterprise Blockchain이라고도 합니다. 중앙화된 플랫폼이라는 특징이 있습니다.
동일한 목적이나 가치를 가지고 있는 다수의 기업이나 단체들이 하나의 컨소시엄을 구성하여 작동하는 블록체인입니다. 퍼블릭과 프라이빗의 중간 형태의 블록체인으로, 중앙 관리자에 의해 승인 받은 참여자만이 블록 생성에 참여할 수 있는 프라이빗 블록체인과 유사한 개념입니다. 여러 기관이 하나의 컨소시엄을 구성하여 공정성과 확장성을 보완하였습니다. 다수의 참여자의 협의가 필요한 분야에서는 컨소시엄 블록체인이 프라이빗 블록체인보다 효과적입니다.
분산원장은 거래 정보를 기록한 원장을 특정 기관의 중앙화된 서버가 아닌 분산화된 네트워크에서 참여자들이 공동으로 기록 및 관리하는 기술로 분산원장기술로 불리기도 합니다.
분산: 광범위하게 널리 분포되어 있음
원장: 거래내역이 기록된 장부
(1) 중앙집중원장의 취약점
(ex) 해외물류
화주부터 트럭회사, 해운사, 보험사까지 많은 중간 이해관계자가 존재합니다. 이렇게 많은 미들맨들이 존재할 경우, 프로세스 전반에 걸쳐 시간과 비용이 증가하여 효율성이 떨어집니다.
(ex) 주식대금 결제가 3일 걸리는 사례
우리나라의 증권예탁결제제도는 3일 거래 방식(D+2)을 채택하고 있습니다.
(2) 중앙집중원장의 장점
블록은 거래의 기록 단위로 다수의 트랜잭션을 포함할 수 있습니다.
이런 정보들을 메타데이터라고 합니다. 블록이라는 데이터를 설명하는 데이터이기 때문입니다. 헤더 안의 메타데이터에는 Nonce값이 있는데, 이 논스는 트랜잭션의 논스와는 다른 역할을 합니다.
(1) 트랜잭션이란
데이터베이스의 상태를 변화시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위입니다. 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 ACID라고 합니다.
(2) 비트코인과 이더리움의 트랜잭션 데이터 구조 차이
논스의 유무가 가장 큰 차이입니다. 이더리움 트랜잭션 논스의 특징은 2가지입니다.
논스는 발신 주소의 속성이며, 발신 주소의 컨텍스트 안에서만 의미를 갖습니다. 그러나 블록체인 계정 상태에 저장되지 않고, 해당 주소에서 발생한 확인된 트랜잭션 건수를 세어서 동적으로 계산되는 값이 논스입니다.
논스는 중복되지 않고 순차적이기 때문에, 같은 논스에 여러 트랜잭션 전송이 발생하였다면 해당 논스 중 제일 높은 가스비를 지불한 트랜잭션이 처리됩니다. 이더리움은 이런 방법으로 이중 지불 문제를 방지합니다.
(cf) Mempool
이더리움 네트워크에서는 논스가 0인 트랜잭션 전송 후 논스가 2인 트랜잭션을 전송되는 경우를 생각해보자. 두 번째 트랜잭션은 어떤 블록에도 포함되지 않고, 누락된 논스가 나타날 때까지 기다리는 동안 두 번째 논스를 멤풀에 저장합니다.
모든 트랜잭션은 일회성입니다. 하나의 트랜잭션은 하나의 상태만 변화시킬 수 있습니다. 이 문제를 해결하기 위해 비트코인의 경우, UTXO를 통해 해결하고, 이더리움은 어카운트 기반 시스템으로 논스값을 각 트랜잭션이 오직 한번만 처리되게 하는 카운터로 사용합니다. 즉, UTXO와 어카운트 기반의 프로토콜 차이 때문에 이더리움 트랜잭션의 논스가 있고, 이 논스는 트랜잭션을 발신한 사람이 트랜잭션에 필요한 메시지 (이더리움 트랜잭션에 필요한 데이터) 재사용을 방지하기 위함입니다.