쉽게 이해하는 블록체인 기술(1)
블록체인 기술에 대해서 쉽게 설명하겠습니다.
먼저 암호화폐는 크게 1) 암호, 2) P2P 네트워크로 구성됩니다.
아래 그림과 같이 외워두시면 좋습니다.
암호화폐 = 암호 + P2P 네트워크 기술
나중에 보겠지만, P2P네트워크 때문에 블록체인 기술이 필요하게 됩니다.
먼저, 암호화폐에서 암호는 1) 디지털 서명, 2) 암호화 해시함수를 사용합니다.
이 두개만 외우시면 됩니다.
첫째로, 디지털 서명은 비밀키와 공개키로 구성된 공개키(비대칭) 암호를 사용하는 것이 중요합니다.
디지털 서명은 거래에 이를 추가하여 소유권을 입증하는 목적으로 사용되고, 이것은 온라인에서 계약을 체결하는 방법과 같습니다. 그래서 스마트 계약(자율실행 계약)이라는 용어가 나오는 것입니다.
둘째, 암호화 해시함수는 1) 거래 id(거래 해시), 2) 블록 id(블록해시)를 만들 때 사용됩니다.
이 두개만 알면 됩니다.
해시 함수는 임의 개수의 입력을 일정한 길이의 출력을 만드는 알고리즘입니다.
SHA256은 출력으로 256비트 길이의 고정된 출력을 만듭니다. 실제 우리가 보는 것은 4비트로 된 니블로 보이기 때문에 이것은 64개의 숫자와 문자로 구성됩니다.
그리고 암호화폐 지갑은 개인키를 저장하는 저장소이고, 암호화폐에서 공개키는 개인키로 부터 만들기 때문에 실질적으로 개인키만 저장합니다.
암호화폐 지갑과 공인 인증서는 기술은 같으면서도 다릅니다.
즉 이 둘은 공개키 암호로 같은 기술을 사용하지만, 발행방법이 다릅니다.
목표는 동일하게 디지털 서명을 제공하여 계약 체결이 되도록 부인 방지 및 본인 인증 기능을 제공합니다.
공인 인증서는 아래 그림과 같이 인증기관(CA), 등록기관(RA), 검증기관(VA) 등이 인증서를 관리합니다.
이에 비해서 암화화폐 지갑은 개인이 개인키를 자유롭게 생성하고 관리하는 점만 다르고 기술은 같습니다.
두번째 주제인 P2P네트워크 입니다.
먼저 비교를 위해, 클라이언트-서버 모델을 보겠습니다.
아래 그림에서 서버는 네이버 서버로 생각할 수 있습니다.
클라이언트인 내 컴퓨터에서 네이버 서버에 특정한 자료를 요구하면, 서버가 이에 대한 자료를 내 컴퓨터에 제공하고 이를 내 컴퓨터가 이를 화면에 표시하는 구조입니다.
이때 서버의 역할은 서비스의 제공을 위한 DB를 저장하고 관리하는 것입니다.
이에 비해서, P2P 네트워크의 형태는 아래 그림과 같습니다.
P2P 네트워크는 다수의 피어(노드)로 구성되고, 각 피어는 일부의 피어들과 연결이 되는 것이 가장 큰 특징입니다.
피어는 동일한 권한의 참가자를 말합니다.
P2P 네트워크도 클라이언트-서버 모델과 같이, DB 관리가 주목적입니다.
또한 이것은 은행과 같은 3자의 중개가 필요 없는 것이 가장 큰 특징입니다.
이와 같이 암화폐는 1) 암호(디지털 서명), 2) P2P 네트워크로 구성됩니다.
이 둘을 합치면, 이 기술은 (P2P 네트워크를 사용하여) 중개자 없이 (디지털 서명으로) 당사자 간에 직접적인 계약이 가능한 것이 가장 큰 특징입니다.
이에 비해서 기존 오프라인의 계약은 중개자를 통해서 계약을 주로 진행을 하며, 그 예는 부동산 계약 등이 있습니다.
암호화폐는 두가지로 사용되고 있습니다.
- 지불 거래
- 스마트계약(자율실행 계약)
미래에는 3자를 없애고 당사자간에 계약을 체결할 수 있는 자율실행 계약이 좀더 보편화될 것으로 보입니다.
또한 EOS는 스마트 계약인 DApp을 보다 쉽게 구현할 수 있는 플랫폼을 제공하는 것이 목표입니다.
그렇다면, 왜 지금까지 P2P 네트워크를 사용하지 않았을까요?
그것은 디지털복사 문제 때문입니다.
즉 P2P 네트워크에서 하나의 DB를 유지하는 문제 때문입니다.
디지털 기록은 복사를 하면, 원본과 복사본을 구별하지 못하는 매우 특이한 특징이 있습니다.
이런 특성은 현실 세계에서는 거의 문제가 되지 않는 특징이며, 예로 현실 세계에서 복사기로 문서를 복사를 하여도 큰 문제를 발생시키지 않습니다.
하지만 디지털 기록은 복사를 하면 이를 구분할 수가 없기 때문에 진본이 2개가 존재하는 상황이 되는 아이러니가 발생합니다.
이 문제를 '이중지출 문제'라고 합니다.
즉, DB가 두개가 존재하면, 두번 사용할 수 있습니다.
이를 해결하기 위한 기존 방법은 은행과 같은 3자가 DB를 혼자 관리를 하는 것입니다.
혼자 하나의 DB를 관리하니, 이중지출 문제가 발생하지 않습니다. 또한, 은행과 같은 제 3자가 DB를 관리하므로 이를 '3자 문제'라고도 합니다.
이런 상황에서 비트코인이 이 디지털 복사 문제를 최초로 해결한 것이 가장 큰 기술적 진보입니다.
블록체인 기술은 아래 그림과 같이, P2P 네트워크에서 하나의 DB를 유지하는 기술입니다.
이 개념이 아주 중요합니다. 아래 그림을 반드시 암기하세요..
구체적으로 첫째, p2p 네트워크 전체로 볼때는 하나의 블록체인(DB)를 유지하는 기술입니다.
두번째, 피어 입장에 볼 때는 블록체인을 복제하는 시스템이며, 즉 모든 피어가 동일한 DB를 가지(유지하)도록 싱크시키는 DB 복제 기술입니다.
이를 정리하면 아래와 같습니다.
그렇다면, P2P 네트워크에서 하나의 블록체인을 유지하는 기술이라는 것이 무엇일까요?
이를 위해서는 다수의 피어(채굴자)들이 하나의 DB를 유지하도록 합의하기 위한 합의 알고리즘이 필요합니다.
합의는 다수의 채굴자들이 하나의 DB를 유지하기 위해서 필요한 것이지요..
아래의 그림을 잘 기억하시기 바랍니다.
블록체인 기술 = P2P 네트워크 + 하나의 블록체인(DB) 유지
아래는 합의 알고리즘이 필요한 이유를 말해줍니다.
즉, 블록체인 기술은 다수의 피어가 P2P 네트워크를 구성하고 이들이 합의 알고리즘으로 하나의 DB인 블록체인을 유지하는 기술입니다.
이것이 핵심입니다.
따라서 블록체인 기술의 핵심은 합의 알고리즘에 있습니다.
다음 자료는 나중에 올리겠습니다.
쉽게 이해하는 블록체인 기술(2)
https://steemit.com/kr/@loum/6knvph-2
좋은 자료 잘보고 갑니다. 개념을 파악하는데 큰도움이 됐습니다
이렇게 이해하기 쉽게 설명해 주셔서 감사합니다
오 좋은 글 잘 읽고 갑니다 ㅎㅎ
좋은 글 잘보고 갑니다.
공부가 되네요. 감사합니다 :)
* 밋업자료
2). 쉽게 이해하는 블록체인 기술(2): https://steemit.com/kr/@loum/6knvph-2
3). 쉽게 이해하는 블록체인 기술(3): 합의 알고리즘: https://steemit.com/kr/@loum/3
4). EOS(1): 스팸 공격 방어방법: https://steemit.com/kr/@loum/eos-1
5). EOS(2): 채굴자원 확장문제: https://steemit.com/kr/@loum/eos-2
좋은글 잘보갑니다
감사합니다
오 쉬워서 보기 좋습니다. 좋은 자료 감사합니다.
쉽게 설명해주셔서 감사합니다. ^^
좋은정보 감사합니다