과학

논쟁만 있고 정보글은 없는 것 같아서 비트코인 배경지식 정리

비트코인 배경지식 정리.


1. 블록체인
각각의 행위가 만들어내는 수 많은 기록을 한 덩어리로 엮어버리는 것.
예를들어 비트코인은 모든 송금내역을 한 묶음으로 만들어 버린다.
이렇게 하면 송금 기록의 부분 조작이 어려워진다.
마트의 카트 대기열에서 중간에 위치한 카트를 뽑아쓰는 걸 생각해보면 체인의 보안 난이도를 쉽게 느낄 수 있다.
아예 못 바꾸거나 전체를 다 바꾸거나.
부분 변조를 못 하게 하는 것이 블록체인의 기본 개념이다.
따라서 블록체인이 금전기록만 대상으로 하는 것은 아니다.
예를들어 자율주행 자동차의 주행 기록을 블록체인으로 남긴다고 하면,
어느 보험사나 차량 제조사도 사고 기록을 임으로 조작할 수 없다.


2. P2P 또는 분산 또는 탈중앙화
블록체인은 부분 조작이 허용되지 않는다.
따라서 모든 사람이 가지고 있는 장부가 서로 다 일치해야 한다.
누군가의 장부에 조금이라도 부정합이 있으면 그 장부는 전체가 거절된다.
따라서 모든 참여자가 장부의 온전성을 함께 담보한다.
이것이 안정성의 근거이고 그 방식은 선거와 같다.
장부 소유자 전체 중 51% 이상의 다수결이 확보된 장부가 온전한 장부로 인정된다.
단점은 참여자 모두가 장부 전체를 가지고 있어야 한다는 것.
따라서 큰 용량의 디스크와 장부를 관리하는 컴퓨팅 파워가 있어야 다수결 투표의 의결권을 갖는다.
반면에 일반 사용자는 장부가 없는 단순한 지갑 기능만을 사용한다.
즉, 탈중앙화라는 표현을 쓰지만 선거가 직접민주주의 방식은 아닌 것.
그리고 투표에 나서는 것은 지갑 소유자나 거래자가 아니라 채굴자이므로 모든 국민에게 참정권이 있는 것은 아니다.


3. 과반수의 조작 안전성
장부는 다수결로 유지되므로 50% 이하의 의결권으로는 조작할 수 없다.
그러나 투표에 참여하는 건 채굴자이므로 언젠가 독과점 채굴자가 생길 수도 있다.
사토시는 논문에서 장부 조작으로 신뢰성이 떨어지면 자신이 가지고 있는 비트코인의 가치가 하락하므로,
조작하는 것이 더 손해이기 때문에 할 수 있더라도 하지 않을 것이라고 추정하였다.
그러나 논문에서의 추측은 긍정적인 바람일 뿐으로 수학적으로 증명된 바는 없다.
또한 거래 기록 조작에 대해 안전한 것이지,
거래량이나 코인 독점에 관한 권력 구조의 안정성은 증명된 바 없다.


4. 채굴
'어려운 문제를 푸는 것에 대한 보상'이라는 비유적인 예시 때문에
채굴 과정을 진짜 광석을 캐는 것처럼 느끼게 만들어 오해가 클 수 있다.
그러나 채굴은 코인을 얻기 위한 과정이 아니라 블록체인이 돌아가게 만드는 업무 중 한 가지다.
채굴은 개개인의 거래 기록을 승인하고 장부에 기록하는 과정을 말한다.
이 때, 은행업무와 마찬가지로 수수료가 발생하는데 그것을 채굴을 행한 업자가 가져간다.
그러나 비트코인도 일정 수량에 도달할 때까지 계속해서 발행될 필요가 있기 때문에
채굴시에 수수료 뿐만 아니라 신규 발급되는 코인이 주어지도록 설계되었다.
따라서 현재 채굴업자는 은행과 조폐공사의 역할을 동시에 담당하며,
채굴, 즉 거래 승인 업무마다 그 거래에 지급된 거래 수수료와 발행된 신규 코인을 자신의 계좌로 지급받게 된다.
이것이 채굴과 채굴 보상의 과정이다.


5. 코인수량 제한
비트코인은 발행량이 한계치에 달하면 발행이 중단된다.
채굴 보상에서 신규 발행되는 코인이 0이 된다는 것.
이는 설계상의 정책적 문제이고 비트코인이 아닌 다른 알트코인들은 다른 정책들을 가지고 있다.
그러나 어찌되었든 발행량이 제한되면 채굴이라는 것이 우리가 알고있는 것과 다르게 진행된다.
채굴시에 받는 보상은 거래수수료와 신규발행권 두 가지인데 신규발행권이 0이 되므로 수수료만 남게 된다.
따라서 수수료가 더 높아질 수 있다.
그리고 채굴은 신규발행이 중단된 이후에도 계속 이루어진다.
채굴되는 코인은 신규 코인만이 아니라 거래수수료도 포함되어 있다는 것.
채굴은 흔히 알려진 것과 접근이 조금 다르므로
발행이 중단되면 더 이상 채굴이 소용없다고 생각할 필요는 없다.


6. 거래수수료
비트코인에서는 채굴업자가 은행의 역할을 한다.
거래를 승인해주고 수수료를 받는 것.
비트코인 거래가 활발해진다면 수많은 거래가 발생하고 창구에서 대기하게 된다.
채굴업자는 창구에 쌓인 거래들 중 수수료가 높은 것을 우선하여 승인한다.
따라서 낮은 수수료를 지급하는 거래는 이론상 영원히 승인이 되지 않을 수도 있다.
현재는 채굴시에 신규발행권이 지급되므로 채굴업자는 수수료를 내지 않는 거래도 승인하고 신규 코인을 취해간다.
그러나 신규발행이 중단되고 나면 수수료가 없는 거래는 승인할 필요가 없다.
그 시점에는 거래자들이 자신의 거래를 승인받기 위해 더 높은 수수료를 지불하는 창구 경쟁이 벌어질 수 있다.


7. 암호학 (1)
현재 전산 암호화의 근간은 소수(prime number)를 이용한 비밀키이다.
비밀키는 암호화된 문장을 만들 수 있다.
일반적인 문장을 해석할 수 없는 문장으로 만드는 것이다.
그리고 이 비밀키에는 대응하는 공개키가 있는데 비밀키로 만든 암호화된 문장을 풀 수 있는 키이다.
공개키를 대입하면 해석할 수 없던 문장이 일반적인 문장으로 되돌아간다.
그런데 이것을 이용하면 본인 확인이 가능하다.
나의 공개키로 암호문을 해독했을 때 정상적인 문장이 나타나면
그 문장은 나의 비밀키로 만든 것임이 분명하다는 것.
예를들면 암구어 담배-화랑이 유출되었다고 하자.
이 때, 암구어가 유출되었으므로 화랑을 대답하는 사람은 아군인지 적군인지 불명확하다.
그러나 거수자 입장에서는 초소에서 담배를 묻는 사람이 아군이라는 것을 확신할 수 있다.
오히려 반대편에서 수신자의 신원을 확인하는 행위가 가능한 것.
이것을 바로 디지털 서명이라고 부른다.
이렇듯 비밀키로는 본인을 인증할 수가 있다.
따라서 모든 거래는 계좌의 소유주로부터 요청된 거래임이 확인될 수 있다.
이것은 비밀키와 공개키의 대응 관계에 의해 가능하며
통계학적으로 안전하다고 실험으로 증명되어있다.


8. 암호학 (2)
비가역적 함수.
한 방향으로는 연산이 가능하나 역산은 불가능한 수식을 말한다.
블록체인이 안전한 이유는 암호화된 문서가 안전한 이유와 같다.
f(x) = x + 3이고, f(x)가 7 일 때, x는? 당연히 x는 4이다.
이것은 역산이 가능한 가역적인 함수이다. 너무 쉽게 x를 찾아낼 수 있다.
그러나 f(x) = { 7천만번째 소수와 7천만3번째 소수 사이에 존재하는 x의 배수의 갯수 } 일 때,
f(x)가 179라고 하면 x는 몇일까?
값을 알고 있는데도 x를 구하기가 쉽지 않다.
그리고 어떤 함수들은 현재의 수학으로는 역산이 불가능하다.
이것이 바로 비가역적 함수의 역할이다.
거래기록을 비가역적 함수에 넣어서 해를 얻고 그것을 적어둔다면 앞으로 그 거래는 조작하기가 어려워진다.
1비트를 송금한 거래의 해가 ABCDE라고 하자.
2비트를 송금한 것으로 조작했다면 해가 ABCDE가 아닌 다른 값이 나올 것이다.
이것은 계산해보면 알 수 있으므로 조작을 확인하기는 너무도 쉽다.
그렇다면 사기꾼의 입장에서 해가 ABCDE가 되도록 하면서 거래기록을 조작하려면 몇 비트를 송금한 것으로 조작하면 될까.
이것은 알아내기가 너무도 어렵다. 비가역적 함수의 특징이다.
조작을 확인하기는 쉬운데 반대로 확인된 값이 맞아 떨어지도록 조작하는 것은 매우 어려운 것.
선생님께서 부모님께 과목별 표준편차를 전달했다고 치자.
성적표를 칼로 긁어 고칠 수는 있지만 표준편차를 유지하면서 조작할 수 있겠는가.
이게 비가역적 함수를 이용하면 안전해지는 원리다.
이 또한 통계학적으로 안전하다고 실험으로 증명되었다.


9. 암호학 (3)
채굴업체는 거래 승인 업무를 하고 수수료를 받는 역할을 한다.
승인을 되도록 빨리 하고 싶어하는 것이 당연하다.
그러나 여러 승인 업체가 동시에 승인을 계속해서 추가하면 장부가 망가져버린다.
컴퓨터 보안에서는 이것을 Race Condition 문제라고 부른다.
때문에 장부는 한 시점에 한 곳에서만 기입해야 한다.
그래서 비트코인은 오히려 장부 등재가 느려지게 만들었다.
동시에 두 곳 이상의 채굴업자가 장부를 변경할 수 없도록 속도를 조절한다.
이 때 Hash 함수를 이용한다.
해쉬 함수는 비가역적 함수의 대표격인데,
어떠한 디지털 값도 그에 대응하는 정해진 길이의 예측 불가능한 값으로 만들어준다.
비트코인 주소는 모두 같은 길이의 다양한 문장으로 구성되어있는 것을 볼 수 있는데, 이것도 해쉬함수를 이용해 얻은 것이다.
채굴업자가 거래 승인을 할 때도 거래 내용에 대해 위변조방지의 목적으로 해쉬 함수의 문장을 추가하는데
이것이 속도 조절의 역할을 한다.
해쉬 함수는 비가역적 함수이기 때문에 거래 문서를 이용해 해쉬값을 찾아내는 건 쉬운데
반대로 특정한 해쉬값이 만들어지도록 거래 문서를 구성하는 것은 어렵다.
그래서 해쉬값이 특정한 규칙을 지켜야만 장부에 등재되도록 강제하면
채굴업자는 거래 장부가 규칙을 지키는 해쉬값을 갖게될 때까지 무한히 반복해서 문서를 수정해가며 재작성해야 한다.
대출 서류를 작성해 갔더니 지점장이 이유도 가르쳐주지 않고 다시 써오라고 돌려보내는 격이다.
그럼 지점장 마음에 들 때까지 대출 서류는 무한 수정에 들어간다.
비트코인 장부도 마찬가지다.
해쉬함수는 역함수가 없기 때문에 비트코인 지점장이 원하는 해쉬값을 찾을 때까지
문서를 계속 조금씩 수정해가며 해쉬값을 다시 계산해보는 수 밖에 없다.
이것이 채굴을 하기 위해서 공장을 갖추는 이유이다.
그리고 장부에 등재되도록 허가 받는 해쉬값은 대략 10분에 한 번 정도 나타나게 설계되어 있다.
그래서 여러 채굴업자가 동시에 장부를 건드려 어지럽히는 일이 없이 장부가 유지되고,
채굴업자들은 서로 먼저 해쉬값을 찾아내어 수수료를 받으려고
계산을 더 빨리 여러번 해보기 위해 그래픽카드를 잔뜩 사들이는 것이다.

12개의 댓글

2018.01.21
정리 제일 잘했네
0
2018.01.21
이런거 써봤자 읽는 놈 하나도 없어
'투기'하는 놈들이나 몇줄 읽지, 까는 놈들은 노드가 뭔지 해시가 뭔지 좃도 신경도 안씀 ㅋㅋ

나카모토 사토시는 9장 짜리 백서 하나로 노벨상을 받느니 마느니 하고 있는데
좆븅신들은 투기라는 프레임에 덮혀서 읽을 생각도 안함.

백서 읽어보면 비트코인 투자 안 할 수가 없다.
0
2018.01.22
@호고go곡
투 ㅋㅋㅋ 자 ㅋㅋㅋㅋㅋ
0
2018.01.22
@월요일이다
본문 안읽었지? ㅋㅋㅋㅋㅋㅋ 절대 사지마라 투기판 들어오지도 말어ㅠ
0
2018.01.22
@호고go곡
읽었고 비트코인이 혁신적인 기술이라는건 익히 알려진 사실이지 비트코인 뜨기전에도 이게 현물 화폐의 대체제가 되지않을까 싶어 찾아보곤 했었는데

근데 혁신적이면 뭐하냐? 지금 그 결과가 돈 놓고 돈 먹는 투기판인데 탈중앙화? 투명거래? 다 지금으로선 좆도 의미 없어진지 오래임

투자? 아마 지금 비트코인에 돈 넣는 놈들 중에 진짜 투자는 1%도 안될거다 대부분 투자라고 자위하는 투기꾼들이지
0
어렵당.. 조작과 통제가어려운 투명한 거래수단이지만 지금의 광풍은 명백한 투기이기에
0
2018.01.21
대체 비트코인 가격이 오르고 내리고 하는 원인이 뭐가 있음?

수요공급을 빼고 이야기하면 도대체 왜 변동하는거지?
0
2018.01.21
@설교쟁이
작전주. 지들이 먼저 사서 가격 올리고 가치있어 보이게 함

기획부동산. 없는 호재 구라쳐서 너무 아까운 좋은땅 있어서 전화드림

다단계. 다이아몬드 회원이 나 돈벌었다 하고 통장인증함.

코인. 큰손이 가격 올리고 경제교란 하고 있는데 중간에 운으로 돈번 코인빠들이 대신 홍보,로비 다 해줌.

어차피 다 수요공급이니까.
가치를 뻥튀기하면 수요가 생기고 공급이 이득을 보는거고.
그래서 사기는 시장원리로 안보고 규제하는거지.
0
2018.01.21
@죽죽
아니 다른건 이유가 있잖아

주식에도 작전은 있을거고 부동산도 찌라시 다 있을건데

주식은 적어도 회사의 가치 어쩌고 배당금 어쩌고 하면서 근본적인 이유라도 있지

코인은 원천기술을 가진 기업이 흥한다고 해서 코인이 상승할 이유가 없잖아
0
2018.01.21
@설교쟁이
코인 얘기한거지.

작전처럼 코인 큰손도 먼저 거래하면 가격 올라가고
다단계처럼 코인도 중간에 얼결에 같이 차익나서 돈번 놈들이 통장 인증하고
지금은 코인빠들이 게시판 마다 좋은 코인 있어서 소개해드리려고 하고 있잖아
0
2018.01.22
근데 프로그래밍 해서 없는 비트코인을 만들 수도 있음?
채굴 그런게 아니라 직접
0
2018.01.22
@번째 개헌
안되지 그게 되면 큰일이게
0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜
526 [과학] 위드 코로나와 코로나 백신 관련 응급의학과 전문의 글 (긴글) 36 바이코딘 45 3 일 전
525 [과학] <강력의 탄생> - 추천합니다 6 미분가능하지않은... 5 5 일 전
524 [과학] 오싹오싹 우주 근황의 조금 더 자세하고 정확한 설명.physics 21 샤킬오닐 16 7 일 전
523 [과학] 코로나 백신과 혈전증에 대한 응급의학과 전문의 글 10 바이코딘 9 9 일 전
522 [과학] 앗싸식 팩트 체크 : MBTI는 그냥 말장난, 조크, 혈액형 성격... 31 커뮤질은인생의낭비 6 22 일 전
521 [과학] 한반도 형성 모델 8 白猫 4 2021.09.06
520 [과학] 인류 발전은 정체되었는가? 119 월급받으며개드립하기 22 2021.09.02
519 [과학] 자바로 프로그래밍에 입문할래요: 3.3. 자료형 설계하기 (4) 스비니 5 2021.08.21
518 [과학] 자바로 프로그래밍에 입문할래요: 3.3. 자료형 설계하기 (3) 3 스비니 3 2021.08.17
517 [과학] 자바로 프로그래밍에 입문할래요: 3.3. 자료형 설계하기 (2) 2 스비니 0 2021.08.15
516 [과학] 자바로 프로그래밍에 입문할래요: 3.3. 자료형 설계하기 (1) 9 스비니 1 2021.08.12
515 [과학] 자바로 프로그래밍에 입문할래요: 3.2. 자료형 생성하기 (3) 스비니 0 2021.08.11
514 [과학] 희귀 혈전등에 대한 아스트라제네카 코로나 19 백신 접종의 ... 18 매콤챱스 5 2021.08.10
513 [과학] 자바로 프로그래밍에 입문할래요: 3.2. 자료형 생성하기 (2) 2 스비니 2 2021.08.09
512 [과학] 엔트로피는 감소할 수 있는가? 43 Kuqi 21 2021.08.08
511 [과학] 자바로 프로그래밍에 입문할래요: 3.2. 자료형 생성하기 (1) 3 스비니 2 2021.08.05
510 [과학] 자바로 프로그래밍에 입문할래요: 3.1. 자료형 (4) 11 스비니 3 2021.08.04
509 [과학] 자바로 프로그래밍에 입문할래요: 3.1. 자료형 (3) 2 스비니 3 2021.08.02
508 [과학] SF스압) 최후의질문 / 원래는..(How It Happened) 16 기타치는고라니 17 2021.07.31
507 [과학] [양자역학 3부] 슈뢰딩거의 고양이에 대해서. 28 기타치는고라니 3 2021.07.30