💡 Today I Learned
블록체인의 블록 생성 과정에 대해 알아보았다.
- 새로 배움: 거래를 일으킨 주체와 블록을 생성하는 채굴자는 동일인물이 아닐 수 있다
- 오늘의 하이라이트: 블록 생성이 성공하기 위한 규칙이 정해져있고, 그 규칙을 만족하는 블록이 생성된다. 논스값을 변경하며 규칙을 충족하기 위한 연산을 한다.
- 궁금한 내용: 루나코인은 왜 망했는가?
- 블록체인 트랜잭션에 사용되는 키를 구분할 수 있다.
- Nonce의 역할을 이해한다.
- 블록체인 수수료와 보상의 역할을 이해한다.
리서치 방법론
- 뭐가 문제인가
- 통계 참고: 데이터를 통해 문제라고 인식되지 않아도 문제로 볼 수 있는 것들이 있다
- 통계청, 서울연구원, 경기연구원 등
- 신문 참고
- 이걸 해결하기 위한 어떤 방식이 있었다
- 나는 이렇게 해결할 것이다
- 결과는 이러했다
블록체인 구조
블록체인 헤더
블록 자체에 대한 메타데이터
블록 해시와 연결되어 있다
실제로 중요한 것은 거래 정보다 -> 누군가에게 영향을 미쳐야한다
- 그러려면 해시가 바껴야 한다.
- 바디 데이터를 가지고 머클 해시를 만든다 -> 머클해시가 트리를 만든다
- 거래 정보가 변경되면 머클해시가 변경되고, 머클해시가 변경되면 블록해시가 변경된다
블록체인 바디
거래 정보가 담겨있다 -> 머클해시의 재료
✦ 블록체인의 해시값은 블록 자체에는 포함되어 있지 않다
블록체인 트랜잭션
Public & Private Key & Address
개인키로 디지털 서명을 만든다
공개키로 비트코인 주소를 만든다

- 왼쪽에서 오른쪽으로는 가능하지만, 오른쪽에서 왼쪽으로는 불가하다
거래소는 블록체인이 아니라 중앙화된 DB다
공개키
개인키
블록체인 마이닝
채굴이란?
이자를 캔다
고 해서 파밍이라고 한다.
- 증명과 함께 블록을 뿌리는 행위다.
- Hash, Nonce는 변하는 값이다
프로세스
- target 값 보다 작으면 채굴에 성공, 크면 논스값을 변경한다
- 블록을 생성하게 해주는 권한에 대한 규칙 필요 -> 어려워야겠지?
- 타깃값은 지난 블록이 생성된 시간과... 시간과 상관관계가 있는 수식이 있다
- 난이도와 연관되어 있다
- 시스템에 의해 정해진다 (bits, difficulty도)
- 코어 개발자가 만들어놓은 코드에 의해서 정해지고 규칙이 정해지면 채굴하는 사람이 그걸 알 수 있다 (깃헙 리포지토리)
- 블록해시 생성 -> 타깃값과 비교 -> 작으면 채굴 성공 -> 크면 논스 변경 -> 반복
- 🙋🏻♀️ 왜 작아야 하는가?
- 난이도가 더 높으려면 값이 더 작고, 난이도가 더 낮으려면 값이 더 높아야한다! -> 발생할 확률이 적으면 난이도가 적어지는것 (앞에 나와야하는 000의 개수가 많아지는 것과 같은 것. 000이 많아질수록 수가 작다는 얘기니까)
16진수의 최대값은 FFF...FFF인데, 더 큰 값으로 설정해주는 경우 그 이상으로 올라갈 수 없다 (한계성 때문에) -> 최대치에서 낮추려는 의도
- 생성된 블록은 체인의 가장 끝에 붙는다
- 채굴은 컴퓨터를 가진 누구나 할 수는 있다
블록보상 및 수수료
- 블록을 생성한 사람에게 거래보상과 수수료의 합을 준다
- 수수료가 높을 수록 거래가 처리되는 속도가 빨라진다 (순위가 높아진다)
- 🙋🏻♀️ 거래를 하는 당사자들이 블록을 생성하나요?
- 거래를 하는 사람들은 따로 있고, 보통 채굴자는 블록 생성 후 나르는 작업을 한다고 보면 된다. 제3자가 채굴하게 된다. 수수료가 높은 거래를 위주로 블록을 생성하고 나르게 된다. 거래를 일으킨 주체와 채굴자가 다른 사람인 경우가 많다.
실질적인 영향
- 채굴이 성공해야 체인 시스템이 유지된다
- 채굴자들은 이득을 얻을 수 있다 (거래 수수료와 블록 보상 -> 전기가 사용되기 때문)
- 실질적으로 블록체인 시스템이 지속가능하게 발전될 수 있는 이유
- 사용자가 일으킨 거래가 완료되는데 기여한다. (finalized)
🙋🏻♀️도대체 왜 이런 걸 하나요?
네트워크 해시레이트 57%
루나코인은 왜 망했나?