비트코인이란?
- 기술 계층 : 기술은 블록체인
- 프로토콜 계층 : 비트코인은 단순히 화폐가 아니라 프로토콜
- ⚠️프로토콜이란 네트워크의 참가자가 서로 소통하는 일련의 규칙, 공개 키와 서명이 어떻게 인증에 사용되야 하는지 명령
- 토큰 계층 : 프로토콜로 구축되는 스마트 계약에 의존
코인 vs 토큰 차이점
해당 링크에서 coin과 token의 차이점을 비교할 수 있
코인
코인에 기반이 되는 프로토콜에 투자
토큰
구축하고 있는 것 이면의 아이디어에 투자
비트코인의 통화 정책
- 반감기
- 블록 빈도
반감기
비트코인의 수가 4년마다 절반으로 줄어드는 빈도를 확인할 수 있음
⭐ 비트코인의 통화 정책은 전체적으로 소프트웨어로 통제한다는 것, 브트 코인 안에 있는 알고리즘의 통제 하에 있다는 점이 중요
빨간색이 블록체인 / 파란색이 반감기
블록체인의 수는 증가하는데 출시되는 비트코인의 수를 조절하는 것을 확인할 수 있음
블록 빈도
보상을 깨는 블록이 나타나는 빈도
암호화폐마다 얼마나 자주 나타나는지는 다름
가장 최근에 채굴된 블록을 확인할 수 있는 사이트며 블록이 어느 정도 빈도로 채굴되는지도 알 수 있음
채굴 난이도
난이도는 현재 대상을 최대 대상으로 나눈 값
최근 타겟이 18개의 선행 제로임을 알 수 있고 확률을 계산해보았을 때 골든 논스가 나올 확률은 (2x10^55) / 10^77
16진수 조합 : 16^64 / 선행 제로를 갖는 16진수 조합 16^(64-18)
난이도는 2주마다 조정됨, 이는 오직 노드에 의해서만 조정됨
조정된 난이도는 선행 제로의 개수의 차이에서 알 수 있음
채굴 풀
채굴자들이 채굴 풀에서 이중 작업 하지 않도록 적절히 분배
골드 논스를 찾는 방법 : 여러 논스 값을 무차별 대입
채굴 풀의 기여도는 해시율과 함께 풀에 얼마나 많은 연산력을 제공했는지에 따라 달라짐
논스 범위
암호화 퍼즐을 풀 수 있는 확률 : 2 x 10^-22 (이전에 다뤘던 채굴 난이도 참고)
최대 논스 : 논스는 32비트이기 때문에 2^32 (약 40억)
우리가 원하는 질문의 답은 논스가 100% 확실하게 해시나 퍼즐에 무차별 대입하기에 충분한가
충돌이 없다고 주장 : 4 x 10^9개의 고유 해시 생성 및 해당 개수의 서로 다른 해시
40억개의 다른 해시 중 하나가 유효할 확률 : (4 x 10^9) x (2 x 10^-22) = 8 x 10^-13 (약 0.0000000001% 확률)
📍결론 : 전체 논스 범위를 거친다고 해도 암호화 퍼즐의 솔루션을 찾을 확률 약 0.0000000001% 확률
타임스탬프를 생각했을 때의 경우
논스 범위를 그린 다음 타이머를 두면 타이머 업데이트 전까지 논스 범위를 거칠 시간이 1초가 있음 이는 모든 논스가 유효하다는 뜻
타임 스탬프도 업데이트 되고 논스를 거치는만큼 타임 스탬프도 업데이트 되고 해시를 얻을 수 있는 타임 스탬프와 논스의 무한한 수의 조합을 얻을 수 있음
채굴자가 트랜잭션을 선택하는 방법
트랜잭션은 모든 노드와 모든 채굴자에 연결되어 있는 메모리 풀에서 발생
모든 채굴자나 노드에는 집결지처럼 아직 보류 중인 트랜잭션 리스트가 있는 메모리풀이 연결되어 있음
📍결론 : 채굴자가 블록 생성에 성공하면 블록과 연결된 수수료를 받게 되는데 가장 높은 수수료를 고름
1초 안에 전체 논스를 거쳤는데도 유효한 해시를 찾지 못했다면 블록의 구성을 변경하여 가장 낮은 수수료 > 두 번째로 높은 수수료 등을 골라 알고리즘적으로 발생하게끔 진행
해당 링크의 Data > Charts 에서 블록 당 거래량을 찾아볼 수 있음
블록당 트랜잭션 수치는 개별 트랜잭션의 크기에 따라 다를 수 있음
차트를 보면 연속적으로 0.5MB까지 떨어지는 경우는 없으며 항상 1MB 근처의 값임
> 이는 일반적으로 채굴자가 블록을 최대로 사용하고 싶어하고 블록의 반을 사용하지 않은 채로 남기길 원하지 않음, 수수료를 가능한 많이 받기 위한 것임을 알 수 있음
해당 차트는 채굴자가 지난 한 해 동안 채굴자가 얼마의 수수료를 벌었는지 나타내주는 차트
많은 돈을 버는 이유로는
- 사람들이 블록체인 안에 트랜잭션을 넣고 싶어하면 수요가 많아짐 > 블록당 트랜잭션의 양은 정해져 있으며 수요가 높은만큼 수수료를 가장 높게 책정하는 사람이 이김
- 수수료가 내려감 특히, USD는 환율에 영향을 받음
채굴자들이 해시 암호문을 해독할 때 사용하는 하드웨어
- CPU : 정교한 일을 수행
- GPU : 해시를 보다 빠르게 계산
- ASIC : 전기가 흐르면 연산이 실행, 특정 암호화폐에만 사용 가능
메모리풀의 작동 원리
메모리풀은 중앙화가 존재하지 않고 각 참가자에게 개별적으로 존재
또한, 메모리풀 자체가 블록체인이 아님
블록을 채굴하는 과정에서 트랜잭션을 정하여 블록 구성을 미리 가지고 채굴 > 해당 블록이 실제로 채굴이 되었을 경우 트랜잭션을 메모리풀에서 빼내고 블록 안에 있는 트랜잭션은 메모리풀에서 제거 > 블록이 검사를 통과하면 트랜잭션 제거 후 모든 네트워크에 추가 > 트랜잭션이 모든 노드의 메모리풀에서 제거됨
해당 절차를 반복하여 작동하게 됨
고아 블록
어떤 블록과 어떤 블록 사이에 건너뛴 블록
약 500개의 고아 블록이 있음을 알 수 있
빨간색 X는 이 블록이 결국 사라진다는 뜻 즉, 유실되는 체인이 됨
블록에 속한 모든 트랜잭션은 다시 메모리풀로 돌아가게 됨
시간상으로 누가 먼저 채굴했는지는 중요하지 않고 어떤 체인이 가장 긴지 어떤지 블록이 가장 긴 체인에 속한 블록이 되는지가 중요함
해당 트랜잭션에서는 GB Miners에 대한 소재지가 없기 때문에 왜 이 정보가 전달되는지까지 많은 시간이 소요되었는지와 고아 블록이 생긴 이유를 알 수 있음
51% 공격
개별적이거나 선택된 블록을 조작하기 위한 공격이 아님
51% 공격은 51%의 해시율을 뜻함
공격자에 더 많은 채굴자가 있어 해시율이 높아 많은 블록을 채굴했다고 가정하면 시간이 지날수록 공격자들이 더 많은 블록을 채굴하게 되고 그 격차가 더 커짐
즉, 이중 지출 문제를 활용하여 공격자는 이득을 취함
📍코드 출처 : 유데미 강의
'솔리디티 및 블록체인' 카테고리의 다른 글
암호화폐 트랜잭션 직관적 이해 (0) | 2024.08.24 |
---|---|
블록체인 part.03 _ 채굴 (0) | 2024.08.03 |
블록체인 만들기 part.02 _ 블록체인 설계 (0) | 2024.08.02 |
블록체인 만들기 part.01 _ 블록체인 설계 (0) | 2024.07.21 |
블록체인 만들기 part.01 _ 환경설정 (0) | 2024.07.21 |