블록체인 기술에 대한 짧은 요약을 하자면,
블록체인 기술은 P2P 네트워크에서 발생하는 모든 거래 정보를 담고 있는 원장과 노드라고 불리는 모든 컴퓨터가 분산 저장 및 업데이트하고 무결성을 유지하도록 하는 기술이다.
하나의 블록에는 이전 블록의 거래정보(해시값)와 현재의 거래정보(해시값)가 포함돼 있다.
이처럼 블록들이 서로 연결돼 있고, 해시 함수의 특성을 활용하고 있으므로 무결성을 보장한다. 또한 거래 정보가 투명하게 공개돼 있다.
만약 누군가 해시값을 조작하려 할지라도 블록체인의 합의 과정에 의해 조작된 블록은 자연스럽게 제거된다.
네트워크의 참가자들이 모두 원장을 소유한다.
노드 : 트랜잭션 내역 보관, 트랜잭션 승인, 합의
클라이언트 : 트랜잭션 생성, 거래 내역 확인
작업 증명 :
1) 블록이 생성되는 과정에서 가장 많은 작업을 한 노드가 어떤 기록이 진짜인지 결정할 수 있는 권한을 가짐
2) 새로운 블록 추가 시, 블록의 해시값을 계산해야 하는데, 이때 블록 헤더 정보 중 하나인 논스(Nonce) 값을 구해야 한다. 이 논스 값을 구하는 것이 작업 증명이다.
블록의 구성
블록은 블록해시, 블록헤더와 거래정보 두 가지로 구성돼 있다.
블록해시 : 블록의 식별자 역할을 한다. 블록 헤더를 해싱한 값이다.
블록헤더 : 이전 블록 해시
거래 정보 : 1) 보낸 사람 2) 받는 사람 그리고 금액
하이퍼레저 패브릭 아키텍처
아키텍처는 크게 4 가지 컴포넌트로 분류돼 있다.
신원 확인
사용자는 네트워크에 접속하려면 신원확인부터 해야 한다.
신원 확인은 MSP에 의해 이루어진다.
원장은 블록에 거래 정보가 저장되는 공간이다.
하이퍼레저 패브릭은 월드 스테이트 라는 저장소에 원장을 저장한다.
한 채널이 한 원장을 가지고, 한 채널 안의 노드들은 동일한 원장의 복사본을 가진다.
이 때 체인코드는 원장에 새로운 내용을 업데이트 하거나 기존의 내용을 읽어 오기 위해 필요한 코드를 말한다.
각 execution - ordering - validation 의 과정을 거쳐 원장에 기록되고 사용자에게 결과를 반환한다.
코드의 실행을 의미한다.
체인코드란 하이퍼레저 패브릭의 스마트 컨트랙트이다.
스마트 컨트랙트란, 일정한 조건을 만족하는 경우 거래가 자동으로 발생할 수 있도록 프로그래밍된 자동화 계약 시스템
트랜잭션은 체인코드의 실행이며, 체인코드는 개발자가 특정 기능을 구현해 채널 안의 피어 노드에 설치된다.
여기서 개발자가 건드리는 체인코드는 사용자 체인코드이며 사용자 체인 코드가 작동하도록 하는 체인코드인 시스템 체인 코드는 패브릭에서 관리한다
블록체인에서 스마트 컨트랙트가 필요한 이유?
신뢰성과 투명성 : 블록체인은 탈중앙화된 분산 시스템으로, 데이터 변경이 어려우며 각 거래는 블록에 기록되어 변경이 거의 불가능합니다. 스마트 컨트랙트를 통해 계약 조건이 자동으로 실행되므로 투명하고 무결성이 있는 실행이 가능하며, 이는 신뢰성을 높여줍니다.
중간자의 제거 : 전통적인 계약에서는 중간자가 개입하여 계약의 이행을 감독하거나 검증하는 역할을 했습니다. 블록체인의 스마트 컨트랙트는 중간자를 제거하고 직접 거래 당사자 간 계약을 체결하고 실행할 수 있도록 돕습니다.
자동화와 효율성 : 스마트 컨트랙트는 프로그래밍 코드로 작성되어 있으며, 조건이 충족되면 자동으로 실행됩니다. 이로써 거래 과정에서의 인간 오류나 지연을 최소화하고 효율성을 높일 수 있습니다.
비용 절감 : 중간자의 제거, 자동화 및 효율적인 거래 프로세스는 비용을 절감할 수 있는 잠재적인 기회를 제공합니다. 거래당 필요한 중개 비용이나 검증 비용 등이 감소하게 됩니다.
보안 : 블록체인은 안전한 분산 데이터베이스를 제공하며, 스마트 컨트랙트는 암호화 기술을 사용하여 안전성을 강화합니다. 이는 거래의 안전성과 신뢰성을 높이는 데 도움이 됩니다.
블록체인과 하이퍼레저패브릭의 차이
1 공개 vs. 비공개:
블록체인: 대부분의 블록체인은 공개적이며, 누구나 원장을 볼 수 있습니다. 예를 들어, 비트코인과 이더리움은 공개적인 블록체인 기반입니다.
Hyperledger Fabric: Hyperledger Fabric은 비공개 블록체인이며, 기업 간의 프라이빗 블록체인 네트워크를 구축하는 데 중점을 둡니다. 기업이 필요한 경우 특정 참가자만이 허가된 트랜잭션 및 데이터에 액세스할 수 있습니다.
2. 합의 알고리즘:
블록체인: 대부분의 공개 블록체인은 합의 알고리즘으로 Proof of Work (PoW)나 Proof of Stake (PoS)와 같은 알고리즘을 사용합니다.
Hyperledger Fabric: 합의 알고리즘은 유연하게 선택할 수 있습니다. Kafka, Raft, Solo와 같은 다양한 합의 알고리즘을 선택하여 네트워크의 요구 사항에 맞게 조정할 수 있습니다.
3. 암호화폐와의 연관성:
블록체인: 대부분의 블록체인은 자체 암호화폐를 사용하며, 이를 통해 트랜잭션 수수료 지불 및 보안을 유지합니다.
Hyperledger Fabric: 암호화폐를 사용하지 않습니다. 대신, 비즈니스 계약의 실행에 중점을 두며, 트랜잭션 수수료가 필요하지 않을 수 있습니다.
4. 모듈러 아키텍처:
블록체인: 일반적으로 통합된 구조를 가집니다.
Hyperledger Fabric: 모듈화된 아키텍처를 갖추고 있어, 기업이 필요에 따라 네트워크의 여러 구성 요소를 선택하여 사용할 수 있습니다.
5. 스마트 컨트랙트 언어:
블록체인: 스마트 컨트랙트를 구현할 때 주로 Solidity (이더리움), Go, Java 등 다양한 언어를 사용합니다.
Hyperledger Fabric: Chaincode라고 불리는 스마트 컨트랙트를 작성할 때 Go, Java, JavaScript 등의 언어를 사용할 수 있습니다.