이미지 출처 : https://twitter.com/ethereumproject
기술 백서와 블로그 등을 참고해서 이더리움에 대해 공부하면서 제 나름대로 이해한 내용을 정리해 보았습니다.
기술 백서에는 아직 제가 이해하지 못하는 부분이 있습니다. 그리고 이 글에서 언급하는 이더리움과 비트코인을 포함하여 블록체인에 대해 제가 잘못 이해한 내용이 있을 수도 있습니다. 이 점 감안하여 읽어 주시길 당부드리고 혹시 내용이 잘못된 부분에 대해 알려주시면 확인하고 정정하도록 하겠습니다.
아래와 같은 순서로 이더리움을 소개해 보겠습니다.
- 1편 : 비트코인
- 블록체인이란 무엇인가?
- 비트코인을 통해 블록체인 이해하기
- 2편 : 이더리움
- 이더리움의 진보된 특성
- 이더리움을 활용한 비즈니스 사례
블록체인이란 무엇인가?
이더리움도 블록체인의 하나이므로 이더리움을 알기 위해 블록체인이 무엇인지 알 필요가 있습니다.
‘분산 컴퓨터 네트워크’, ‘분산 데이터베이스’, ‘분산 원장’ 등 블록체인을 정의하는 다양한 용어가 있습니다. 블록체인을 보는 관점에 따라 다양한 정의가 있을 수 있습니다. 왜 이러한 용어로 정의되는지 비트코인을 예로 들어 설명해 보겠습니다.
비트코인을 통해 블록체인 이해하기
비트코인을 예로 드는 이유는 비트코인이 최초의 블록체인 구현체이기도 하고, 비트코인의 특성을 이더리움도 그대로 갖고 있기 때문입니다. 비트코인을 이해하는 것은 곧 이더리움을 이해하는 과정입니다. 비트코인을 1세대 블록체인, 이더리움은 여기에서 진보한 2세대 블록체인 기술이라고 부르고 있습니다.
비트코인 기술 백서는 비트코인을 설명하고 있는 중요한 문서입니다.
원문 : https://bitcoin.org/bitcoin.pdf
기술 백서의 제목에 비트코인 블록체인이 구현하고자 하는 것이 정확하게 표현되어 있습니다.
비트코인은 P2P 전자 화폐 시스템입니다.
비트코인의 특성을 하나씩 짚어보면서 이해해 나가겠습니다.
비트코인 블록
블록은 비트코인의 거래 내역이 저장되는 단위입니다. 10분 간격으로 블록을 생성하여 이전 블록에 이어서 사슬처럼 연결해 나갑니다. 블록체인이라는 용어는 여기에서 비롯된 것입니다.
블록 안에는 10분 동안 발생한 거래 목록이 저장됩니다.
이미지 출처 : https://en.wikipedia.org/wiki/Blockchain
그림에서 가장 아래의 녹색 블록이 최초의 비트코인 블록(제네시스 블록)입니다.
녹색 블록에서 위쪽 방향으로 이어 나가고 있는 검은색 블록 체인이 메인 체인입니다. 메인 체인은 유효한 블록을 의미합니다. 비트코인은 가장 긴 체인을 유효한 블록으로 채택하도록 설계되어 있습니다. 이것은 분산합의를 구현하는 아주 중요한 규칙입니다.
보라색 블록은 채굴 경쟁에서 탈락한 유효하지 않은 블록입니다. 비트코인은 채굴이라고 하는 해시 파워(CPU 연산 능력) 경쟁을 통해 생성됩니다.
비트코인 트랜잭션(거래기록)
아래 그림은 블록 안에 들어있는 세 건의 비트코인 거래를 간략하게 표현한 것입니다.
이미지 출처 : http://believeinbitcoin.com/satoshis-bitcoin-whitepaper/
그림에서 두 번째 트랜잭션(가운데 네모)은 소유자1이 소유자2에게 비트코인을 지불(이체)하는 거래를 나타냅니다.
거래기록에 포함되는 정보 중에 공개키(Public Key)가 있는데, 이것은 받는 사람의 지갑 주소라고 생각하시면 됩니다. 은행의 계좌번호 같은 것입니다.
또한 거래기록에는 거래의 유효함을 입증할 이전 거래(그림에서 첫 번째 트랜잭션)에 대한 참조를 갖고 있습니다. 여기에 보내는 사람(소유자1)의 비밀키(Private Key)로 서명함으로써 자신이 이체하는 유효한 거래임을 증명합니다. 이후에 누구든지 소유자1의 공개키를 이용하여 소유자1의 서명을 검증할 수 있습니다.
같은 방법으로 세 번째 거래도 두 번째 거래를 이용하여 유효성이 증명됩니다.
디지털 화폐의 약점인 위변조와 이중지불(화폐 복제) 문제를 해결하기 위해 비트코인은 잔고 뿐만 아니라 이전의 거래기록 전체를 저장하고 있고 누구든지 이것을 열어서 검증할 수 있습니다.
비트코인은 거래기록의 무결성을 보장하기 위해 공개키 기반 구조(PKI) 및 해시(Hash) 알고리즘을 사용하고 있습니다. 이렇듯 암호화 기술을 이용하여 거래의 무결성이 보장되기 때문에 비트코인을 암호화폐라고 부릅니다.
비트코인 지갑 주소(공개키)는 숫자와 알파벳으로 이루어진 34자 난수 문자열입니다. 지갑의 주인이 누군지 알 수 있는 개인정보는 없습니다.
비트코인 네트워크
비트코인은 클라이언트/서버 기반이 아니라 P2P(Peer to peer) 네트워크를 사용합니다.
이미지 출처 : https://semanticblocks.wordpress.com/2016/03/29/multilayered-architecture-on-ethereum/
P2P 네트워크는 영화나 소프트웨어 파일을 공유하던 토렌트를 떠올리시면 이해하기 쉽습니다. 토렌트 프로그램을 이용하여 내가 받고 싶은 파일을 인접한 노드로부터 다운로드 받기도 하고, 내가 갖고 있는 파일을 필요로 하는 다른 노드에게 전송하기도 합니다. 모든 노드가 클라이언트이자 곧 서버인 셈입니다.
P2P 네트워크를 통해 비트코인 블록과 거래기록이 전체 노드로 전파됩니다.
이미지 출처 : http://www.csc.villanova.edu/~mdamian/Research/CCF0728909.html
비트코인 네트워크는 분산 네트워크이기 때문에 단일 공격 지점이 없습니다. 해킹이나 DDoS 공격을 통해 시스템을 붕괴시키려면 전체 노드를 일시에 공격해야 합니다. 현실적으로 불가능한 일입니다.
또한 수수료 시스템 때문에 어지간한 부자가 아니라면 거래량 폭탄을 투하하여 비트코인 네트워크를 마비시키는 것도 어렵습니다.
이미지 출처 : https://bitnodes.earn.com/
비트코인 네트워크는 전세계 1만 1천 여개 노드로 구성된 초국적, 초국경의 거대한 분산 컴퓨팅 네트워크입니다.
작업 증명(Proof of Work)
비트코인은 작업 증명(Proof of Work)이라는 분산합의수단을 통해 중앙의 신뢰할 수 있는 중개자가 없어도 P2P 신뢰 네트워크를 기술적으로 구현하고 있습니다.
신규 블록을 생성하기 위해 비트코인 네트워크의 전체 노드가 해시 파워 경쟁을 합니다. 블록을 가장 먼저 생성한 노드에게는 보상으로 비트코인이 주어집니다. 그래서 신규 블록을 생성하는 작업을 금을 캐는 상황과 비슷하기 때문에 채굴이라고 부릅니다. 이 글을 쓰고 있는 현재 시점(2018년 3월)에는 채굴 보상으로 12.5 BTC를 받게 됩니다.
채굴에 참여하는 수 많은 노드가 있기 때문에 비트코인 네트워크가 유지됩니다.
비트코인이 작업 증명 시스템으로 사용하고 있는 해시캐시 알고리즘은 예를 들면 이런 겁니다.
이미지 출처 : http://notwork.tk/risij/bitcoin-hash-formula-1556.php
“앞자리에 0이 10개 이상으로 시작하는 해시 출력값이 나오는 Nonce(해시 입력값)를 찾으시오.”
이와 같은 문제를 가장 빨리 푼 노드에게 블록 생성 권한이 주어집니다.
해시 함수의 특성상 해시 출력값으로 입력값을 유추해 낼 수 없습니다. 그저 조건에 맞는 해시 출력값이 나올 때까지 Nonce를 증가시키며 엄청나게 많은 횟수의 해시 연산을 반복해야 합니다.
이미지 출처 : https://www.cryptocompare.com/mining/bitmain/antminer-s9-miner/
비트코인 채굴에 최적화된 전용 채굴기까지 나왔습니다.
이미지 출처 : https://spectrum.ieee.org/computing/networks/why-the-biggest-bitcoin-mines-are-in-china
채굴 공장의 모습입니다.
비트코인의 이중지불 또는 거래 내역을 위변조하기 위해서는 이런 전세계 채굴 공장 또는 채굴 풀의 해시 파워를 압도해야 합니다.
설사 공격자가 그런 해시 파워를 가졌다고 하더라도 거래 내역을 위변조하여 자신이 지불했던 비트코인을 도로 빼앗는 것보다는 정직한 노드로 참여하여 지속적으로 채굴 보상을 가져가는 것이 더 유리합니다. 거래 내역을 위변조 한다는 것은 비트코인의 유효성을 해치는 것이고 이는 곧 비트코인의 급격한 가치 하락으로 이어질 것이기 때문입니다.
작업 증명은 신뢰할 수 없는 분산된 노드 간에 서로 합의를 끌어낼 수 있는 기술적인 방법인 셈입니다.
투명성
비트코인은 누구나 가질 수 있고 아무 때나 열어볼 수 있지만 아무도 조작할 수 없는 거래 장부입니다. 거래 장부 뿐만 아니라 소스코드도 공개되어 있어서 어떻게 만들어지는지 들여다볼 수도 있습니다.
이상으로 <이더리움 소개 1편 : 비트코인>을 마칩니다. 제목이 이더리움 소개이지만 비트코인에 대한 내용이네요. 이더리움을 알아 가기 위한 과정으로 이해해 주시기 바랍니다.
2편은 아직 미완성입니다. 완성하는 대로 또 포스팅하겠습니다.
500 free charitable coin sign up with ethereum address
https://ColourCoin.org/345304 $10 worth free
공짜 코인 500개 엄청난 거
오 여기서 뵙네요! 보팅 누르고 갑니다 :)
오~ 멋쟁이 땡큐~ ^^