?한국인터넷진흥원?/?민경식 팀장
1. 블록체인의 개념
블록체인(Blockchain)이란 데이터를 거래할 때 중앙집중형 서버에 기록을 보관하는 기존 방식과 달리 거래 참가자(이것을 노드라고 부른다) 모두에게 내용을 공개하는 분산형 디지털 장부를 말한다. 블록체인에 참여한 모든 구성원이 네트워크를 통해 서로 데이터를 검증하고 저장함으로써 특정인의 임의적인 조작이 어렵도록 설계된 저장 플랫폼이라 할 수 있다. 이러한 상호분산원장(mutual distributed ledger)을 통하여 기존 중앙집중형 네트워크 기반의 인프라를 뛰어넘는 높은 보안성·확장성·투명성 등을 보장한다.
[그림 1] 기존 거래방식과 블록체인 방식의 차이

?출처 : 한국은행, 『분산원장 기술의 현황 및 주요 이슈』,(2016), p.27.
블록체인은 ‘안전한 분산원장(secure distributed ledger)’이라고 설명되기도 한다. 여기서‘안전(secure)’하다는 것은 해시 함수를 통해 암호화되었다는 의미이며, 블록체인 원장에 한 번 기록되면 거래가 수정되거나 삭제될 수 없다는 뜻이다. ‘분산(distributed)’되어 있다는 것은 데이터가 네트워크의 일부분인 수백 수천 개 노드에 퍼져있다는 의미이며, 이렇게 분산된 성질은 중앙집중형 시스템을 해킹하는 것보다 한 번에 수천 개의 시스템을 해킹하는 것이 훨씬 더 어렵다는 이유에서 보안성을 높여준다.
‘원장(ledger)’은 주요한 참여자 간에 거래내역(transation)의 확정적 기록만을 시간 순으로 기록한다는 것이며, 거래내역은 블록으로 함께 묶이고 체인을 형성하면서 서로 연결한다.
2. 블록체인 기술 구조 및 개발 플랫폼 현황
블록체인은 공인된 제3자 없이도 거래 기록의 무결성 및 신뢰성을 확보하기 위해 해시(Hash), 전자서명(Digital Signature), 암호화Cryptography) 등의 보안 기술을 활용한 분산형 네트워크 인프라를 기반으로 다양한 응용서비스를 구현할 수 있는 구조를 가지고 있다. 해시는 임의의 길이의 입력 메시지를 고정된 길이의 출력 값으로 압축시키는 기술로 데이터의 무결성 검증 및 메시지 인증에 사용된다. 전자 서명은 작성자로 기재된 자가 그 전자문서를 작성하였다는 사실과 작성내용이 송·수신과정에서 위변조 되지 않았다는 사실을 증명하는 기술이다.
[그림 2] 비트코인 블록의 구조 헤더와 바디

출처 : 필자 작성
이러한 블록체인 기술은 본래 비트코인(Bitcoin)이라는 전자화폐를 안전하게 저장하고 사용하기 위하여 고안된 보안 기술이었다. 비트코인의 핵심기술로써 디지털통화(Digital Currency)의 발행·유통·거래가 주 기능이었던 기존의 블록체인 1.0 패러다임은 비트코인의 한계를 극복하고 다양한 영역으로의 확장을 목표로 하는 블록체인 2.0으로 발전해나가고 있다.
블록체인 2.0의 대표적인 기술로는 이더리움(Ethereum)이 있으며, 디지털통화의 기능과 더불어 비트코인의 거래스크립트를 다양한 형태로 프로그램 가능하게 만든 스마트 컨트랙트(Smart Contract)를 구현하였으며 블록체인 기반 위에서 부동산 계약, 온라인 투표 등 다양한 분산 어플리케이션을 개발하고 구동할 수 있는 플랫폼으로 확장되었다. 향후 블록체인 기술은 금융 분야 보다는 정부·공공, 의료, 문화·예술, 공유경제 등 비 금융 분야에서 더욱 활발히 활용될 것이다.
스마트 계약(smart contract) 개념은 1994년 미국의 전산학자인 닉 자보(Nick Szabo)에 의해 처음으로 등장하였다. 닉자보는 프로그래밍 언어 등으로 계약서를 작성하면 조건에 따라 계약 내용이 자동으로 실행될 수 있다고 주장하였다. 분산 환경에서 가상 머신인 이더리움(Ethereum)의 등장으로 스마트 계약이 다시 조명을 받기 시작하게 되었다. 블록체인 기술 환경에서 스마트 컨트랙트는 일정한 조건을 만족하는 경우 거래가 자동으로 실행될 수 있도록 프로그래밍된 자동화 계약시스템을 의미한다.
또한 여기서 이야기하고 있는 블록체인 플랫폼이란 블록체인 서비스를 개발, 테스트할 수 있도록 블록체인 시스템의 구성요소(분산 네트워크, 통신 프로토콜 등) 및 필요기능(거래정보 검증, 합의, 노드관리 기능 등)을 제공하는 환경을 말한다. 블록체인 서비스 개발 시 플랫폼을 활용함으로써 개발 편의성과 서비스 간 상호 호환성, 안정성을 확보할 수 있다.
블록체인 기반 플랫폼 중에서도 비트코인을 구현한 Bitcoin Core, 분산 응용프로그램 플랫폼으로 많은 실증 실험에 사용되고 있는 이더리움, 그리고 리눅스 재단 주도로 개발되고 있는 컨소시엄형 블록체인 Hyperledger Fabric을 다음의 표와 같이 정리하였다.
[표 1] 블록체인 플랫폼 비교

3. 블록체인과 클라우드의 기술결합
블록체인과 클라우드 기술의 결합도 가능하다. 블록체인을 클라우드 서비스 형태로 내놓은 업체로 이미 IBM과 마이크로소프트가 있다. BaaS(Blockchain as a Service)라고 부르는 클라우드 기반서비스는 자사의 클라우드를 활용한 개발환경을 제공하여 블록체인 기반 서비스 구현을 지원한다.
IBM은 수년 간 블록체인 기술에 투자하고 있다. IBM은 오픈소스 하이퍼렛저 개발에 주도적으로 참여하고 있으며, 기업을 위한 프라이빗형 블록체인 구축 서비스를 IBM 클라우드에서 판매한다. 최근 IBM은 블록체인 플랫폼 스타터플랜을 출시했다. 기업이 블록체인 기술을 비즈니스에 쉽고 저렴하게 활용하도록 하는 옵션을 제공한다. 마이크로소프트는 아이덴티티 시스템에 블록체인을 사용하고 있다. 애저(Azure) 클라우드로 기업용 블록체인 구축 서비스도 제공 중이다.
아마존웹서비스(AWS)는 아직 공식 서비스를 내놓지 않은 상태다. 다만, 소투스, 삼성, 코다 R3, 포킷독 등과 파트너 협약을 맺고 클라우드 서버에서 분산 원장 테스트 환경을 제공하고 있다. 한편, 오라클도 최근 블록체인 클라우드 서비스를 출시했다.
※ 각주
1) 블록체인 네트워크에 직접 참여하는 사용자
2) PKI(Public Key Infrastructure) : 공개키 기반 구조. PKI는 공개키 알고리즘을 통한 암호화 및 전자서명을 제공하기 위한 복합적인 보안 시스템 환경을 말한다. 즉, 암호화와 복호화키로 구성된 공개키를 이용해 송수신 데이터를 암호화하고 디지털 인증서를 통해 사용자를 인증하는 시스템을 말한다.
3) 트랜잭션(transaction) : 데이터통신 시스템에서 데이터통신 시스템에서 관리의 대상이 되는 기본적인 정보를 기록한 기본파일(master file)에 대해서 그 내용에 추가, 삭제 및 갱신을 가져오도록 하는 행위(거래)를 트랜잭션이라 한다. 예를 들면, 입하, 출하, 매상, 반품, 임금, 출금, 정정 등의 데이터를 말하며, 이동정보라고도 한다.
4) 스크립트 언어(script language) : 컴파일(compile)을 하지 않고, 작성해서 바로 실행시킬 수 있는 언어. 컴파일하지 않고 변수 타입을 선언하지 않는다는 특징이 있다. 대표적인 스크립트 언어로는 자바 스크립트, Perl, Tcl/Tk 등이 있다.