"블록체인"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
1번째 줄: 1번째 줄:
'''블록체인'''(blockchain)이란 다수의 거래 기록을 묶어 블록을 생성하고, 여러 블록을 해시 체인으로 연결한 [[알고리즘]]이다. 블록체인 기술을 이용하면 데이터의 위변조가 불가능하여 신뢰할 수 있는 안전한 거래와 데이터 처리를 할 수 있다. 블록체인은 [[비트코인]]과 [[이더리움]] 등 [[암호화폐]]에 사용된 핵심 기술이다. 은행 등 제3의 중개기관이 없더라도 블록체인 기술을 이용하면 누구나 신뢰할 수 있는 안전한 거래를 할 수 있다. 블록체인은 암호화폐뿐 아니라, 온라인 거래내역이 있는 모든 데이터 처리에 활용할 수 있다. 중개기관이 필요 없는 블록체인 기술을 활용함으로써 인류는 새로운 거래 방식과 조직 운영 원리를 바탕으로 과거 인터넷 기술이 가져온 것 이상의 큰 사회적 변화와 번영을 누릴 수 있을 것으로 예측하고 있다.
+
'''블록체인'''(blockchain)이란 다수의 거래 기록을 묶어 블록을 구성하고, 여러 블록을 해시 체인으로 연결한 뒤, 분산 저장하는 [[알고리즘]]이다. 블록체인 기술을 이용하면 데이터의 위변조가 불가능하여 신뢰할 수 있는 안전한 거래와 데이터 처리를 할 수 있다. 블록체인은 [[비트코인]]과 [[이더리움]] 등 [[암호화폐]]에 사용된 핵심 기술이다. 은행 등 제3의 중개기관이 없더라도 블록체인 기술을 이용하면 누구나 신뢰할 수 있는 안전한 거래를 할 수 있다. 블록체인은 암호화폐뿐 아니라, 온라인 거래내역이 있는 모든 데이터 처리에 활용할 수 있다. 블록체인 기반의 물류관리 시스템, 저작권 관리 시스템, 신원확인 시스템, 문서관리 시스템 등 다양한 활용이 가능하다. 중개기관이 필요 없는 블록체인 기술을 활용함으로써 인류는 새로운 거래 방식과 조직 운영 원리를 바탕으로 과거 인터넷 기술이 가져온 것 이상의 큰 사회적 변화와 번영을 누릴 수 있을 것으로 예측하고 있다.
  
 
== 작동 원리 ==
 
== 작동 원리 ==
  
블록체인은 다수의 온라인 거래 기록을 묶어 하나의 데이터 블록(block)을 생성하고, [[해시]](hash) 값을 이용하여 이전 블록과 이후 블록을 마치 체인(chain)처럼 연결한 뒤, 이 정보의 전부 또는 일부를 [[P2P]] 방식으로 전 세계 여러 컴퓨터에 복사하여 분산 저장·관리하는 기술을 말한다. 블록체인의 3가지 핵심 기술은 블록 생성, 해시 체인 연결, P2P 분산 저장이다.
+
블록체인은 다수의 온라인 거래 기록을 묶어 하나의 데이터 블록(block)을 구성하고, [[해시]](hash) 값을 이용하여 이전 블록과 이후 블록을 마치 체인(chain)처럼 연결한 뒤, 이 정보의 전부 또는 일부를 [[P2P]] 방식으로 전 세계 여러 컴퓨터에 복사하여 분산 저장·관리하는 기술을 말한다. 블록체인의 3가지 핵심 기술은 블록 구성, 해시 체인 연결, P2P 분산 저장이다.
  
=== 블록 생성 ===
+
=== 블록 구성 ===
블록체인을 만들기 위해 처음 해야 하는 일은 다수의 거래 기록을 묶어 하나의 블록을 생성하는 일이다.
+
블록체인을 만들기 위해 처음 해야 하는 일은 다수의 거래 기록을 묶어 하나의 블록을 구성하는 일이다.
  
 
거래의 최소 단위는 [[트랜잭션]](transaction)이다. 트랜잭션이란 더 이상 쪼갤 수 없는 업무 처리의 최소 단위를 말한다. 예를 들어, A라는 사람이 B라는 사람에게 1,000원을 지급한 경우, 이 거래 기록은 더 이상 작게 쪼갤 수가 없는 하나의 트랜잭션을 구성한다. 만약 A는 돈을 지불했으나 B는 돈을 받지 못했다면 그 거래는 성립되지 않는다. 이처럼 A가 돈을 지불하는 행위와 B가 돈을 받는 행위는 별개로 분리될 수 없으며 하나의 거래 내역으로 처리되어야 하는 단일 거래이다. 이런 거래의 최소 단위를 트랜잭션이라고 한다.
 
거래의 최소 단위는 [[트랜잭션]](transaction)이다. 트랜잭션이란 더 이상 쪼갤 수 없는 업무 처리의 최소 단위를 말한다. 예를 들어, A라는 사람이 B라는 사람에게 1,000원을 지급한 경우, 이 거래 기록은 더 이상 작게 쪼갤 수가 없는 하나의 트랜잭션을 구성한다. 만약 A는 돈을 지불했으나 B는 돈을 받지 못했다면 그 거래는 성립되지 않는다. 이처럼 A가 돈을 지불하는 행위와 B가 돈을 받는 행위는 별개로 분리될 수 없으며 하나의 거래 내역으로 처리되어야 하는 단일 거래이다. 이런 거래의 최소 단위를 트랜잭션이라고 한다.
12번째 줄: 12번째 줄:
 
인터넷 등 온라인에서 거래가 발생한 경우, 각각의 트랜잭션별로 하나의 거래내역을 구성한다. 이 거래내역은 [[해시]](hash) 함수를 사용하여 암호화된다. 해시 함수란 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑하는 [[알고리즘]]이다. 각각의 거래내역을 텍스트로 표시할 경우 그 길이가 각각 다를 수 있지만, 이것을 해시 함수로 변환하면 항상 일정한 길이의 해시 값이 나온다. 예를 들어, [[SHA-256]] 해시 함수를 사용할 경우, 거래내역이 아무리 짧거나 혹은 길어도 해시 값은 항상 2진수로 256자리(즉, 16진수로 64자리)의 고정된 길이를 가진 값으로 표시된다. 이러한 해시 연산 과정을 거쳐 블록체인 안에서 하나의 트랜잭션에는 반드시 하나의 해시 값이 대응하는 1:1 구조를 이루게 된다.
 
인터넷 등 온라인에서 거래가 발생한 경우, 각각의 트랜잭션별로 하나의 거래내역을 구성한다. 이 거래내역은 [[해시]](hash) 함수를 사용하여 암호화된다. 해시 함수란 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑하는 [[알고리즘]]이다. 각각의 거래내역을 텍스트로 표시할 경우 그 길이가 각각 다를 수 있지만, 이것을 해시 함수로 변환하면 항상 일정한 길이의 해시 값이 나온다. 예를 들어, [[SHA-256]] 해시 함수를 사용할 경우, 거래내역이 아무리 짧거나 혹은 길어도 해시 값은 항상 2진수로 256자리(즉, 16진수로 64자리)의 고정된 길이를 가진 값으로 표시된다. 이러한 해시 연산 과정을 거쳐 블록체인 안에서 하나의 트랜잭션에는 반드시 하나의 해시 값이 대응하는 1:1 구조를 이루게 된다.
  
블록체인에서는 다수의 거래내역을 묶어 하나의 블록을 생성한다. 블록체인 기술을 적용한 대표적인 암호화폐인 [[비트코인]]의 경우 약 10분에 한 번씩 새로운 블록을 생성한다. [[라이트코인]]의 경우 약 2분 30초에 한 번씩 새로운 블록을 생성한다. 각 코인별로 10분 또는 2분 30초 등 미리 정해진 일정한 시간 동안 이루어진 모든 거래내역에 대해 각각의 거래내역별로 각각 하나씩의 해시 값을 매핑하고, 이러한 해시 값을 [[해시트리]](=머클트리) 구조로 구성하여 트리의 최상위에 루트 해시를 생성한다. 결국 루트 해시에는 일정한 시간 동안 이루어진 모든 거래내역들이 하나도 빠짐없이 기록되어 하나의 해시 값으로 변환된 암호화된 값이 저장된다.
+
블록체인에서는 다수의 거래내역을 묶어 하나의 블록을 구성한다. 블록체인 기술을 적용한 대표적인 암호화폐인 [[비트코인]]의 경우 약 10분에 한 번씩 새로운 블록을 구성한다. [[라이트코인]]의 경우 약 2분 30초에 한 번씩 새로운 블록을 구성한다. 거래내역이 많든 적든 상관없이 항상 일정한 시간에 한 번씩 새로운 블록을 구성한다. 하나의 블록에는 하나의 루트 해시 값이 존재한다. 루트 해시를 생성하기 위해 우선 각각의 거래내역별로 각각 하나씩의 해시 값을 매핑하고, 이러한 해시 값을 [[해시트리]](=머클트리) 구조로 구성하여 결국 최종적으로 트리의 최상위 지점에 하나의 루트 해시를 생성한다. 루트 해시에는 일정한 시간 동안 이루어진 모든 거래내역들이 하나도 빠짐없이 기록되어 하나의 해시 값으로 변환되어 저장된다. 이로써 하나의 블록이 구성된다.
  
하나의 블록은 해당 블록의 루트 해시, 이전 블록의 해시, 그리고 논스(nonce)라고 불리는 임시값 등으로 구성되어 있다. 이 값들을 다시 해시로 변환하면 하나의 해시값이 나오는데, 논스라는 임시값에 따라 다양한 해시값이 나올 수 있다. 물론 해당 블록의 루트 해시와 이전 블록의 해시 값은 이미 확정되어 정해진 값을 가지고 있지만, 논스라는 임시값이 달라짐에 따라 해시 연산 결과로 생성되는 해시값도 다양하게 나올 수 있다. 예를 들어 논스가 1인 경우의 해시값과 2인 경우의 해시값은 전혀 다르다. 이 때 새로 생성된 해시값이 프로그램에 의해 미리 정해진 일정한 목표값보다 더 작을 경우에 새로운 블록이 성공적으로 생성된다. 이처럼 특정한 블록에 대해 목표값 이하의 크기를 가진 해시값을 찾음으로써 새로운 블록을 생성하는 행위를 [[채굴]](採掘) 또는 마이닝(mining)이라고 한다.
+
=== 해시 체인 연결 ===
 +
하나의 새로운 블록을 구성한 경우, 마치 체인처럼 이전부터 이어져 내려오던 블록체인의 맨 끝에 이 새로운 블록을 연결시켜야 한다. 새로운 블록을 기존 블록체인의 끝에 연결시키려면, 해당 블록의 이름에 해당하는 해시값을 찾아내야 한다. 새로운 해시값을 성공적으로 찾아내는 경우 새로운 블록이 생성되어 기존 블록체인에 연결된다.
  
=== 해시 체인 연결 ===
+
새로 구성한 블록의 이름에 해당하는 해시를 찾아내는 일은 수없이 많은 시도를 반복해야 하는 매우 힘든 과정이다. 왜냐하면 새로운 블록의 해시는 반드시 프로그램에 의해 미리 정해진 목표값보다 작아야 한다는 조건을 충족해야 하기 때문이다. 예를 들어, 목표 해시값이 00ff32라고 가정하고, 새로 만든 블록의 해시값이 12fa3b라고 하면, 이 값이 목표값보다 더 크기 때문에 블록 생성에 실패하게 된다. 하지만 새로 찾아낸 해시값이 00c3b1이라고 가정하면, 이 값은 목표값보다 더 작기 때문에 새로운 블록의 생성에 성공하게 된다.
 +
 
 +
일반적으로 블록의 해시값은 해당 블록의 루트 해시, 이전 블록의 해시, 그리고 논스(nonce)라고 불리는 임시값 등을 조합하여 생성한다. 해당 블록의 루트 해시와 이전 블록의 해시 값은 이미 확정되어 정해진 값을 가지고 있지만, 논스라는 임시값이 달라짐에 따라 해시 연산 결과로 생성되는 블록 해시값도 다양하게 나올 수 있다. 예를 들어 논스가 1인 경우의 해시값과 2인 경우의 해시값은 전혀 다르다. 이 논스 값을 수없이 바꿔가면서 하나씩 대입하다가 새로 생성된 해시값이 일정한 목표값보다 더 작을 경우에 새로운 블록이 성공적으로 생성된다. 이처럼 특정한 블록에 대해 목표값 이하의 크기를 가진 해시값을 찾음으로써 새로운 블록을 생성하는 행위를 [[채굴]](採掘) 또는 마이닝(mining)이라고 한다.
  
 
=== P2P 분산 저장 ===
 
=== P2P 분산 저장 ===

2018년 6월 1일 (금) 00:47 판

블록체인(blockchain)이란 다수의 거래 기록을 묶어 블록을 구성하고, 여러 블록을 해시 체인으로 연결한 뒤, 분산 저장하는 알고리즘이다. 블록체인 기술을 이용하면 데이터의 위변조가 불가능하여 신뢰할 수 있는 안전한 거래와 데이터 처리를 할 수 있다. 블록체인은 비트코인이더리움암호화폐에 사용된 핵심 기술이다. 은행 등 제3의 중개기관이 없더라도 블록체인 기술을 이용하면 누구나 신뢰할 수 있는 안전한 거래를 할 수 있다. 블록체인은 암호화폐뿐 아니라, 온라인 거래내역이 있는 모든 데이터 처리에 활용할 수 있다. 블록체인 기반의 물류관리 시스템, 저작권 관리 시스템, 신원확인 시스템, 문서관리 시스템 등 다양한 활용이 가능하다. 중개기관이 필요 없는 블록체인 기술을 활용함으로써 인류는 새로운 거래 방식과 조직 운영 원리를 바탕으로 과거 인터넷 기술이 가져온 것 이상의 큰 사회적 변화와 번영을 누릴 수 있을 것으로 예측하고 있다.

작동 원리

블록체인은 다수의 온라인 거래 기록을 묶어 하나의 데이터 블록(block)을 구성하고, 해시(hash) 값을 이용하여 이전 블록과 이후 블록을 마치 체인(chain)처럼 연결한 뒤, 이 정보의 전부 또는 일부를 P2P 방식으로 전 세계 여러 컴퓨터에 복사하여 분산 저장·관리하는 기술을 말한다. 블록체인의 3가지 핵심 기술은 블록 구성, 해시 체인 연결, P2P 분산 저장이다.

블록 구성

블록체인을 만들기 위해 처음 해야 하는 일은 다수의 거래 기록을 묶어 하나의 블록을 구성하는 일이다.

거래의 최소 단위는 트랜잭션(transaction)이다. 트랜잭션이란 더 이상 쪼갤 수 없는 업무 처리의 최소 단위를 말한다. 예를 들어, A라는 사람이 B라는 사람에게 1,000원을 지급한 경우, 이 거래 기록은 더 이상 작게 쪼갤 수가 없는 하나의 트랜잭션을 구성한다. 만약 A는 돈을 지불했으나 B는 돈을 받지 못했다면 그 거래는 성립되지 않는다. 이처럼 A가 돈을 지불하는 행위와 B가 돈을 받는 행위는 별개로 분리될 수 없으며 하나의 거래 내역으로 처리되어야 하는 단일 거래이다. 이런 거래의 최소 단위를 트랜잭션이라고 한다.

인터넷 등 온라인에서 거래가 발생한 경우, 각각의 트랜잭션별로 하나의 거래내역을 구성한다. 이 거래내역은 해시(hash) 함수를 사용하여 암호화된다. 해시 함수란 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑하는 알고리즘이다. 각각의 거래내역을 텍스트로 표시할 경우 그 길이가 각각 다를 수 있지만, 이것을 해시 함수로 변환하면 항상 일정한 길이의 해시 값이 나온다. 예를 들어, SHA-256 해시 함수를 사용할 경우, 거래내역이 아무리 짧거나 혹은 길어도 해시 값은 항상 2진수로 256자리(즉, 16진수로 64자리)의 고정된 길이를 가진 값으로 표시된다. 이러한 해시 연산 과정을 거쳐 블록체인 안에서 하나의 트랜잭션에는 반드시 하나의 해시 값이 대응하는 1:1 구조를 이루게 된다.

블록체인에서는 다수의 거래내역을 묶어 하나의 블록을 구성한다. 블록체인 기술을 적용한 대표적인 암호화폐인 비트코인의 경우 약 10분에 한 번씩 새로운 블록을 구성한다. 라이트코인의 경우 약 2분 30초에 한 번씩 새로운 블록을 구성한다. 거래내역이 많든 적든 상관없이 항상 일정한 시간에 한 번씩 새로운 블록을 구성한다. 하나의 블록에는 하나의 루트 해시 값이 존재한다. 루트 해시를 생성하기 위해 우선 각각의 거래내역별로 각각 하나씩의 해시 값을 매핑하고, 이러한 해시 값을 해시트리(=머클트리) 구조로 구성하여 결국 최종적으로 트리의 최상위 지점에 하나의 루트 해시를 생성한다. 루트 해시에는 일정한 시간 동안 이루어진 모든 거래내역들이 하나도 빠짐없이 기록되어 하나의 해시 값으로 변환되어 저장된다. 이로써 하나의 블록이 구성된다.

해시 체인 연결

하나의 새로운 블록을 구성한 경우, 마치 체인처럼 이전부터 이어져 내려오던 블록체인의 맨 끝에 이 새로운 블록을 연결시켜야 한다. 새로운 블록을 기존 블록체인의 끝에 연결시키려면, 해당 블록의 이름에 해당하는 해시값을 찾아내야 한다. 새로운 해시값을 성공적으로 찾아내는 경우 새로운 블록이 생성되어 기존 블록체인에 연결된다.

새로 구성한 블록의 이름에 해당하는 해시를 찾아내는 일은 수없이 많은 시도를 반복해야 하는 매우 힘든 과정이다. 왜냐하면 새로운 블록의 해시는 반드시 프로그램에 의해 미리 정해진 목표값보다 작아야 한다는 조건을 충족해야 하기 때문이다. 예를 들어, 목표 해시값이 00ff32라고 가정하고, 새로 만든 블록의 해시값이 12fa3b라고 하면, 이 값이 목표값보다 더 크기 때문에 블록 생성에 실패하게 된다. 하지만 새로 찾아낸 해시값이 00c3b1이라고 가정하면, 이 값은 목표값보다 더 작기 때문에 새로운 블록의 생성에 성공하게 된다.

일반적으로 블록의 해시값은 해당 블록의 루트 해시, 이전 블록의 해시, 그리고 논스(nonce)라고 불리는 임시값 등을 조합하여 생성한다. 해당 블록의 루트 해시와 이전 블록의 해시 값은 이미 확정되어 정해진 값을 가지고 있지만, 논스라는 임시값이 달라짐에 따라 해시 연산 결과로 생성되는 블록 해시값도 다양하게 나올 수 있다. 예를 들어 논스가 1인 경우의 해시값과 2인 경우의 해시값은 전혀 다르다. 이 논스 값을 수없이 바꿔가면서 하나씩 대입하다가 새로 생성된 해시값이 일정한 목표값보다 더 작을 경우에 새로운 블록이 성공적으로 생성된다. 이처럼 특정한 블록에 대해 목표값 이하의 크기를 가진 해시값을 찾음으로써 새로운 블록을 생성하는 행위를 채굴(採掘) 또는 마이닝(mining)이라고 한다.

P2P 분산 저장

특징

블록체인을 이용하면 거래의 신뢰성을 보장하는 별도의 중앙 기관이 없더라도, 네트워크에 분산된 다수의 사용자 컴퓨터에 저장된 데이터를 교차 검증함으로써 데이터의 신뢰도를 보장할 수 있게 해 준다.

활용

블록체인 1.0은 비트코인에 적용된 기능으로, 모든 거래내역을 블록체인을 통해 안전하게 장부에 기록하는 역할을 한다. 블록체인 2.0은 이더리움에 적용된 기능으로, 단순 거래내역뿐 아니라 복잡한 계약 내용과 금액, 기간, 조건 등을 모두 기록할 수 있는 스마트 계약 기능을 구현했다.