본문 바로가기
기타_/알쓸신잡

[알쓸신잡] 새로운 화폐 비트코인? BitCoin!

by 낭람_ 2020. 6. 29.
반응형

비트코인의 등장배경!

2007 ~ 2008년 세계 금융위기때 기존 금융 체계에 대한 불신이 확대 되며 비트코인이 나오게 되었다.

 

기존 금융 시스템의 문제는 다음과 같다.

- 물리적인 화폐는 물리적인 위치를 이동시킴으로써 소유권을 이전할 수 있다

- 디지털 자산은 물리적인 화폐와 달리 위치의 이동으로 소유권 이동시킬 수 없다

- 왜냐하면 디지털 데이터는 복사를 통해 전달되는데, 이 때 원래 저장소에서 삭제를 강제할 수 없기 때문이다

- 따라서 전자 상거래를 위해서는 디지털 자산의 이동을 보장하는 신뢰할 수 있는 주체가 필요하다.

 

신뢰 주체로 인해 발생하는 문제점에는 개인 정보 및 보안 문제, 계좌 개설, 복잡한 절차, 점검 시간, 해외 송금, 지급 준비율 등의 문제점이발생하게 된다.

 

신뢰할 수 있는 주체란? 제 3세계 국가, 독재 국가를 의미 한다.

 

그러면 그냥 P2P로 거래를 하면 되는거 아닐까?

- P2P로 거래를 하면 이중 지불의 문제가 생기게 된다.

 

P2P 전자 상거래의 문제점 (이중 지불의 문제)

- 소유권의 증명은 '전자 서명' 방식을 통해 증명할 수 있다.

- 그러나 한 사람이 여러 개의 서로 양립할 수 없는 거래를 발생시키는 것은 막지 못한다.

    - 하나의 코인으로 서로 다른 사람들에게 동시에 전송하는 경우

- 이러한 문제를 이중 지불이라 한다.

 

비트코인의 역사

Satoshi Nakamoto가 비트코인 논문을 공개했다.

2009.01.03 비트코인의 첫 번째 블록이 생성된다. (역사의 시작)

    - 재무장관, 은행에 두 번째 구제금융 임박 이라는 문구가 새겨져 있음

최초의 결재(2010.05.22)

- 1만 비트코인으로 피자 두판을 교환한 사건

- 이러한 일로 05.22는 Bitcoin pizza Day가 되었다

 

비트코인의 기술적인 이해에 앞서 P2P 네트워크와 분산 원장에 대해 알아보자.

 

P2P 네트워크 (Peer to Peer)

- 1대1 로 네트워크 자원을 공유하는 네트워크

 

분산 원장

- 신뢰 주체 대신에 P2P 네트워크를 구축하고 모든 참여자들이 원장을 저장 및 공유

- 블록체인에선 각 참여자는 거래들을 블록이라는 단위로 묶어서 처리하고 보관

- 네트워크 참여자가 같은 원장을 공유하고 과반수가 정직하다면 원장은 조작될 수 없다

- 따라서 분산 원장 블록체인이 안전하다

- 분산 원장을 할때 이 블록들이 사슬(체인)형태로 연결되어 있다고 표현을 해서 블록체인이 나오게 되었다.

 

합의 알고리즘(Consensus Algorithm)

- 분산된 노드들끼리 올바른 하나의 원장을 이끌어내는 규칙에 대한 알고리즘

    - 이중 지불 문제가 발생하면 어떤 거래가 맞는걸까?

    - 체인이 두 개 이상으로 나눠진다면 어떤 체인이 맞는걸까?

 

비트코인의 합의 알고리즘은 나카모토 컨센서스(Nakamoto Consensus)

작업 증명

- 네트워크 참여자는 유효성을 검증한 거래들을 모아 블록을 만든다

- 네트워크 참여자는 체인에 다음 블록을 연결하기 위해 복잡한 컴퓨팅 문제를 풀어야한다.(채굴)

    - 해당 문제의 검증은 매우 간단.

- 작업 증명을 완료하여 새로운 블록을 연결한 노드는 다른 노드들에게 해당 블록을 전파한다.

- 전파받은 노드는 상대의 체인을 검증한 후, 자신의 체인과 비교하여 체인 선택 규칙에 따라 원장을 업데이트한다.

 

체인 선택 규칙

- 블록 및 거래는 전파되는데 시간이 걸린다

- 우연히 두 개 이상의 노드들에 의해 멀리 떨어진 곳에서 블록을 생성되어 전파된다면 각 노드들이 받은 블록들이 서로 달라져서 일관성(consistency)이 깨지게 된다.

- 비트코인과 이더리움은 가장 긴 체인을 선택한다.

 

채굴 난이도

- 전체 네트워크의 컴퓨팅 파워를 투자하였을 때 약 10분이 걸리는 난이도로 조정된다.

    - 네트워크 참여자가 많아질수록 채굴의 난이도는 증가하므로, 원장의 안정성이 증가한다.

 

확률의 완결성

- 비트코인의 경우 6블록이 지나면 확률적으로 완결성을 지닌다

    - 이전 원장을 수정하려면, 전체 네트워크를 상대로 체인을 역전해야한다.

    - 6블록이 지나면 확률적으로 수정이 불가능하다.

 

보상

- 블록 채굴에 성공한 참여자는 '비트코인'이라는 블록체인 상 화폐를 보상으로 지급 받는다.

- 해당 보상은 채굴 유인이 되어 네트워크 안정성을 높이는 촉매가 된다.

 

비트코인의 거래

공개 키 암호화 방식을 사용하면 전자 서명을 만들 수 있다.

- 해시 함수를 이용해서 트랜잭션의 해시 값을 구한다.

- 사용자는 서로 암호학적으로 짝지어진 공개키와 비밀키를 가지고 있다.

- 해시 값을 비밀 키로 암호화하여 서명(signature)을 만들고 트랜잭션과 함께 전송한다.

- 트랜잭션을 받은 주체는 같은 해시 함수를 사용해서 트랜잭션의 해시 값을 구하고, 전자 서명을 공개 키로 복호화한다.

- 두 값을 비교하여 일치하는지 확인하면 자산 소유자의 신원을 확인할 수 있다.

 

비트 코인의 거래는  사용되지 않은 이전 거래(UTXO)들의 조합이다.

- 이전 자신의 공개키로 서명되어 전달된 거래의 소유권을 증명할 수 있다

- 이를 통해 새로운 거래를 생성한다

- 거래를 블록에 담아 채굴자가 블록체인에 기록하며, 차익은 수수료로 채굴자에게 지급된다

즉, 사람들이 거래를 하면 채굴자가 블록체인에 거래 내용을 기록하며 차익은 채굴자에게 지급되게 된다.

 

블록(block)과 트랜잭션(Transaction)

- 블록체인은 블록 단위로 기록되고 다른 노드들과 동기화되는 상태(state)와 상태의 전이(transition)를 일으키는 트랜잭션(transaction)으로 구성된다.

- 블록체인은 디지털 자산을 다루는 시스템이므로 주로 상태는 잔고(balance)정보를 의미하고 트랜잭션은 자산(asset)소유권의 이동을 표현한다.

- 블록은 참여자들이 트랜잭션에 의해 변화한 상태를 서로 공유하는 단위

- 두 개의 블록이 공존하는 상태를 포크(fork)라고 하며, 이러한 상태가 발생하지 않도록 해야 한다.

- 블록 상태는 이전까지 블록에담겼던 모든 트랜잭션들의 수행 결과이다

 

 

 

반응형

댓글