조이 생각

반응형

(본 포스팅 내용은 현재 저자 수준에서 이해한 것을 기반으로 작성한 내용이므로 정정해야할 부분들 댓글로 달아주시면 감사하겠습니다.)

책을 읽어나가다 보니, part1의 내용을 보기 전에 블록체인의 특징에 대해 먼저 알았다면, 더 이해하기 쉬웠을 거라는 생각이 든다. 블록체인이 어떤 특징을 가진 기술이며, 어떻게 관리가 되는 것인지 이번 포스팅에서 조금 살펴볼 수 있을것 같다.


시간별로 정렬된 블록

거래 기록이 '블록'이라는 단위로 정리돼 시간별로 이러져 있는 것이 블록체인의 특징이다. 

- 한 블록에는 앞의 블록과 뒤의 블록이 연결되는 연결정보가 포함되어 있다.

- 따라서, 앞의 블록이 변경되면 뒤에 이어지는 모든 블록을 다시 생성해야 한다.

통장을 예로 들어볼 수 있을 것 같다. 여러 거래를 통해 우리의 통장에 거래 내용이 기록이 돼고 통장 하나에 기록이 다 차게 되면 다음 통장으로 넘어간다. 다음 통장으로 넘어갔다고 해서 이전 기록과 연관이 없는 것은 아니다. 통장도 이전 기록이 변경된다면 잔고가 변경되기 때문에, 변경된 기록 이후의 기록을 다시 출력해야할 것이다. 

통장과는 연결정보가 다른 개념이겠지만, 이처럼 블록체인도 앞의 블록과 뒤의 블록이 연결되는 연결 정보가 포함되어있다. 이 장부를 모든 사람이 공유하고 있다는 분산 원장 개념에서 어떤 거래에 대해 객관적인 사실 확인이 가능하다.


분산형 원장 구조

해당 블록체인 네트워크에 참가한 모든 사람이 모든 거래를 기록한 원장을 소유한다. 앞서 말한 것 처럼, 객관적 사실 확인이 가능하기 때문에 거래의 투명성이 있다는 특징이 있다. 이는 거래 기록을 관리하는 중앙 시스템이 필요 없으며, 블록체인에 거래 기록을 추가할 때, 네트워크에 참여하고 있는 모든 사람으로부터 타당성을 검증받는 절차로 부정 거래를 방지할 수 있다. 

책에 정리된 분산형 원장 구조 측면의 블록테인 특징은 다음과 같다.

- 변조가 어려움

- 거래 기록의 작성 시점을 객관적으로 알 수 있음

- 분산형 시스템이기 때문에 큰 중앙 시스템이 필요 없음

- 거래 기록의 타당성을 모든 참가자에게 검증받음


블록체인의 이러한 특징들이 지금은 장점으로 보일 수 있지만, 이 특징들이 완벽히 담보되고 있는지에 대한 논란의 여지가 있다고 한다. 아직 발전중인 기술이며, 필자가 들은 바로는 블록 사이즈의 한계, 네트워크 상에서의 합의 절차로인한 지연 등 아직 해결해 나가야할 문제들이 존재하고 있다.


블록체인 적용 사례 - 결재 및 거래

1. 가상 화폐 사례 비트코인

비트코인은 거래를 블록체인에 등록하고, P2P(Peer to Peer)* 네트워크를 이용한 PoW(Proof of Work)* 작업으로 유지하는 시스템이다. part1에서 비트코인은 10분에 하나의 블록을 생성하도록 만들어 졌다고 했다. 그 과정을 살짝쿵 살펴보면 다음과 같다. 


모든 블록은 해당 블록의 해시값이전 블록의 해시값을 가지고 있으며, 여기서 블록의 연결된 정보를 발견할 수 있다. 

'해시(Hash)'란 암호화 방법중 하나로 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. (출처 : 위키백과) 즉, 어떤 데이터가 입력되어도 특정 길이의 값으로 만들어내는 암호화 함수이다.

입력 값 : 2018.10.03 오늘은 개천절

해시 값 : A43E3D505C1BDCF65083B351657BAE80

(여기서 해시 값을 만드는 알고리즘은 MD5를 사용했다.) 날짜 하나를 바꿔서 다시 해시값을 만들어 보면

입력 값 : 2017.10.03 오늘은 개천절

해시 값 : B83619AD7FDC38EB58ED2B9F75ECCC92

2018 에서 2017로 숫자 하나를 바꿨는데도, 해시값이 완전히 다른 값이 된 것을 볼 수 있다. 입력 값이 조금이라도 변경되면 해시값의 결과 또한 바뀌게 된다. 따라서 장부 조작이 어려운 것이다.




* P2P(Peer to Peer) : 컴퓨터의 쌍방향 전송 시스템, 중앙 서버 없이 컴퓨터와 컴퓨터를 연결 (출처 : https://namu.wiki/w/P2P)

* PoW(Proof of Work) : 작업증명 알고리즘은 합의 알고리즘 중 하나이며, 어떤 작업에 대한 입증이 합의 되었을 때 서비스가 이루어지는 것을 말한다.

반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band
loading