BlockChain

김민석·2022년 4월 1일
0

분산 컴퓨팅 기술 기반의 데이터 위변조 방지 기술

P2P 방식을 기반으로 하여 소규모 데이터드링 체인형태로 무수히 많이 연결되어 형성된 '블록'이라는 분산 데이터 저장 환경에 관리 대상 데이터를 저장함으로써 누구도 임의로 수정할 수 없고 누구나 변경의 결과를 열함할 수 있게끔 만드는 기술

블록에는 해당 블록이 발견되기 이전에 사용자들에게 전파되었던 모든 거래 내역이 기록되어 있고, 이것은 P2P방식으로 모든 사용자에게 똑같이 전송된다. 따라서 거래 내용을 임의로 수정하거나 누락시킬 수 없다. 블록은 발견된 날짜와 이전 블록에 대한 연결고리를 가지고 있으며 이러한 블록들의 집합을 블록체인이라고 칭한다.

수많은 기록을 그냥 한 묶음으로 만들어 버리는 기술

이라고 이해해도 틀리지 않다.

기존에 사용되고 있는 전자화폐(대표적으로 네이버, 카카오 페이같은..)로 거래할 때 중앙 서버에 거래 기록을 보관하는 것과는 달리, 블록체인은 모든 사용자에게 거래 기록을 보여주며 서로 비교해 위조를 막는다.

비트코인이 블록체인이라는 개념을 처음으로 실제로 증명하였고 Ethereum(이더리움)이 스마트 컨트랙트(블록체인 기반으로 체결하는 계약)라는 개념을 처음 구현한 것에서 볼 수 있듯, 블록체인과 암호화폐 사이에는 밀접한 관계가 있다. 하지만 블록체인이 암호화폐에만 사용될 수 있는 기술은 아니다. 암호화폐가 블록체인에 종속적인 것이라고 보면 되고 따라서 블록체인을 응용한 기술이나 서비스가 개발되고 있다.

여담으로 비트코인 창시자 사토시 나카모토(혹시 머스크형 ..?)는 블록체인을 먼저 개발하고 그것을 비트코인에 적용한 것이 아니라, P2P만으로 운영되는 전자 화폐 시스템인 비트코인을 개발하며 발생하는 문제(이중지불을 비롯한..)를 블록체인을 개발, 적용함으로써 해결했다는 점이다. 이는 비트코인을 세상에 공개하며 발표한 백서 제목 "BitCoin: A Peer-to-Peer Electronic Cash System"을 통해 알수있다.


블록체인은 데이터베이스의 일종이라고 볼 수도 있는데 이는 데이터들을 가지고 있는 블록들이 서로 연결되어 있기 때문이다. 그렇다면 다른 데이터 베이스가 블록체인을 대체할 수 있느냐? 라고 묻는다면 그건 어렵다. 블록체인은 다른 데이터베이스와 다른 특징이 있다.

1. 탈 중앙화

위에 작성한 대로 블록체인의 블록에는 이전에 사용자들의 모든 거래 내역이 기록되어 있고, 이것이 P2P 방식으로 모든 사용자에게 똑같이 전송된다. 블록체인은 심지어 개발자라고 하더라도 데이터를 수정할 수 없고, 모두가 데이터베이스의 복제본을 가지고 있기 때문에 누군가가 데이터로 거짓말을 하더라도 자신의 복제본과 비교하여 쉽게 밝혀낼 수 있다는 장점이 있다. 이는 한 개인 혹은 단체가 블록체인을 마음대로 조종할 수 없도록 권력을 분산시킨 것을 의미하나 단점도 존재한다. 이러한 탈 중앙화로 인해 비트코인은 모두가 데이터베이스를 들고 있으므로 절대로 꺼질 수 없다. 비트코인을 끄기 위해서는 비트코인 네트워크를 이루고 있는 모든 컴퓨터를 꺼야하는데 사실상 지구에 존재하는 모든 전기를 차단하지 않는 한 불가능하다.

2.+Append only(추가만 가능)

데이터 베이스는 기본적으로 생성, 수정, 삭제가 되어야 하나 블록체인은 추가만 가능하다. 이는 의외로 장점으로 작용하는데 어떠한 학위나 인증서, 거래내역과 같은 정보들은 누군가 절대로 수정하면 안되는 데이터이기 때문이다.


데이터

블록체인은 데이터베이스이기 때문에 어떤 데이터든 넣을 수 있다. 비트코인의 경우 거래내역이 들어가는 것이고 다른 블록체인에는 해당 블록체인의 관련 정보가 들어가는 것이다.

해시

해시는 수학적인 함수이다. 이 함수는 일방향 함수이고 결정론적이다. 한가지 방향으로만 작동하고 한개의 인풋에는 반드시 한가지 아웃풋이 나온다.

또 한 이 함수는 한 방향으로만 작동하기 때문에 출력값(Output)을 가지고 입력값(Input)을 얻는 것은 매우 힘들다. (양자 컴퓨터가 나오면 가능하다는데 아직까지는 먼 이야기다..)

채굴 (작업 증명)

블록체인은 누구나 아무 정보를 넣을 수 있지만, 해당 블록체인이 작업증명을 사용한다면 누구나 아무 데이터를 넣을 수없다.

채굴자

채굴의 핵심인 채굴자는 블록체인에 들어오려고 하는 모든 데이터를 검증한다.
만약 지인에게 100이더리움을 보내고 싶다면 채굴자는 송금과 관련된 모든 사실여부를 체크한 뒤 이 송금이 유효하다는 것이 증명되고 난 후 채굴자는 내가 보낸 데이터로 블록을 만들어 블록체인에 올리게 된다.

채굴자들은 왜 블록체인을 보호(검증)하는가?

당연히 돈이 되기 때문이다. 채굴자들은 블록을 블록체인에 올릴 때마다 보상을 받게 되는데 많은 사람들이 그 보상을 노리고 채굴자가 된다.

해시값을 바꾸기 위한 필요한 수는 무엇인가?

이러한 문제가 주어졌다고 할 때 단순하고 쉬워보이는 문제일 수 있으나 해시 함수의 특성상 출력값으로 입력값을 알 수 없기 때문에 0부터 무한대까지의 수를 일일이 하나하나 대입해가며 확인해보아야 한다(미쳐가는 그래픽카드 가격..).

profile
web development 주니어

0개의 댓글