개요 채굴 난이도에 대해서 다시 한 번, 정리해보고 실제 비트코인 블록의 값들에서 다음 채굴 난이도를 계산해보자. * 계산값과 정답이 일치하진 않았다. 실제 구현코드 또는 큰 숫자들의 연산을 처리한 웹페이지의 정확도 등의 문제가 아닐까 싶음 채굴 난이도에 대한 요약정리 비트코인 블록 540277 에 있는 난이도 정보를 보자. - 링크: https://www.blockchain.com/en/btc/block-height/540277 - Difficulty 는 6,727,225,469,722.53 - Bits 는 388618029 = 0x1729D72D - Difficulty 는 가장 쉬운 난이도 (=Genesis 블록의 난이도) 의 몇 배나 어려운가를 의미한다. 6,727,225,469,722.53 배나 ..
개요 비트코인의 채굴 난이도는 이전 채굴 시간을 참고하여 10분보다 빠르면 난이도를 높이고, 10분보다 늦으면 난이도를 올린다고 알고 있다. 우선 난이도의 개념을 이해해보고, 정확한 난이도 결정 알고리즘을 알아보자. 참고링크 - https://en.bitcoin.it/wiki/Difficulty 결론부터 간단히 채굴을 하는 각각의 노드가 (네트워크로 연결된 다른 노드와는 상관없이) 자신이 가지고 있는 블록체인의 기존 블록들에서 얻은 정보를 바탕으로 다음에 채굴할 블록의 난이도를 계산해낸다. 조금만 더 긴 결론 - 결론은 아래 내용을 다 따라 읽은다음, 다시 정리하듯 읽으면 도움이 될듯 하다. 1) 비트코인은 난이도 (difficulty)인 실수값 (float)를 자신만의 방식으로 블록에 명시한다. 2) ..
개요 개인적으로 궁금한 부분에 대하여 찾아보았음 10분정도의 거래를 블록으로 만든다는데, 그리고, 한 블록의 크기는 최대 1 MB 라는데 과연 채굴할 다음 블록은 어떻게 결정될까? 참고링크 - https://bitcoin.stackexchange.com/questions/43894/who-decides-that-the-new-block-is-ready-to-hash 결론부터 간단히 1) 어떤 한 블록이 채굴되는 시간은 대략 10분 정도가 걸린다. 2) 그러면, 채굴할 거래로 선정되지 않았던 거래들과, 채굴되는 동안 발생한 신규거래가 쌓인다. 3) 채굴이 10분쯤에 끝나면, 채굴자들은 채굴되지 않고 쌓인 거래들을 블록으로 만들어 채굴하기 시작한다. 좀더 살펴보기 1) 채굴자들은 각자 알아서 자유롭게 거래를..
개요 비트코인의 한 블록, 그중에서 해시를 생성하는 입력 데이터 80 바이트에는 timestamp 가 들어있습니다. timestamp 에 대해 좀더 들여다보려 합니다. 참고링크: https://en.bitcoin.it/wiki/Block_timestamp Timestamp 알아보기 Unix time Unix time 이란 1970년 1월 1일 0시 0분 0초 (UTC) 로부터 몇 초나 지난것인지를 표현한 것이다. 위 그림의 경우 타임스탬프가 358B0553 이니 이만큼의 초가 지난 시간이라는 것이다. 실제 날짜로 변환해보면 아래와 같이 1998년 6월 20일로 나..
SHA-256 씨리이즈 1. SHA-256 Hash Algorithm 2. SHA-256 프로세스 정리 3. SHA-256 By Hand - Message Expansion Function 4. SHA-256 By Hand - Round Function 5. SHA-256 Bitcoin - 참고링크: http://www.righto.com/2014/09/mining-bitcoin-with-pencil-and-paper.html - 채굴과정 상세설명 링크: http://www.righto.com/2014/02/bitcoin-mining-hard-way-algorithms.html 결론부터 (TL;DR) - 비트코인의 한 블록에서 80 바이트 만큼의 정보를 추출해내서, double SHA-256 을 먹인 값..
SHA-256 씨리이즈 1. SHA-256 Hash Algorithm 2. SHA-256 프로세스 정리 3. SHA-256 By Hand - Message Expansion Function 4. SHA-256 By Hand - Round Function 5. SHA-256 Bitcoin * 사용된 이미지들의 출처: https://www.cs.rit.edu/~ark/lectures/onewayhash/onewayhash.shtml 전체 흐름 복습 이제 핵심이랄 수 있는 Round Function 에 들어가기 전에 전체 흐름을 흝어보고, Round Function 의 위치를 알아보자. 1) SHA-256 을 먹이고 싶은 메시지 M 이 있다. 2) Padding - 메시지 M 에 1 하나 붙이고 0을 쭈욱 단..
SHA-256 씨리이즈 1. SHA-256 Hash Algorithm 2. SHA-256 프로세스 정리 3. SHA-256 By Hand - Message Expansion Function 4. SHA-256 By Hand - Round Function 5. SHA-256 Bitcoin * 사용된 이미지들의 출처: https://www.cs.rit.edu/~ark/lectures/onewayhash/onewayhash.shtml 잡담 MEXP (Message Expansion Function) 는 생략하고 Round Function 만 할까 했는데MEXP 도 별도로 언급하고, 손으로 (정확히는 구글시트에 기입) 계산해보려 한다.- 지식의 저주가 마음에 걸려서 (= 난 이미 알고 있으니, 요건 쉽겠지 했다..
SHA-256 씨리이즈 1. SHA-256 Hash Algorithm 2. SHA-256 프로세스 정리 3. SHA-256 By Hand - Message Expansion Function 4. SHA-256 By Hand - Round Function 5. SHA-256 Bitcoin 잡담 그리 똑똑한 머리가 아니라, SHA-256 을 손으로 계산하는게 어렵지만은 않다는 이야기에 시도하다가 막히고, 포기하려다 조금 더볼까를 며칠 반복하였다. 구글링을 해도 한글로 된 자료도 없더라. 추측해본바 1) 애써 이거 다 이해할 필요도 없는데 그냥 개념만 이해하고 써먹자는 사람들이 있을꺼고, 2) 휘리릭 이해해버렸는데, (그 사람 입장에서) 이리 쉬운걸 애써 정리할 필요를 못느끼기도 했을거고, 3) (나처럼), ..
개요 * 총 5번의 포스팅으로 나눠서 아래 내용을 다룰 예정이다. - 블록체인, 그 중에서도 비트코인에서 사용되는 SHA-256 해시함수에 대해 알아보고 - 전체적인 계산 프로세스를 정리한 다음 - 손으로 (정확히는 구글시트에) MEXP 와 한 라운드 계산을 해본다. - 마지막으로, 실제 비트코인 블럭의 해시 계산을 해본다 SHA-256 씨리이즈 1. SHA-256 Hash Algorithm 2. SHA-256 프로세스 정리 3. SHA-256 By Hand - Message Expansion Function 4. SHA-256 By Hand - Round Function 5. SHA-256 Bitcoin 주요 참고출처 - SHA 공식 문서: https://nvlpubs.nist.gov/nistpubs/..
- Total
- Today
- Yesterday
- 인텔리제이
- bun
- API
- 티스토리챌린지
- 제이펍
- Bug
- OpenAI
- ChatGPT
- Gin
- solid
- clean agile
- 노션
- 엉클 밥
- 2023
- golang
- websocket
- strange
- 잡학툰
- go
- intellij
- 영화
- 클린 애자일
- 체호프
- folklore
- 독서
- 독서후기
- 오블완
- github
- agile
- notion
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |