#Bitcoin
-
Bitcoin은 Block 단위이다
- 블럭에는 트랜잭션(거래기록)이 담겨있다
- 해시 퍼즐을 풀면 코인을 얻을 수 있고, 이를 채굴이라한다
-
블럭에 데이터를 기록하는 방식은 작업 증명방식을 사용한다
- 작업 증명방식 중에서도 해시퍼즐(SHA-256)을 사용한다
- 작업 증명 방식은 연산이 많이 필요하다
- 모든 블록에서 똑같은 거래 기록을 기입하는 것이다
- 이 때문에 쓸데 없는 전력소모가 많다고들한다
- 하지만 오히려 이러한 점이 신뢰도를 높인다.
-
해시 충돌
- 해시 결과 값이 동일한 것을 말한다
- 이는 보안이 취약함을 의미한다
- 하지만 필연적 해시 충돌까지 남은 시간을 계산하면 엄청 많이 남아 걱정 안해도된다
- 양자 컴퓨터가 나오면 이야기가 조금 달라진다
-
Hash Rate
- 전체 Block Chain 네트워크의 초당 연산량
-
위에서 말했듯 양자 컴퓨터의 연산속도가 너무 빨라 해시 충돌 발생 시기를 앞 당길 것이다
- 이를 양자 컴퓨터 리스크라 한다
- 비트코인은 양자 컴퓨터 리스크 [^risk] 는 포크를 통해 극복하려고 한다
- 포크란 시스템 규칙을 수정하는 것을 말한다. 소프트 포크와 하드 포크가 존재한다
- 블럭 헤더(블록 정보) + 블럭 바디(트랜잭션 정보)
- 블록헤더
- 이진 블록 헤더 해시
- 블럭 연결
- 하나의 해시 값 도출 (이진 트리 구조)
- 머클 트릭 루트 해시
- 트랜잭션 위변조 검증
- 수 많은 트랜잭션 중 하나가 달라지면 해시값도 달라짐
- 반드시 감시하는 구조
- 트랜잭션 위변조 검증
- 타임 스탬프
- 블록 생성시간
- 로컬 타임을 이용함
- 타깃 난이도 비트
- 블럭 싱성을 의한 난이도 저장
- 목표 해시 값에 영향을 미침
- 난스
- 블록의 답
- 해시값에 0 을 붙이고SHA-256 2번 적용
- 이진 블록 헤더 해시
- 바디
- 트랜잭션이 저장됨
- 블록헤더
[^risk]: 양자 컴퓨터의 공격을로 안전하다고 여겨지는 알고리즘(post 양자 암호화 알고리즘)을 이용해 포크를 진행해 방어하는거다