교양 측면에서 우수한 영상자료들이 유툽에 이미 업로드 되어 있다.

예를 들면 여기여기

 

기술자료는 유툽보다 웹링크에 많다.

유툽에서는 이게 볼만하고,

기술적인 내용에 포커싱을 맞추면 이런  자료들이 있다.

 

블록체인이나 비트코인을 이해하려면 질의응답 형식이 편할수도 있다.

(특히 나중에 되새김할때 유용하리라 기대)

이미 아래처럼 질의응답이 제공되는 웹페이지도 존재

https://buybitcoinworldwide.com/how-many-bitcoins-are-there/

 

How Many Bitcoins Are There? (Circulating Supply - Live)

This is a complete guide to how many Bitcoins there are. Learn how many exist plus much more from this in-depth post (updated hourly).

buybitcoinworldwide.com

예를들면 다음과 같은 질문은 어떨까?

 

블럭체인 결제는 왜 느린가?

원장이 모든 노드에 공유되고 작업증명이 동반되기 때문일텐데,

작업증명이 아닌 지분증명등이 쓰이는 코인도 카드만큼 빠르진 않은 이유는 뭘까?

작업증명이 아니더라도 거래내역을 검증하는 합의 매커니즘 때문에 느려지며 이는 node수가 많아질수록 더 느려진다.

 

Nonce란 무엇이고 왜 쓰일까?

비트코인에 쓰이는 해시는 맨앞에 비트0이 연속되어서 나오는걸 요구한다.

이를 개념적인 식으로 써보면 다음과 같다.

SHA256(거래내역, Nonce) = "00000101101011011...0101"

위에 보면 앞자리 5비트가 0으로 시작함을 알 수 있는데, 이렇게 하기위한 nonce를 계속 브루트포스로 대입해보는게바로 작업증명을 수행하는 과정이 된다. 자세한건 여기 참조(근데 어렵다)

 

작업증명이 어려운건 알겠는데, 풀어낸 사람이 독점적인 블록추가를 권한 가질 수 있는 이유는 무엇인가?

문제를 풀어야 블록을 추가할 수 있으니, 문제를 풀지 못한사람은 할 수 없는 권한을 자연스럽게 가지게 된다.

 

서로다른 두 개의 노드에서 작업증명이 동시에 되어 충돌이 일어나면 어떻게 이를 처리하는가?

정상적으로 두 개의 노드에서 동시에 채굴에 성공하면 누구의 노드가 선택되는지는 우연에 의해 결정됩니다. 그러나 이러한 경우는 드물며, 이러한 상황이 발생할 때마다 블록체인 프로토콜은 이를 처리하기 위한 규칙을 갖고 있습니다. 예를 들어, 일부 프로토콜은 해시값의 크기를 기반으로 우선순위를 결정합니다.

이 과정에서 잠시동안 블록체인이 복수개 존재할 수도 있는데,  결국은 더 긴 블록체인이 올바른 것으로 인식한다(작업증명이 그만큼 더 들어가 더 난이도가 높고 해킹이 어렵다는 관점) 

길이가 동일하다면 하나가 더 길어질때까지 기다린다.

 

위조된 거래내역이 담긴 블록으로 작업증명 문제를 풀어서 블록추가를 하면 더 이득일텐데 왜 못하는가? 51%어택은?

유효한 서명 없이 비트코인에 이상거래를 쓰는 것 또한 가능하지 않습니다. 그러므로 난데없이 제어되지 않는 양의 비트코인을 생성한다든지, 다른 사용자들의 자금을 사용한다든지, 네트워크를 변질시킨다든지 하는 것은 가능하지 않으며 이들과 비슷한 어떠한 것도 마찬가지입니다.

그러나 다수결 원칙에 따라 다수의 채굴자들이 독단적으로 최근 거래들을 막거나 철회할 수 있습니다. 또한 이들은 이렇게 프로토콜의 변화를 입법하도록 압력을 가할수도 있습니다. 비트코인이 모든 사용자들간의 합의가 있어야만 작동하기 때문에, 프로토콜을 변경하는 것은 매우 어려운 일일 것이며, 소수의 사용자들이 선택의 여지가 없을 만큼 압도적인 다수가 변화를 원하여만 가능할 것입니다. 상식적으로 보았을 때 비트코인 사용자들의 자신들의 돈에 위험이 될만한 변화를 받아들이기를 원치는 않을 것입니다.

 

 

이전해시를 포함해서 해시를 하는 이유는 무엇인가?

이전 블록중 어느하나라도 위변조가 일어났을때 이를 탐지하고 방지하기 위해서이다.

 

이전해시가 포함된 형태로 다시 개념적인 식을 써보면?

이번해시 = SHA256(이전블록의해시, 거래내역, Nonce)  = "00000101101011011...0101"

그림으로는 다음과 같다. (Proof of work라고 되어 있는 부분이 Nonce이다)

좀더 자세하게는 아래와 같다.

하나의 블록은 "블록 헤더 + 블록 바디"로 만들어지고, 그 중 블록 헤더는 "이전 블록 헤더의 해시값 + 논스 + 트랜잭션의 해시값"으로 구성된다. 블록을 생성하려면 앞의 블록 헤더의 정보와 논스 및 그 블록에 포함된 모든 트랜잭션의 루트해시값을 포함시켜 해시 함수를 입력해야 한다.

 

채굴자에게 제공되는 보상(비트코인)은 어떻게 발생하는가?

거래내역에 비트코인 보상 정보를 끼워넣는 방식이다(아래 노란박스). 여기서 1개로 되어 있는데 규칙이 있고, 이 규칙을 따르지 않으면 다른 노드들이 인정해주지 않겠지.

비트코인 소스코드는 계속해서 업데이트 되는가?

비트코인 소프트웨어는 아직 베타 버전이며 많은 미완성의 기능들이 활발한 개발중에 있습니다. 더 안전하고 대중들이 쉽게 접근할 수 있는 비트코인을 만들기 위해 새로운 툴, 기능, 서비스가 개발중에 있습니다. 이중 일부는 아직 모든 사람이 사용하기에는 이릅니다. 대부분의 비트코인 사업은 최근에 생겼으며 아직 어떠한 보험도 제공하지 않습니다. 전반적으로, 비트코인은 아직도 성숙하는 과정에 있습니다.

 

그렇다면 업데이트로 인해 위험하지는 않은가?

이부분은 좀 모호하긴한데(예를들어 특정그룹에서 여론을 일으켜 이상한 방향으로 SW업데이트를 시킨다던지)

여기에서 다음과 같이 설명하고 있는것 같다.

비트코인에 대한 대부분의 신뢰는 그것이 신뢰가 필요없다는 데에서 나옵니다. 비트코인은 완전히 오픈소스이며 분권화되어 있습니다. 이는 누구나 언제 어디서나 전체 소스코드를 볼 수 있다는 뜻입니다. 고로 세계 어느 개발자든지 비트코인이 어떻게 작동하는지를 확인할 수 있습니다. 현재까지 발생된 모든 비트코인과 거래들을 누구나 투명하게 실시간으로 조사할 수 있습니다. 모든 지불이 제삼자의 존재여부와 상관없이 이루어질 수 있으며, 시스템 전체가 힘껏 상호 심시된 온라인 뱅킹에서 사용하는 것과 비슷한 암호 작성 알고리즘에 의해 보호됩니다. 어떤 개인이나 단체가 비트코인을 독점통제할 수 없으며, 구성원들 전부가 신뢰할 수 없더라도 네트워크는 안전하게 유지됩니다.

반응형

'비트코인' 카테고리의 다른 글

비트코인 관련 Q&A (자문자답)  (0) 2021.12.30
비트코인 논문 리뷰  (0) 2021.08.31
md5, sha  (0) 2017.12.12
비트코인 분석 연재를 시작하며  (0) 2017.12.10
암호화 해시 함수(cryptographic hash function)  (0) 2017.12.10

+ Recent posts