1. 블록체인 역사
• 최초의 블록체인 기반 시스템 : 비트코인
–사토시 나카모토는 세계 최초의 암호화폐인 비트코인(bitcoin)을 만듦
–블록체인 역시 사토시 나카모토가 처음 제안함
–이를 위해 2008년 11월 1일, 〈비트코인 : 개인 대 개인의 전자화폐 시스템〉이라는 9 장의 논문을 작성함
–논문은 자신의 제안을 구현한 최초의 블록체인 관리 프로그램 ‘비트코인 코어(Bitcoin Core)’ 임
–논문은 https://bitcoin.org/bitcoin.pdf 에 업로드되어 있으며 누구나 열람이 가능함
–사토시 나카모토는 자신의 아이디어를 담은 논문을 내려 받을 수 있는 사이트 주소를 수백 명의 암호학 전문가들에게 전자우편으로 보냄
–전송한 메일에는 ‘저는 제3자의 신용보증인이 필요 없는 완전한 피투피(P2P) 전자 화폐 시스템 개발을 해왔습니다.’ 라는 내용과 함께 비트코인 백서 링크가 첨부되어 있음
–논문은 비트코인과 블록체인의 기본 구조에 대해 설명함
–비트코인 코어는 암호화폐인 비트코인을 생성하고 비트코인 거래를 블록체인 형태로 기록 하도록 설계됨
–블록체인 기록을 검증한 대가로 주어지는 보상이 바로 새로 생성된 비트코인 임
–이렇듯 그는 블록체인 기술을 적용한 최초의 암호화폐인 비트코인(Bitcoin) 을 개발하고, C++ 언어로 작성한 소스 코드를 배포함
–배포 과정에서, P2P 네트워크를 이용하여 디지털 화폐에 대한 이중 지불 문제를 처음으로 해결함
–2009년도에 비트코인 코어 프로그램이 공개 되었으며 비트코인이 처음으로 발행됨
–2009년 1월 3일, 오후 6시 15분 5초에 비트코인의 최초 블록인 제네시스 블록이 탄생함
–이로 인해 50개 비트코인이 처음으로 채굴 되었음
–사토시 나카모토는 0번 블록에 ‘2009년 1월 3일, 은행을 위한 두 번째 긴급 구제 방안 발표 임박’이라는 메시지를 기록함.
이는 중앙화 된 자본주의 시장의 폐해를 비트코인으로 해결하겠다는 의지를 뜻하고 있음
–사토시 나카모토는 자신이 논문을 올려둔 사이트와 전자우편으로 다른 사람들과 소통하며 비트코인 네트워크를 확장함
–이후 사이트(https://bitcoin.org/)에 개설한 IRC 채팅 채널은 비트코인 포럼이라는 이름으로 공식화 됨
※기억해야할 4가지 요소!
1. Decentralization (탈중앙화)
기존 은행시스템-센트럴된 시스템을 바꾸고자했다.
예를 들어, 클라이언트-서버 방식 -> 예를 들어, 구글에 연결되어 쓰는 구조
모든 정보나 데이터가 하나의 중앙화된 서버에 집중된다.
그 방식을 비트코인에서는 탈피하고자했다.
"왜 블록체인을쓰냐? "에 대한 질문으로 첫번째로 나올 수 있는 대답이 '탈중앙화' 를 들 수 있다. (<-- 면접질문으로 나올 수 있음!)
중앙 통제 시스템이 없는 peer to peer 네트워크를 쓴다.
마이닝을 하면서 마이너들이 서버쿼티 역할을 대신 해준다.
그래서 원래 서버가 하는 일들을 대신 해주니까 마이너들한테 보상을 해준다.
그리고 이 보상을 비트코인으로 주는 것이다.
2. Double spending
이중 지불 문제를 방지한다.
ex) A-> B 한테 10,
A-> C 한테 10
10만원밖에 없으면 B, C한테 둘 다 10만원 못보낸다.
-> 비트코인에서는 이걸 막아놓는다.
마이너라는 사람이 이 두개를 받아서 검증을 한다.
3. Blockchain
거래 원장은 네트워크에 공개되어 각 노드들이 공유한다.
네트워크의 각 노드들(miner)이 거래 원장을 검증할 수 있는 규칙이다.
'거래 원장' <-- block에 해당
Q. 그럼 이 블록에는 뭐가 담겨져있나?
=> 이 안에는 peer to peer network에서 사람들이 보내는 송금 내용이 담긴다.
그런걸 용어로 트랜잭션이라고 한다.
이런 트랜잭션들이 p to p 네트워크상에 브로드캐스팅(전파)된다.
모든 내용들이 네트워크에 공개된다.
보내는 트랜잭션들과 이러한 트랜잭션들이 담긴 블록이라는 데이터가
p to p 네트워크에 누구나 확인할 수 있도록 공개된다.
=> 그래서 블록체인의 장점이나 단점은 "투명성"
다만 암호화돼서, 송금기록은 확인가능하지만 누가 누구한테 보내는 건지는 알 수 X
그래서 완전 투명이라기보다는 "익명성"과 "투명성"이 섞인다.
확률에 대한 데이터는 서버. 회사에서 가지고 있다. 그 내용을 공개를 안하고있다.
=> 그게 서버 클라이언트의 단점. 이런 내용들이 공개되지 X
=> 이런것들을 타파하고자 블록체인이 만들어진다.
모든 정보들이 다 네트워크상에 기록되어 블록에 담겨 공개가 된다.
=> 블록체인 장점중 하나
4. Proof of Work
블록 체인에 저장된 거래 원장을 신뢰할 수 있는 합의 시스템
"합의" 알고리즘(proof of work) -> 이 사람이 만든 블록을 어떻게 믿을 수 있는지.
합의 알고리즘 안에 pow가 들어간다. (합의 알고리즘이 더 큰 범위. pow ⊂ 합의 알고리즘)
블록체인에서도 pow, pos, .. 여러가지가 많다.
'화폐' -> 비트코인에서는 돈만 보내면 된다.
근데 너무 쓸모가 없는 것같아 발전해서 '계약서' 기능 추가된다.
그리고 '증명서', .. 이더리움도 나오고 등등...
그리고 그걸 합의를 어떻게 할건지, 등.. 하는 흐름
2. 블록체인의 분류
• 블록체인의 특성
– 분산 합의 (Distributed Consensus)
다수의 참가자가 하나의 결정에 도달할 수 있다.
– 가치 생성 / 전달
암호화폐를 만들어내고 주고 받을 수 있다.
– 스마트 컨트랙트 플랫폼
자동화된 계약을 생성하고 작동시킨다.
– 역진불가능
한 번 진행된 일을 취소시킬 수 없다.
블록체인은 일종의 데이터베이스
ex) 데이터를 어떻게 저장할 것인지? --> 블록체인으로 저장한다. 이런 식
1번 블록, 2번블록, 3번 블록 ... 이렇게 계속 연결한다.
여기에 담겨진 블록들을 블록체인 네트워크에 참가한 사람이 모두 같은 내용을 갖고있다.
4번까지 블록체인에 저장한 내용이라면, 모두 똑같이 1~4번의 데이터를 갖고 있다.
여기서 블록을 새로 만들면, 4번까지 만들어진 상태에서 이 이후부터 트랜잭션들(발생한 송금)이 생겨서 이게 블록에 담기게 된다.
그럼 이것에 대한걸 마이너들이 처리, 이어붙여서 만든다.
그 중에서 pow로 가장 먼저 랜덤한 숫자를 찾은 사람이 이 블록을 만든다.
'5번 블록을 만들었다'고 네트워크에 배포한다.
그럼 나머지 사람들은 이 사람이 이블록을 잘 만들었는지, pow 과정을 잘 거쳤는지 등 검증을 한다.
그러면 나머지 사람들도 원래 4번까지 갖고있었는데, 5번 블록을 이어붙인다.
사이에 발생한 트랜잭션들을 이어붙이고, 다른 사람들은 검증하는 식
그렇게 해서 계속 블록체인 네트워크가 만들어진다.
블록들이 계속 이어붙여지게되고 모든 사람들이 동일한 데이터베이스를 갖는다.
어떤 사람 a가 1번 내용을 바꾸고 싶다면?
그렇게 하더라도 나머지 사람들이 원래 내용을 갖고있으니까 a가 내용을 바꾸더라도 상관x. 믿어주지 x. => 다수결
* "51%" -> p to p 네트워크에서 어떻게 기록할 것인지. 적어도 51% 이상을 보존되는 순간 이 데이터에 대한 신뢰를 가질 수 있다.
역진불가능. 취소시킬 수 없음 => 블록체인의 장점이자 단점
데이터가 변경되지 않았다는 걸 알수있지만(장점)
이걸 취소한다거나 할 수 없음(단점)
– Public blockchain
가장 기본적인 블록체인의 개념
누구나 접근할 수 있고 누구나 데이터를 생성할 수 있음
– Private blockchain
폐쇄된 블록체인
상호간에 신뢰관계가 형성 된 컨소시엄이나 기관들만 참여하는 블록체인
– Semi-private blockchain
Default는 Public으로 운영되지만, 필요시 데이터를 지정하여 Private의 형태로 운영 운영하는 블록체인
– Hybrid blockchain
Server-Client와 P2P를 결합한 형태
Blockchain의 장점을 가지면서도 효율성을 올릴 수 있음
블록체인을 구성에 따라 나눌 수 있다.
퍼블릭형 -> 비트코인, 이더리움 정도 기억 / 프라이빗형 -> 하이퍼, eos
퍼블릭형은 말그대로 퍼블릭. 누구나 참여 가능. 관리자가 없음
이더리움같은 경우는 재단이 있어서 관리를 하는 편이긴 하지만 참가를 제지하지는 X
프라이빗형은 꼬마 서버들 여러개.
사실 프라이빗형은 블록체인보다는 분산 서버에 가깝다.
회사와 같은 제한된 사람들만 참여한다. 검증된 사람들만 참여 가능
비트코인에서는 트랜잭션 처리 시간을 일부로 10분으로 설정해놨는데, 실제로 퍼블릭에서 트랜잭션 처리가 늦어질 수밖에 없다.
합의로 처리한다 했는데, 실제로는 miner들이 10000개. 실제로 돈을 보내는 사람들은 더 많다.
예를들어, 10000명의 노드가 있어서 이 사람들이 각자 서로 트랜잭션을 보내고 서로 miner하려고 한다.
이것에 대해서 합의 -> ~ -> 검증 -> 블록체인 만들고 -> 이어붙이는 과정이 10초보다 빠르기 어렵다.
그런 문제가 있지만 프라이빗형은 정해진 4개의 miner. 합의를 넷이서 하다보니까 알아서 빨라짐
• 블록체인 역사
–2008년 8월 18일
•bitcoin.org 인터넷 도메인 등록 (Satoshi Nakamoto)
–2008년 10월 31일
•bitcoin 논문 공개 : Bitcoin P2P e-cash paper
–2008년 11월 9일
•Source Forge (오픈 소스 공유 사이트)에 비트코인 코드 공개
–2009년 1월 3일
•Genesis block 생성 : 비트코인 블록체인의 시작
–2009년 1월 9일
•사용자용 소프트웨어 첫 공개 (Bitcoin version 0.1)
–2009년 1월 12일
•최초로 bitcoin의 송금이 이루어짐
•Satoshi Nakamoto → 10 BTC → Hal Finney / 시스템 테스트 용도
–2009년 10월 5일
•BTC:달러 간 교환가치 책정
•’09/10 $1 : 1,309BTC
•’09/11 $1 : 765BTC
’09/12 $1 : 1600BTC
–2010년 5월 22일
•BTC : 실제 재화 간 첫 거래 성립
•10000BTC : 피자 2판
이게 시초. 피자 2판은 유명한 썰
이거에 대한 기록이 10년이 넘도록 남아있고 바뀔 수도 없음
비밀번호 입력하면 해시값처럼 그 내용이 자신의 개인 주소가 됨
이 주소가 누군지는 모름
하지만 이 사람이 어떤 모르는 사람에게 돈을 보냈고 얼마 보냈는지는 알 수 있음
이런것들은 다 공개됐고 바뀌지 못함
–지속적 가격 상승
•’13/2/28 1BTC : $32
•’13/4/1 1BTC : $100 (키프로스 뱅크런)
–2013년 4월 6일
•한국 최소 비트코인 거래소 코빗(Korbit) 개설
–2013년 10월 16일
•바이두(중국), 비트코인 결제 허용
–2013년 11월 4일
BTC China가 거래량 1위로 올라섬
–2013년 12월
•이더리움 백서 공개
–2014년 2월
•Mt. Gox 해킹 사건
–2015년 7월 30일
•이더리움 서비스 시작
–2016년 6월
•DAO 해킹 사태, 이더리움 클래식 분리
–2017년 12월
•비트코인 등 암호화폐 최고가 도달
• 퍼블릭 블록체인 - 비트코인
–최초로 블록체인 기술을 활용해 성공적으로 만들어진 암호화폐이다. (블록체인의 의의)
–분산화된 P2P 기반의 디지털 가상화폐이다. (암호화폐)
–국경 구분 없이 빠른 거래가 가능하다.
–송금 수수료가 매우 적다.(액수에 관계없이 수백원)
(수수료가 없음 => 그래서 나온게 거래소
거래소가 한 것도 없이 돈 많이 벌게됨
거래소가 생기고 글로벌하게 가다보니까 해외에 있는 거랑 한국에 있는 거랑 가격이 다름)
–채굴 시스템에 의해 사용자들이 자생적으로 관리한다.
–채굴되는 총량은 2100만 BTC로 제한되어 있다.
–10분마다 거래내역이 갱신되며 해킹 어렵다.
• 비트코인의 한계점
–비트코인 스크립트 언어의 단점
•튜링 불완정성 – while 이나 loop 명령 이 제외됨
•Value-blindness – UTXO 는 input, output 2가지밖에 못함
•Lack of state – 마찬가지로 사용되거나, 안 사용되거나 둘 뿐
–작업증명방식의 합의 메커니즘
•지나치게 큰 에너지 소모
•채굴자들의 중앙화
–늦은 거래처리속도
–의사결정구조 – hard fork(bitcoin cash), segwit
'전공 > 블록체인 기술' 카테고리의 다른 글
[블록체인] 블록체인 용어 정리, 개념 정리 (2) | 2021.06.02 |
---|---|
[블록체인] 블록체인의 분류, 비트코인 구조, 비트코인 작동원리 (4) | 2021.04.11 |