솔리디티 및 블록체인

블록체인 만들기 part.03 _ 암호화폐 직관적 이해.zip

채채_._. 2024. 8. 4. 03:31

비트코인이란?

 

 

  • 기술 계층 : 기술은 블록체인
  • 프로토콜 계층 : 비트코인은 단순히 화폐가 아니라 프로토콜
    • ⚠️프로토콜이란 네트워크의 참가자가 서로 소통하는 일련의 규칙, 공개 키와 서명이 어떻게 인증에 사용되야 하는지 명령
  • 토큰 계층 : 프로토콜로 구축되는 스마트 계약에 의존

코인 vs 토큰 차이점

 

https://coinmarketcap.com/ko

 

암호화폐 가격, 차트 및 시가총액 | 코인마켓캡

시가총액 기준 상위 암호화폐 가격과 차트. 비트코인 및 수천 개의 알트코인의 현재 및 과거 정보에 무료로 액세스할 수 있습니다.

coinmarketcap.com

해당 링크에서 coin과 token의 차이점을 비교할 수 있

 

코인

 

 

코인에 기반이 되는 프로토콜에 투자

 

토큰

 

 

구축하고 있는 것 이면의 아이디어에 투자

 

비트코인의 통화 정책

  1. 반감기
  2. 블록 빈도

 

반감기

 

 

비트코인의 수가 4년마다 절반으로 줄어드는 빈도를 확인할 수 있음

⭐ 비트코인의 통화 정책은 전체적으로 소프트웨어로 통제한다는 것, 브트 코인 안에 있는 알고리즘의 통제 하에 있다는 점이 중요

 

 

빨간색이 블록체인 / 파란색이 반감기

블록체인의 수는 증가하는데 출시되는 비트코인의 수를 조절하는 것을 확인할 수 있음

 

블록 빈도

보상을 깨는 블록이 나타나는 빈도

암호화폐마다 얼마나 자주 나타나는지는 다름

 

https://www.blockchain.com

가장 최근에 채굴된 블록을 확인할 수 있는 사이트며 블록이 어느 정도 빈도로 채굴되는지도 알 수 있음

 

채굴 난이도

난이도는 현재 대상을 최대 대상으로 나눈 값

 

 

최근 타겟이 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초 안에 전체 논스를 거쳤는데도 유효한 해시를 찾지 못했다면 블록의 구성을 변경하여 가장 낮은 수수료 > 두 번째로 높은 수수료 등을 골라 알고리즘적으로 발생하게끔 진행

 

https://www.blockchain.com/

해당 링크의 Data > Charts 에서 블록 당 거래량을 찾아볼 수 있음

 

블록당 트랜잭션 수치는 개별 트랜잭션의 크기에 따라 다를 수 있음

차트를 보면 연속적으로 0.5MB까지 떨어지는 경우는 없으며 항상 1MB 근처의 값임

> 이는 일반적으로 채굴자가 블록을 최대로 사용하고 싶어하고 블록의 반을 사용하지 않은 채로 남기길 원하지 않음, 수수료를 가능한 많이 받기 위한 것임을 알 수 있음

 

 

해당 차트는 채굴자가 지난 한 해 동안 채굴자가 얼마의 수수료를 벌었는지 나타내주는 차트

많은 돈을 버는 이유로는

  1. 사람들이 블록체인 안에 트랜잭션을 넣고 싶어하면 수요가 많아짐 > 블록당 트랜잭션의 양은 정해져 있으며 수요가 높은만큼 수수료를 가장 높게 책정하는 사람이 이김
  2. 수수료가 내려감 특히, USD는 환율에 영향을 받음

 

채굴자들이 해시 암호문을 해독할 때 사용하는 하드웨어

  • CPU : 정교한 일을 수행
  • GPU : 해시를 보다 빠르게 계산
  • ASIC : 전기가 흐르면 연산이 실행, 특정 암호화폐에만 사용 가능

 

메모리풀의 작동 원리

메모리풀은 중앙화가 존재하지 않고 각 참가자에게 개별적으로 존재

또한, 메모리풀 자체가 블록체인이 아님

 

블록을 채굴하는 과정에서 트랜잭션을 정하여 블록 구성을 미리 가지고 채굴 > 해당 블록이 실제로 채굴이 되었을 경우 트랜잭션을 메모리풀에서 빼내고 블록 안에 있는 트랜잭션은 메모리풀에서 제거 > 블록이 검사를 통과하면 트랜잭션 제거 후 모든 네트워크에 추가 > 트랜잭션이 모든 노드의 메모리풀에서 제거됨

 

해당 절차를 반복하여 작동하게 됨

 

고아 블록

어떤 블록과 어떤 블록 사이에 건너뛴 블록

 

 

약 500개의 고아 블록이 있음을 알 수 있

 

 

빨간색 X는 이 블록이 결국 사라진다는 뜻 즉, 유실되는 체인이 됨

블록에 속한 모든 트랜잭션은 다시 메모리풀로 돌아가게 됨

 

시간상으로 누가 먼저 채굴했는지는 중요하지 않고 어떤 체인이 가장 긴지 어떤지 블록이 가장 긴 체인에 속한 블록이 되는지가 중요함

 

 

 

해당 트랜잭션에서는 GB Miners에 대한 소재지가 없기 때문에 왜 이 정보가 전달되는지까지 많은 시간이 소요되었는지와 고아 블록이 생긴 이유를 알 수 있음

 

51% 공격

개별적이거나 선택된 블록을 조작하기 위한 공격이 아님

51% 공격은 51%의 해시율을 뜻함

 

공격자에 더 많은 채굴자가 있어 해시율이 높아 많은 블록을 채굴했다고 가정하면 시간이 지날수록 공격자들이 더 많은 블록을 채굴하게 되고 그 격차가 더 커짐

즉, 이중 지출 문제를 활용하여 공격자는 이득을 취함

 

 

 

 

📍코드 출처 : 유데미 강의