"블록체인"의 두 판 사이의 차이
(→P2P 분산 저장) |
잔글 (→P2P 분산 저장) |
||
52번째 줄: | 52번째 줄: | ||
[[파일:고아 블록.png|오른쪽]] | [[파일:고아 블록.png|오른쪽]] | ||
− | 블록체인 네트워크에서 새로운 거래가 발생할 경우 그 내역은 네트워크에 연결된 모든 노드들에게 전파되어 알려진다. 각 노드들은 일정한 시간 동안 이루어진 모든 거래를 하나로 묶어 새로운 블록을 구성하고, 목표값 이하의 해시값을 찾기 위해 경쟁한다. 네트워크에 참여한 수많은 노드들 중에서 가장 먼저 목표값 이하의 블록 해시값을 찾아낸 노드가 경쟁에서 승리하게 된다. 블록 해시를 가장 먼저 찾아낸 노드는 자신이 경쟁에서 승리했음을 전체 네트워크에 알린다. 네트워크에 참여한 다른 노드들은 새로 생성된 블록의 유효성을 검사하고 아무런 이상이 없을 경우 해당 블록의 생성을 승인한다. 이런 방식으로 전체 네트워크에 참가한 노드들 중에서 과반수가 새로 생성된 블록을 승인할 경우, 해당 블록은 정식 블록으로 채택되어 블록체인에 추가된다. 만약 서로 다른 거래내역을 가진 블록이 동시에 생성될 경우 네트워크는 약 1시간 정도 기다리면서 지켜보다가 가장 긴 길이를 가진 체인을 선택한다. 이 때 선택되지 않은 다른 블록은 버려져서 고아 | + | 블록체인 네트워크에서 새로운 거래가 발생할 경우 그 내역은 네트워크에 연결된 모든 노드들에게 전파되어 알려진다. 각 노드들은 일정한 시간 동안 이루어진 모든 거래를 하나로 묶어 새로운 블록을 구성하고, 목표값 이하의 해시값을 찾기 위해 경쟁한다. 네트워크에 참여한 수많은 노드들 중에서 가장 먼저 목표값 이하의 블록 해시값을 찾아낸 노드가 경쟁에서 승리하게 된다. 블록 해시를 가장 먼저 찾아낸 노드는 자신이 경쟁에서 승리했음을 전체 네트워크에 알린다. 네트워크에 참여한 다른 노드들은 새로 생성된 블록의 유효성을 검사하고 아무런 이상이 없을 경우 해당 블록의 생성을 승인한다. 이런 방식으로 전체 네트워크에 참가한 노드들 중에서 과반수가 새로 생성된 블록을 승인할 경우, 해당 블록은 정식 블록으로 채택되어 블록체인에 추가된다. 만약 서로 다른 거래내역을 가진 블록이 동시에 생성될 경우 네트워크는 약 1시간 정도 기다리면서 지켜보다가 가장 긴 길이를 가진 체인을 선택한다. 이 때 선택되지 않은 다른 블록은 버려져서 고아 블록(orphan block)이 되고 더 긴 길이를 가진 블록체인의 끝에 새로 생성된 블록이 연결된다. 이러한 과정을 통해 블록체인은 거래를 처리하고 승인하는 권위 있는 중앙기관이 없이도 네트워크 참여자들의 협업을 통해 안전하고 신뢰할 수 있는 시스템을 운영할 수 있다. |
== 종류 == | == 종류 == |
2018년 6월 10일 (일) 03:22 판
블록체인(blockchain)이란 다수의 거래 기록을 묶어 블록을 구성하고, 여러 블록을 해시 체인으로 연결한 뒤, 분산 저장하는 알고리즘이다. 블록체인 기술을 이용하면 데이터의 위변조가 불가능하여 신뢰할 수 있는 안전한 거래와 데이터 처리를 할 수 있다. 블록체인은 비트코인과 이더리움 등 암호화폐에 사용된 핵심 기술이다. 은행 등 제3의 중개기관이 없더라도 블록체인 기술을 이용하면 누구나 신뢰할 수 있는 안전한 거래를 할 수 있다. 블록체인은 암호화폐뿐 아니라, 온라인 거래내역이 있는 모든 데이터 처리에 활용할 수 있다. 블록체인 기반의 물류관리 시스템, 저작권관리 시스템, 신원확인 시스템, 문서관리 시스템 등 다양한 활용이 가능하다. 중개기관이 필요 없는 블록체인 기술을 활용함으로써 인류는 새로운 거래 방식과 조직 운영 원리를 바탕으로 과거 인터넷 기술이 가져온 것 이상의 큰 사회적 변화와 혜택을 누릴 수 있을 것으로 예측하고 있다.
목차
개념
블록체인은 간략히 '분산원장' 기술이라고 한다. 즉, 거래내역을 기록한 원장을 다수의 사람들에게 분산하여 저장·관리하는 기술이다. 자세히 설명하면, 블록체인이란 다수의 온라인 거래 기록을 묶어 하나의 데이터 블록(block)을 구성하고, 해시(hash) 값을 이용하여 이전 블록과 이후 블록을 마치 체인(chain)처럼 연결한 뒤, 이 정보의 전부 또는 일부를 P2P 방식으로 전 세계 여러 컴퓨터에 복사하여 분산 저장·관리하는 기술이다.
역사
블록체인을 처음 만든 것은 사토시 나카모토(Satoshi Nakamoto)라는 가명을 쓰는 사람이었다. 그는 2008년 11월 1일 "Bitcoin : A Peer-to-Peer Electronic Cash System"[1]이라는 논문을 작성하여 암호학계 관련자들이 사용하는 공용 이메일 주소로 전송하였다. 이듬해인 2009년 1월 10일 사토시 나카모토는 블록체인 기술을 적용한 최초의 암호화폐인 비트코인(bitcoin)을 개발하고 C++ 언어로 작성한 소스 코드를 배포했다.[2] 이후 비트코인의 소스 코드를 일부 변형한 몇 가지 새로운 코인들이 출현했으나 기존 블록체인 기술의 부분적 변형에 불과했다.
I've been working on a new electronic cash system that's fully peer-to-peer, with no trusted third party.
나는 새로운 전자화폐 시스템을 개발하고 있는데, 완전한 P2P 방식이고, 신뢰할 수 있는 제3자가 필요 없다.
- 사토시 나카모토(Satoshi Nakamoto), 2008.11.01.[3]
2013년 비탈릭 부테린(Vitalik Buterin)이 이더리움 백서[4]를 작성하여 블록체인 기술을 이용한 스마트 계약을 제안했다. 기존의 비트코인이 가치의 저장과 전달 기능을 가진 전자화폐 기능에 제한된 것과 달리, 이더리움은 블록체인 기술을 이용하여 각종 계약서 등을 위변조 없이 관리할 수 있는 획기적인 기술이었다. 이런 점에서 비트코인을 '블록체인 1.0'이라고 부르고, 이더리움을 '블록체인 2.0'이라고 부른다.
2017년에서 2018년 사이에 에이다(ADA), 이오스(EOS), 스팀(Steem) 등 다양한 암호화폐가 출현했다. 이들은 기존의 비트코인을 제1세대 암호화폐, 이더리움을 제2세대 암호화폐라고 부르면서 스스로 제3세대 암호화폐를 자처했다. 기존 블록체인 기술은 작업증명(PoW) 방식에 따른 채굴(mining)에 의해 새로운 블록이 생성되었으나, 이들은 지분증명(PoS), 위임지분증명(DPoS) 등 다양한 새로운 합의 알고리즘을 제안하면서, 빠른 처리 속도와 확장성을 구현하고자 하였다.
작동 원리
블록체인이 작동하기 위해서는 다수의 거래내역을 묶어 블록을 구성하고, 이 블록을 기존 블록체인의 끝에 연결하며, 다수의 컴퓨터에 P2P 방식으로 분산 저장해야 한다.
블록 구성
블록체인을 만들기 위해 처음 해야 하는 일은 다수의 거래 기록을 묶어 하나의 블록을 구성하는 일이다.
거래의 최소 단위는 트랜잭션(transaction)이다. 트랜잭션이란 더 이상 쪼갤 수 없는 업무 처리의 최소 단위를 말한다. 예를 들어, A라는 사람이 B라는 사람에게 1,000원을 지급하고 B가 그 돈을 받은 경우, 이 거래 기록은 더 이상 작게 쪼갤 수가 없는 하나의 트랜잭션을 구성한다. 만약 A는 돈을 지불했으나 B는 돈을 받지 못했다면 그 거래는 성립되지 않는다. 이처럼 A가 돈을 지불하는 행위와 B가 돈을 받는 행위는 별개로 분리될 수 없으며 하나의 거래 내역으로 처리되어야 하는 단일 거래이다. 이런 거래의 최소 단위를 트랜잭션이라고 한다.
인터넷 등 온라인에서 거래가 발생한 경우, 각각의 트랜잭션별로 하나의 거래내역을 구성한다. 이 거래내역은 해시(hash) 함수를 사용하여 암호화된다. 해시 함수란 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑하는 알고리즘이다. 각각의 거래내역을 텍스트로 표시할 경우 그 길이가 각각 다를 수 있지만, 이것을 해시 함수로 변환하면 항상 일정한 길이의 해시값이 나온다. 예를 들어, SHA-256 해시 함수를 사용할 경우, 거래내역이 아무리 짧거나 혹은 길어도 해시값은 항상 2진수로 256자리(즉, 16진수로 64자리)의 고정된 길이를 가진 값으로 표시된다. 이러한 해시 연산 과정을 거쳐 블록체인 안에서 하나의 트랜잭션에는 반드시 하나의 해시값이 대응하는 1:1 구조를 이루게 된다.
- [거래내역1] "A가 B에게 1,000원을 주었다." --> [해시1] 1c51df95c6ecb0ece8d7610583d07a74cc29acdd85021a2c97fc2529f581d83b
- [거래내역2] "A가 C에게 2,000원을 받았다." --> [해시2] 3f6be801101b4000aa456f6a17bc627c86cddcf12b7ef2882cc030137435e400
블록체인에서는 다수의 거래내역을 묶어 하나의 블록을 구성한다. 블록체인 기술을 적용한 대표적인 암호화폐인 비트코인의 경우 약 10분에 한 번씩 새로운 블록을 구성한다. 라이트코인의 경우 약 2분 30초에 한 번씩 새로운 블록을 구성한다. 거래내역이 많든 적든 상관없이 항상 일정한 시간에 한 번씩 새로운 블록을 구성한다. 하나의 블록에는 하나의 루트 해시값이 존재한다. 루트 해시를 생성하기 위해 우선 각각의 거래내역별로 각각 하나씩의 해시값을 매핑하고, 이러한 해시값을 해시트리(=머클트리) 구조로 구성하여 결국 최종적으로 트리의 최상위 지점에 하나의 루트 해시를 생성한다. 루트 해시에는 일정한 시간 동안 이루어진 모든 거래내역들이 하나도 빠짐없이 기록되어 하나의 해시값으로 변환되어 저장된다. 이로써 하나의 블록이 구성된다.
체인 연결
하나의 새로운 블록을 구성한 경우, 마치 체인처럼 이전부터 이어져 내려오던 블록체인의 맨 끝에 이 새로운 블록을 연결시켜야 한다. 새로운 블록을 기존 블록체인의 끝에 연결시키려면, 해당 블록의 이름에 해당하는 해시값을 찾아내야 한다. 새로운 해시값을 성공적으로 찾아내는 경우 새로운 블록이 생성되어 기존 블록체인에 연결된다.
새로 구성한 블록의 이름에 해당하는 해시를 찾아내는 일은 수없이 많은 시도를 반복해야 하는 매우 힘든 과정이다. 왜냐하면 새로운 블록의 해시는 반드시 프로그램에 의해 미리 정해진 목표값보다 작아야 한다는 조건을 충족해야 하기 때문이다. 예를 들어, 목표 해시값이 00ff32라고 가정하고, 새로 만든 블록의 해시값이 12fa3b라고 하면, 이 값이 목표값보다 더 크기 때문에 블록 생성에 실패하게 된다. 하지만 새로 찾아낸 해시값이 00c3b1이라고 가정하면, 이 값은 목표값보다 더 작기 때문에 새로운 블록의 생성에 성공하게 된다.
일반적으로 블록의 해시값은 해당 블록의 루트 해시, 이전 블록의 해시, 그리고 논스(nonce)[5]라고 불리는 임시값 등을 조합하여 생성한다. 해당 블록의 루트 해시와 이전 블록의 해시값은 이미 확정되어 정해진 값을 가지고 있지만, 논스라는 임시값이 달라짐에 따라 해시 연산 결과로 생성되는 블록 해시값도 다양하게 나올 수 있다. 예를 들어 논스가 1인 경우의 해시값과 2인 경우의 해시값은 전혀 다르다. 이 논스 값을 수없이 바꿔가면서 하나씩 대입하다가 새로 생성된 해시값이 일정한 목표값보다 더 작을 경우에 새로운 블록이 성공적으로 생성된다. 이처럼 특정한 블록에 대해 목표값 이하의 크기를 가진 해시값을 찾음으로써 새로운 블록을 생성하는 행위를 작업증명(PoW)이라고 한다. 작업증명의 대가로 일정한 개수의 암호화폐를 지급받는 것을 채굴(採掘) 또는 마이닝(mining)이라고 한다.
P2P 분산 저장
블록체인은 거래를 처리하고 기록·관리하는 권위 있는 중앙 조직이나 기구·기관이 없이, 네트워크에 연결된 개별 참여자들의 협업에 의해 유지된다.
블록체인은 P2P 방식으로 운영된다. 피투피(P2P)란 Peer to Peer의 약자로서, 인터넷에 연결된 다수의 개별 사용자들이 중개기관을 거치지 않고 직접 데이터를 주고받는 것을 말한다. 영어로 Peer란 '동료'라는 뜻으로서, P2P란 인터넷에 연결된 한 동료가 다른 동료에게 데이터를 직접 전송하는 시스템을 말한다. P2P 방식은 기존의 서버-클라이언트 방식의 데이터 전송과는 본질적으로 다른 구조를 가지고 있다. 서버-클라이언트 구조에서 개별적인 참여자는 우선 서버에 데이터를 올려야 하고, 다른 참여자가 해당 서버로부터 데이터를 받아오는 방식으로 작동한다. 이런 점에서 서버-클라이언트 구조에서 서버는 중앙·중심·센터에 해당하고, 클라이언트는 서버에 연결된 종속적 위치에 놓이게 된다. 반면 P2P 방식을 따르는 블록체인에는 중앙이나 중심 또는 센터가 없다. 블록체인 네트워크에 참여하는 모든 참여자들은 서로 평등하다.
블록체인에 저장된 데이터는 네트워크에 연결된 모든 노드(node)에 복사되어 분산 저장된다. 노드란 네트워크를 구성하는 각각의 개체를 말한다. 예를 들어, 10대의 컴퓨터가 서로 연결되어 네트워크를 구성하고 있는 경우 각각의 개별 컴퓨터가 하나의 노드가 된다. 즉, 이 시스템은 10개의 개별 노드로 구성된 네트워크 시스템이다. 서버-클라이언트 구조에서는 원본 데이터가 서버에 저장되어 있고 클라이언트는 서버에 접속하여 데이터를 열람·복사·다운로드 받지만, 블록체인 네트워크 구조에서는 중앙 서버가 존재하지 않으며 네트워크에 참여하는 모든 노드들이 서로 데이터를 복사하여 동일한 자료를 분산 저장하고 있다. 블록체인에 저장된 데이터는 원본과 사본의 구별이 없다. 블록체인 네트워크에 참여하는 개별 노드들은 다른 노드에 있는 데이터를 복사하여 저장함으로써 서로 동일한 데이터를 가지게 된다. 이 때 해당 데이터 전체를 100% 동일하게 복사하여 저장한 노드를 풀 노드(full node)라고 하고, 전체 데이터의 일부분만 복사하여 저장한 노드를 라이트 노드(light node)라고 한다.
블록체인 네트워크에서 새로운 거래가 발생할 경우 그 내역은 네트워크에 연결된 모든 노드들에게 전파되어 알려진다. 각 노드들은 일정한 시간 동안 이루어진 모든 거래를 하나로 묶어 새로운 블록을 구성하고, 목표값 이하의 해시값을 찾기 위해 경쟁한다. 네트워크에 참여한 수많은 노드들 중에서 가장 먼저 목표값 이하의 블록 해시값을 찾아낸 노드가 경쟁에서 승리하게 된다. 블록 해시를 가장 먼저 찾아낸 노드는 자신이 경쟁에서 승리했음을 전체 네트워크에 알린다. 네트워크에 참여한 다른 노드들은 새로 생성된 블록의 유효성을 검사하고 아무런 이상이 없을 경우 해당 블록의 생성을 승인한다. 이런 방식으로 전체 네트워크에 참가한 노드들 중에서 과반수가 새로 생성된 블록을 승인할 경우, 해당 블록은 정식 블록으로 채택되어 블록체인에 추가된다. 만약 서로 다른 거래내역을 가진 블록이 동시에 생성될 경우 네트워크는 약 1시간 정도 기다리면서 지켜보다가 가장 긴 길이를 가진 체인을 선택한다. 이 때 선택되지 않은 다른 블록은 버려져서 고아 블록(orphan block)이 되고 더 긴 길이를 가진 블록체인의 끝에 새로 생성된 블록이 연결된다. 이러한 과정을 통해 블록체인은 거래를 처리하고 승인하는 권위 있는 중앙기관이 없이도 네트워크 참여자들의 협업을 통해 안전하고 신뢰할 수 있는 시스템을 운영할 수 있다.
종류
블록체인은 참여자의 범위에 따라 퍼블릭 블록체인과 프라이빗 블록체인으로 나눌 수 있다. 퍼블릭 블록체인은 인터넷처럼 누구나 참여할 수 있는 개방형이지만, 프라이빗 블록체인은 인트라넷처럼 제한된 사람들만 참여할 수 있는 폐쇄형 블록체인이다.
퍼블릭 블록체인
퍼블릭 블록체인(public blockchain)이란 누구든지 자유롭게 참여할 수 있는 개방형 블록체인 네트워크를 말한다. 공공 블록체인 또는 개방형 블록체인이라고 한다. 권위 있는 조직의 승인이 없이 누구든지 인터넷에 연결된 PC, 노트북, 스마트폰, 서버컴퓨터, 채굴기 등 다양한 컴퓨터 장비를 이용하여 블록체인 네트워크에 참여할 수 있다. 이러한 블록체인 네트워크에 참여하는 개별 컴퓨터를 노드(node)라고 부르는데, 각 노드들은 블록체인에 저장된 데이터를 복사하여 저장하고, 해시 연산을 통해 새로운 블록의 생성에 참여할 수 있다. 또한 각 노드들은 언제든지 자신의 컴퓨터를 블록체인 네트워크에 연결하지 않고 접속을 차단함으로써 자유롭게 탈퇴할 수 있다. 블록체인 네트워크에 참여 또는 탈퇴하는 것은 권위 있는 조직의 승인이 필요 없이, 전적으로 해당 노드 참여자의 자유로운 의사에 따라 결정할 수 있다.
퍼블릭 블록체인의 경우 참여자들의 컴퓨터 사용에 따른 전기료 등 운영 비용을 감당할 수 있도록, 암호화폐를 발행하여 보상한다. 퍼블릭 블록체인 참여자들은 새로운 블록이 생성될 때마다 발행되는 암호화폐를 지급 받음으로써, 컴퓨터 감가상각비, 전기료, 공간사용료, 인건비 등 각종 비용을 보상 받을 수 있다. 퍼블릭 블록체인 운영에 참가한 사람들은 지급받은 암호화폐를 실생활에서 사용하거나 혹은 암호화폐 거래소에서 판매함으로써 참여 비용을 회수할 수 있다. 이런 점에서 퍼블릭 블록체인과 암호화폐는 서로 분리할 수 없는 일체형 구조로 되어 있다. 만약 퍼블릭 블록체인에서 암호화폐를 지급하지 않는다면, 블록체인 네트워크 참여자들이 받을 수 있는 경제적 보상이 없기 때문에 소수의 헌신적인 기여자들을 제외하고는 참여자가 없게 되어, 최악의 경우 블록체인 네트워크가 붕괴할 우려가 있다. 따라서 퍼블릭 블록체인에서 암호화폐를 발행하는 것은 블록체인 네트워크를 유지하기 위해 반드시 필요한 사항이라고 할 수 있다.
프라이빗 블록체인
프라이빗 블록체인(private blockchain)이란 미리 정해진 조직이나 개인들만 참여할 수 있는 폐쇄형 블록체인 네트워크를 말한다. 사적 블록체인 또는 폐쇄형 블록체인이라고 한다. 프라이빗 블록체인에 참여하려면 반드시 권위 있는 조직의 승인을 받아야 한다. 프라이빗 블록체인 운영자의 승인을 받지 못한 조직이나 개인은 해당 블록체인 네트워크의 운영에 참여할 수 없다. 예를 들어, A 기업과 B 기업 및 C 단체가 서로 협의하여 프라이빗 블록체인을 운영하기로 한 경우, 오직 A, B, C 세 곳만 참여할 수 있으며, 다른 제3자인 D 기업은 참여할 수 없다. 만약 D 기업이 해당 프라이빗 블록체인에 참여하고 싶다면, 관계자들과 협의하여 사전 승인을 받아야 한다.
프라이빗 블록체인의 운영을 위해서 암호화폐가 반드시 필요한 것은 아니다. 프라이빗 블록체인의 경우 굳이 암호화폐를 발행할 필요가 없이, 해당 프라이빗 블록체인의 참여자들이 자발적으로 컴퓨터 운영 비용을 부담하면 된다. 물론 프라이빗 블록체인에서도 암호화폐를 발행할 수는 있다. 블록체인이 혈관이라면 암호화폐는 그 혈관 속을 흐르는 혈액과 같은 존재이기 때문에, 프라이빗 블록체인에서도 암호화폐를 도입하는 것이 운영상 편리할 수 있다. 하지만 해당 암호화폐를 외부의 암호화폐 거래소에 판매하기 어렵기 때문에 사실상 내부 정산 및 서비스 이용 등의 목적으로 제한적으로만 사용할 수 있다. 결국 프라이빗 블록체인에서 암호화폐의 발행은 필수사항이 아니며, 각 프라이빗 블록체인 운영자들의 필요에 의해 자체 암호화폐를 발행할 수도 있고, 그렇지 않을 수도 있다.
특징
블록체인에 기록된 데이터는 위변조가 거의 불가능하여 누구나 신뢰할 수 있고, 안전하며, 탈중앙 방식의 시스템 운영이 가능하다.
신뢰성
블록체인에 기록된 데이터는 해킹을 통한 위변조가 매우 어렵기 때문에 누구나 신뢰할 수 있다. 블록체인에 기록된 내용은 해시함수에 의해 변환되어 암호화된 형태로 저장된다. 만약 내부자 또는 외부 해커가 시스템에 침입하여 특정 데이터를 위변조할 경우, 해당 데이터의 해시값이 변경되어, 위변조 사실을 즉각 알아낼 수 있다. 블록체인에 기록된 데이터의 양이 아무리 많아도 그 중에서 단 한 글자만 변경해도 전혀 다른 해시값이 나오기 때문에, 다른 사람이 모르게 데이터를 변경·삭제·추가하는 일은 불가능하다. 게다가 해시트리 구조로 데이터를 관리하기 때문에 어떤 위치에서 어떤 내용이 위변조되었는지를 즉각 알아낼 수 있다. 따라서 블록체인에 기록된 데이터는 단지 "블록체인에 기록되어 있다"는 이유만으로도 누구나 신뢰할 수 있다.
블록체인 자체를 해킹하는 유일한 방법은 전체 네트워크의 50% 이상에 해당하는 막강한 해시 연산 능력을 보유하고, 다른 정직한 노드들보다 더 빠른 속도로 신규 블록을 생성하여 네트워크에 전파함으로써, 다른 노드들이 정상적인 데이터가 아니라 위변조된 데이터가 포함된 블록체인을 채택하도록 만드는 것이다. 이것을 흔히 51% 공격이라고 부른다. 51% 공격을 성공하려면, 해당 블록체인 네트워크에 참여한 다른 모든 노드들의 해시 연산 능력을 합친 것보다 더 큰 해시 파워를 보유해야 하는데, 사실상 불가능에 가깝다. 물론 아주 예외적이기는 하지만, 참여자가 매우 적은 블록체인인 경우, 51% 공격이 성공할 수 있다. 하지만 블록체인 네트워크에 참여자 수가 늘어남에 따라 50% 이상의 해시 파워를 확보하는 것이 매우 어렵기 때문에, 51% 공격이 사실상 불가능해진다.
안전성
블록체인에 기록된 데이터는 분산 저장하기 때문에, 특정 노드에 대한 디도스 공격이나 랜섬웨어 공격 등으로부터 안전하다. 디도스(DDoS)란 Distributed Denial of Service의 약자로서, 다수의 분산된 컴퓨터를 이용하여 특정 서버 컴퓨터가 처리할 수 있는 용량을 초과하는 정보를 한꺼번에 보내 과부하로 서버가 다운되거나 정상 접속되지 못하도록 만드는 공격을 말한다. '분산 서비스 공격'이라고 한다. 예를 들어, 최대 1,000명이 동시 접속할 수 있는 서버에 2,000명이 동시 접속을 시도하면, 서버가 부하를 이겨내지 못하고 다운되거나 먹통이 되어 정상적인 서비스를 제공할 수 없게 된다. 기존의 서버-클라이언트 구조에서는 중앙 서버에 디도스 공격을 함으로써 전체 서비스를 마비시킬 수 있다. 랜섬웨어(ransomware)란 해커가 침입하여 컴퓨터 시스템에 있는 파일들을 암호화하여 알아볼 수 없게 변조해 버리고, 일종의 몸값(ransom)을 지불하면 복호화할 수 있는 암호를 알려주는 해킹 공격을 말한다. 기존의 서버-클라이언트 구조에서는 중앙 서버가 랜섬웨어 공격을 당하면 전체 서비스가 마비되는 문제가 있었다.
기존의 서버-클라이언트 구조와 달리, 블록체인 구조에서는 다수의 노드들이 동일한 데이터를 복사하여 분산 저장하고 있기 때문에 디도스 또는 랜섬웨어 등 외부의 공격으로부터 안전하다는 장점이 있다. 블록체인 네트워크에 참여하는 특정 노드를 공격하여 해당 시스템을 마비시키더라도, 다른 노드에 있는 서버 컴퓨터들이 정상 작동하기 때문에 서비스를 안정적으로 제공할 수 있다. 블록체인 네트워크를 구성하는 전 세계 모든 노드들을 상대로 동시에 분산 서비스 거부 공격(DDoS)이나 랜섬웨어 공격을 하여 전 세계 모든 시스템을 동시에 마비시키지 않는 한, 블록체인에 기록된 데이터는 외부 공격으로부터 안전하다. 블록체인 네트워크에 참여하는 전 세계 모든 노드를 동시에 공격하는 것은 매우 큰 컴퓨팅 파워가 필요하기 때문에 사실상 불가능하다.
탈중앙
블록체인은 권위 있는 중앙 조직·기관·단체 등이 없이, 자유롭고 평등한 참여자들에 의해 자율적으로 유지되고 운영된다. 기존의 서버-클라이언트 구조에서는 모든 정보가 중앙에 있는 서버로 집중되기 때문에 중앙을 차지한 사람이 의사결정권한을 가지는 구조였다. 하지만 블록체인은 중앙이 없는 P2P 방식으로 운영되기 때문에, 권위를 가진 중앙이 존재하지 않는다. 블록체인에서 의사결정 방식은 네트워크에 참여한 모든 사람들의 과반수 이상의 동의를 필요로 하는 탈중앙(脫中央, decentralization) 방식이다.
블록체인 구조에서 중앙 조직은 불필요하다. 블록체인 방식이 사회적으로 널리 퍼지면 기존의 중앙집중식 조직은 약화되거나 소멸된다. 예를 들어, 블록체인 기반의 암호화폐가 널리 사용될 경우, 기존의 은행은 그 권한과 역할이 축소된다. 마찬가지로 블록체인 기반의 물류관리 시스템이 확산될 경우, 기존의 복잡한 물류관리 절차가 대폭 간소화되고 관련 조직들의 역할이 축소된다. 블록체인 시스템이 확산될수록 기존의 은행, 보험사, 공증사무소, 포털 사이트, 기업, 법원, 정부, 국가 등 다양한 중개기관들은 그 역할이 대폭 축소되거나 심지어 소멸할 것으로 예상되고 있다. 블록체인은 중개기관이 필요없이 참여자들이 직접 거래할 수 있는 시스템이다. 블록체인은 자유와 평등을 보장하는 탈중앙화 시스템이다.
활용
블록체인 기술은 암호화폐, 스마트 계약, 물류관리, 저작권관리, 신원확인, 문서관리, 이력관리 등 다양한 분야에서 활용될 수 있다.
암호화폐
블록체인은 이중지불 문제를 해결함으로써 암호화폐의 기반 기술이 되었다.
기존의 인터넷에서는 이중지불 문제를 해결할 수 없어, 인터넷으로 정보를 전달할 수는 있었지만 중개기관이 없이는 가치를 전달할 수 없었다. 이중지불(double spending)이란 원본 파일에 저장된 가치를 지불한 뒤, 해당 파일을 복사하여 다른 사람에게 또 지불하는 것을 말한다. 예를 들어, A가 B에게 1,000원이라고 기록된 파일을 전송한 후 다시 해당 파일을 복사하여 C에게 또 1,000원을 전송하는 것을 말한다. 컴퓨터와 인터넷에서 모든 파일은 복사가 가능하기 때문에 이중지불 문제를 피할 수 없다. 기존의 인터넷 시스템에서는 이중지불 문제를 피하기 위해 신뢰할 수 있는 중개기관을 두고, 중개기관이 보관하고 있는 기존 데이터에서 해당 금액만큼 차감하는 방식으로 가치를 전달했다. 결국 기존 인터넷 시스템에서 가치를 전송하려면 반드시 은행이라는 중개기관에 의존해야 했다.
블록체인 기술을 이용할 경우 은행이라는 중개기관이 없이도 이중지불 문제 없이 가치를 전송할 수 있다. 블록체인에서 모든 거래내역은 해시값으로 변환되어 저장되는데, 하나의 블록에는 과거의 모든 거래내역이 담긴 이전 해시값을 포함하고 있기 때문에 이중지불이 불가능하다. 예를 들어, A가 B에게 1,000원을 전송한 경우 해당 거래내역이 블록체인에 기록되기 때문에, A가 다시 1,000원을 C에게 전송하려고 할 경우 해당 거래는 블록체인 네트워크에 참여한 다른 노드들의 승인을 얻지 못하여 실패하게 된다. 이처럼 블록체인은 과거의 모든 거래내역이 담긴 장부를 해시함수로 변환하여 하나의 파일로 만들어 전송하고, 그 결과를 블록체인 네트워크에 참여한 다른 노드들이 검증하게 함으로써 이중지불 문제를 해결할 수 있게 되었다.
블록체인 기술을 활용하여 만든 최초의 암호화폐는 비트코인(bitcoin)이다. 2008년 10월 사토시 나카모토(Satoshi Nakamoto)라는 가명을 쓰는 인물이 비트코인 백서를 작성하여 공개했고, 이듬해인 2009년 1월 세계 최초의 블록체인 기반 암호화폐인 비트코인을 개발했다. 이후 비트코인의 뒤를 이어, 라이트코인, 이더리움, 이더리움 클래식, 리플, 비트코인캐시, 모네로, 에이다, 이오스, 트론, 스팀, 아이콘 등 수많은 암호화폐들이 등장했다.
스마트 계약
블록체인 기술은 암호화폐에만 사용할 수 있는 것이 아니라 위변조 방지가 필요한 각종 계약서 작성에 활용할 수 있다. 특히 일정한 조건이 만족되면 자동으로 계약 내용이 실행되도록 하는 스마트 계약 기능에 사용할 수 있다.
스마트 계약 또는 스마트 컨트랙트(smart contract)는 1990년대 중반 닉 재보(Nick Szabo)가 고안한 개념으로서, 계약 당사자가 사전에 협의한 내용을 미리 프로그래밍하여 전자 계약서 문서 안에 넣어두고, 이 계약 조건이 모두 충족되면 자동으로 계약 내용이 실행되도록 하는 시스템이다. 예를 들어, 로봇 청소기가 집이나 사무실 청소를 모두 마친 경우 자동으로 청소비용이 지불되도록 디지털 계약서 안에 미리 프로그램 코딩을 해 둘 수 있다. 닉 재보는 스마트 계약이 자동판매기와 비슷하다고 말했다. 자동판매기에 미리 정해진 액수 이상의 돈을 투입하면, 자동으로 원하는 상품을 구매할 수 있듯이, 스마트 계약을 통해 일정한 조건이 충족되면 자동으로 계약이 실행되도록 한다는 것이다. 그는 이를 위해 비트골드(bit gold)라는 디지털 화폐를 고안했지만 당시의 기술적 한계로 인해 실제로 개발되거나 사용되지는 못하였다.
스마트 계약은 블록체인 기술을 적용함으로써 실제 구현이 가능해졌다. 2013년 당시 19세의 천재 프로그래머였던 비탈릭 부테린(Vitalik Buterin)은 블록체인 기술을 적용한 스마트 계약 플랫폼인 이더리움(ethereum)을 개발할 것을 제안하고, 2015년 7월 30일 이더리움 개발에 성공하여 실제 서비스를 시작했다. 솔리디티(solidity)라는 프로그래밍 언어를 사용하여, 계약 기간, 금액, 조건 등을 미리 코딩해 두면, 부동산 거래, 중고 자동차 거래, 무역 거래 등 어떠한 종류의 계약도 자동 실행되도록 만들 수 있다. 기존의 비트코인이 블록체인 기술을 활용하여 가치의 저장과 전달이 가능한 암호화폐를 만들었다면, 이더리움은 한 단계 더 나아가 블록체인 기술을 활용하여 인간이 상상할 수 있는 모든 종류의 계약을 자동으로 실행할 수 있는 스마트 계약 플랫폼을 개발했다. 이런 점에서 기존의 비트코인을 '블록체인 1.0'이라고 부르고, 스마트 계약 기능을 구현한 이더리움을 '블록체인 2.0'이라고 부른다.
물류관리
거래내역의 위변조가 어려운 블록체인 기술을 활용하여 물류관리 시스템을 운영할 수 있다. 예를 들어 루이비통(Louis Vuitton) 등 명품 가방을 거래하는 경우, 제품의 생산일자, 생산지, 수입일자, 관세 납부 내역 등 관련된 정보를 블록체인에 기록함으로써 위변조를 막고 짝퉁 제품을 가려낼 수 있다. 블록체인을 활용하면 해외에서 수입한 고급 양주와 포도주 등에 대한 정품 확인이 가능하다. 소고기, 돼지고기, 닭고기 등 축산물과 쌀, 보리, 야채, 과일 등 각종 농산물 및 생선, 조개, 김, 미역 등 각종 수산물의 생산자, 생산일시, 생산지, 유통이력 등을 블록체인에 기록하여 상품 유통과정을 체계적으로 관리할 수 있다.
정부와 공공기관에서 블록체인 기반의 물류관리 시스템을 구축하는 사업이 발주되었다. 2018년 5월 대한민국 관세청은 "블록체인 기반 e-CO(원산지증명서) 발급 교환 서비스"[6] 사업을 9억원 규모로 발주했다. 뒤이어 "블록체인 기반의 수출통관 물류서비스 시범사업"[7]을 16억원 규모로 발주했다.
물류관리 시스템을 프라이빗 블록체인이 아니라 퍼블릭 블록체인 기반으로 관리하려는 시도도 있다. 비체인(VeChain)[8]은 블록체인 기반의 물류관리 시스템에서 사용하기 위한 암호화폐이고, 파퓰러스(Populous)[9]는 블록체인 기반의 송장관리 시스템을 운영하기 위한 암호화폐이다.
저작권관리
신원확인
문서관리
이력관리
문제점과 대안
각주
- ↑ Satoshi Nakamoto, "Bitcoin: A Peer-to-Peer Electronic Cash System", 2008.11.01.
- ↑ 사토시 나카모토가 비트코인 프로그램 소스를 처음 배포한 이메일 보기 : "Bitcoin v0.1 released", 2009-01-10 01:05:49 UTC
- ↑ 사토시 나카모토가 암호학계 메일링 리스트로 보낸 이메일 보기 : "Bitcoin P2P e-cash paper", 2008-11-01 23:16:33 UTC
- ↑ Vitalik Buterin, "A Next-Generation Smart Contract and Decentralized Application Platform", 2013.
- ↑ 논스(nonce)는 블록체인에서 목표값 이하의 블록해시를 찾기 위해 임시로 사용하는 숫자이다. 넌스 또는 난스라고도 한다.
- ↑ 한국정보화진흥원, 〈"블록체인 기반 e-CO(원산지증명서) 발급 교환 서비스" 사업 공고〉, 《조달청 나라장터》, 2018-05-15
- ↑ 한국정보화진흥원, 〈"블록체인 기반의 수출통관 물류서비스 시범사업" 공고〉, 《조달청 나라장터》, 2018-05-30
- ↑ 유병철 기자, 〈(기묘한 재테크) 비체인코인, 물류산업에서 스마트시티 조성까지〉, 《글로벌이코노믹》, 2018-04-20
- ↑ 비트웹 편집국, 〈파퓰러스 - 송장 거래용 블록체인 시스템〉, 《비트웹》, 2018-02-20
참고자료
- Satoshi Nakamoto, "Bitcoin: A Peer-to-Peer Electronic Cash System", 2008.11.01.
- (사토시 나카모토 씀, 임민철 번역, 〈비트코인: 개인-대-개인간 전자 화폐 시스템〉, 2008년 11월 01일)
- Vitalik Buterin, "A Next-Generation Smart Contract and Decentralized Application Platform", 2013.
- (비탈릭 부테린 씀, 이더리움 코리아 번역, 〈차세대 스마트 컨트랙트와 탈중앙화된 어플리케이션 플랫폼〉, 2013년)
- pmg 지식엔진연구소, 〈시사상식사전 - 블록체인〉, 《시사상식사전》, 박문각, 2018-05-14
- 안상욱 기자, 〈용어로 보는 IT - 블록체인〉, 《네이버캐스트》, 네이버, 2014-06-05
- 김인경 기자, 〈(IT열쇳말) 스마트 계약〉, 《블로터》, 2018-02-05