검수요청.png검수요청.png

제네시스블록

위키원
(제네시스 블록에서 넘어옴)
이동: 둘러보기, 검색

제네시스블록(genesis block)은 블록체인에서 생성된 첫 번째 블록을 말한다. 첫 번째 블록이 생성된 이후에 다음 블록이 지속적으로 생성되어 마치 체인처럼 이전 블록에 연결되기 때문에, 제네시스블록이 생성되었다는 것은 해당 블록체인 네트워크가 시작되었다는 상징적 의미를 가지고 있다.

개요

개념
비트코인의 경우 2008년 10월 30일 사토시 나카모토가 작성한 비트코인 백서가 발표되었고, 약 2개월 뒤인 2009년 1일 3일 비트코인 제네시스블록이 생성되었다. 이더리움의 경우 2013년 11월 비탈릭 부테린이 이더리움 백서를 작성했고, 약 1년 반 정도 개발을 진행하여, 2015년 7월 30일 이더리움 제네시스블록이 생성되었다. 한편 블록이 생성된 순서는 높이(height)로 표현하는데, 네트워크가 최초에 시작될 때 만들어진 블록이 제네시스블록이 되며 그 높이는 0이다. 예)비트코인 제네시스블록(블록높이:0)


비트코인의 등장배경
2000년대 초반, IT버블 붕괴, 911테러, 아프간/이라크 전쟁 등으로, 미국 경기가 악화되자 이에 미국은 경기부양책으로 초 저금리 정책을 펼쳤다. 이에 따라 주택융자 금리가 인하되었고 부동산가격이 상승하기 시작했다. 주택담보대출인 서브프라임 모기지의 대출금리보다 높은 상승률을 보이는 주택가격 때문에 파산하더라도 주택가격 상승으로 보전되어 거래량은 대폭 증가하였다. 증권화된 서브프라임 모기지론은 높은 수익률이 보장되며 신용등급이 높은 상품으로 알려져 거래량이 폭증했다.

하지만, 2004년 미국이 저금리 정책을 종료하면서 미국 부동산 버블이 꺼지기 시작했으며, 서브프라임 모기지론 금리가 올라갔고 저소득층 대출자들은 원리금을 제대로 갚지 못하게 된다. 증권화되어 거래된 서브프라임 모기지론을 구매한 금융기관들은 대출금 회수불능사태에 빠져 손실이 발생했고, 그 과정에 여러 기업들이 부실화 된다. 미 정부는 개입을 공식적으로 부정했고 미국의 대형 금융사, 증권회사의 파산이 이어졌다. 이것이 세계적인 신용경색을 가져왔고 실물경제에 악영향을 주었고, 세계 경제시장에 타격을 주어 2008년 이후 세계금융위기까지 이어지게 되었다.

결국 이러한 미국의 저금리정책과 이기주의로 집을 팔고 싶어도 팔리지 않자 이로 인해 집값이 떨어지면서 대출금 상환이 전혀 불가능해진다. 자연적으로 서브프라임 모기지론에 파생되어 나온 모든 투자기업 및 회사들이 도산하게 되었고, 세계 5위에 속하는 금융회사였던 리먼브라더스는 과도한 서브프라임 모기지론 투자로 인해 파산을 신청하며 2008년, 세계 금융위기 사태가 발발하게 된다. 이 때 미국 정부는 리먼 브라더스는 파산하게 내버려 두고 AIG는 구제금융을 제공하면서 '대마불사(too big too fail)'로 논란이 된다.

이러한 미국 연방준비위원회의 대규모 양적완화를 지켜보던 사토시는 '미국 연방준비은행이 달러의 모든 권한을 가지고 있기 때문에 위기가 심화됐다'라고 생각했고, 탈중앙화된 화폐의 필요성을 느끼게 된다. 이후 2009년 1월 3일, 비트코인의 첫 블록인 제네시스블록이 생성됐고 나카모토 사토시라는 이름으로 비트코인이 등장했다. [1]

기술

메인 네트워크 제네시스블록(Main network genesis block)
비트코인 이전 버전(1613행)에 나타난 제네시스블록의 표현이다. 첫 번째 섹션은 블록을 재생성하는데 필요한 모든 변수를 정확하게 정의한다. 두 번째 섹션은 표준 printblock 형식의 블록으로, 첫 번째 섹션에 있는 데이터의 단축버전이 포함되어 있다. [2]

GetHash()      = 0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
hashMerkleRoot = 0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
txNew.vin[0].scriptSig     = 486604799 4  
0x736B6E616220726F662074756F6C69616220646E6F63657320666F206B6E697262206E6F20726F6C6C65636E61684320393030322F6E614A2F3330207365 
6D695420656854
txNew.vout[0].nValue       = 5000000000
txNew.vout[0].scriptPubKey = 
0x5F1DF16B2B704C8A578D0BBAF74D385CDE12C11EE50455F3C438EF4C3FBCF649B6DE611FEAE06279A60939E028A8D65C10B73071A6F16719274855FEB0FD8A6704 OP_CHECKSIG
block.nVersion = 1
block.nTime    = 1231006505
block.nBits    = 0x1d00ffff
block.nNonce   = 2083236893

CBlock(hash=000000000019d6, ver=1, hashPrevBlock=00000000000000, hashMerkleRoot=4a5e1e, nTime=1231006505, nBits=1d00ffff, nNonce=2083236893, vtx=1) CTransaction(hash=4a5e1e, ver=1, vin.size=1, vout.size=1, nLockTime=0) CTxIn(COutPoint(000000, -1), coinbase 04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e6420626169 6c6f757420666f722062616e6b73) CTxOut(nValue=50.00000000, scriptPubKey=0x5F1DF16B2B704C8A578D0B) vMerkleTree: 4a5e1e


해시(Hash)
제네시스블록의 해시 '000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f'는 초기 블록에 필요한 것보다 두 개 더 많은 16진수 0을 가진다. [3]

활용

제네시스블록 데이터 (Genesis Block data)

비트코인

비트코인 제네시스블록(Bitcoin Genesis Block)

- 제네시스: genesis, 창세기, 기원, 발생 등의 의미
- 블록: block, 코인의 생성, 전송이 기록된 장부
- 전송내역: 없음
- 코인생성: 신규 블록이 생성되면서 50BTC가 새로 생김
- 코인주소: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
- 생성시간: 2009년 01월 03일 18:15:05

이렇게 처음 블록이 생성되며 '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa' 주소 안에 50BTC가 생성된다. [4]

제네시스블록 데이터
코인베이스 매개 변수(위에 16진수로 표시됨)에는 일반 데이터와 함께 다음 텍스트가 포함된다.

타임스(2009.01.03) 뉴스 헤드라인

"The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"
"2009년 1월 3일/"더 타임스, 은행들의 두번째 구제금융을 앞두고 있는 U.K 재무장관

해당 글은 최초의 비트코인 트랜잭션에 남겨진 유명한 문구이며, 2009년 1월 3일 실제 런던의 타임스지 1면의 뉴스 헤드라인이다. 이는 나카모토 사토시의 비트코인 개발에 대한 근본적인 동기를 보여준다. 이러한 직설적인 뉴스 헤드라인이 내포하는 것은 2009년 금융위기 당시, 탈중앙화된 화폐의 필요성을 느끼게 된 사토시가 금융위기를 해결할 기술을 개발함으로써 미국 정부를 비판한 것이라고 볼 수 있다. 또한 'Chancellor'라는 대중적이지 않은 단어를 사용함으로써 그가 영국인일지도 모른다는 사실을 내포하고 있다.

- Chancellor(챈슬러, 장관) : 소수의 영국 사람들이 사용하는 단어로 '장관'이라는 뜻을 가지며, 일반적으로 잘 사용되는 단어는 아니다.

타임스탬프(Time Stamp)
블록에는 거래 데이터를 비롯해 타임스탬프와 이전 블록의 해시값이 표시되어 있다. 타임스탬프는 블록이 생성된 시간을 명시함으로써 다른 내역과 겹치지 않도록 한다. 이전 블록의 해시값은 블록과 블록은 체인처럼 연결되어 있는데 연결되어 있는 블록들이 서로 해시값을 찾도록 함으로써 위변조를 막고 있다. 새로 생성되는 블록은 채굴자들의 작업증명(PoW) 과정을 거쳐 블록체인에 추가된다. 비트코인의 경우, 10분마다 새로운 블록을 생성하여 블록체인에 연결하고 있다. 속도가 느리다는 단점이 있어 블록을 크게 만들어서 더 빠르게 처리할 수 있도록 하는 식의 대안(라이트코인 등)도 나오고 있다. [5]

제네시스블록의 hex version

00000000   01 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00000010   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00000020   00 00 00 00 3B A3 ED FD  7A 7B 12 B2 7A C7 2C 3E   ....;£íýz{.²zÇ,>
00000030   67 76 8F 61 7F C8 1B C3  88 8A 51 32 3A 9F B8 AA   gv.a.È.ÈŠQ2:Ÿ¸ª
00000040   4B 1E 5E 4A 29 AB 5F 49  FF FF 00 1D 1D AC 2B 7C   K.^J)«_Iÿÿ...¬+|
00000050   01 01 00 00 00 01 00 00  00 00 00 00 00 00 00 00   ................
00000060   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00000070   00 00 00 00 00 00 FF FF  FF FF 4D 04 FF FF 00 1D   ......ÿÿÿÿM.ÿÿ..
00000080   01 04 45 54 68 65 20 54  69 6D 65 73 20 30 33 2F   ..EThe Times 03/
00000090   4A 61 6E 2F 32 30 30 39  20 43 68 61 6E 63 65 6C   Jan/2009 Chancel
000000A0   6C 6F 72 20 6F 6E 20 62  72 69 6E 6B 20 6F 66 20   lor on brink of 
000000B0   73 65 63 6F 6E 64 20 62  61 69 6C 6F 75 74 20 66   second bailout f
000000C0   6F 72 20 62 61 6E 6B 73  FF FF FF FF 01 00 F2 05   or banksÿÿÿÿ..ò.
000000D0   2A 01 00 00 00 43 41 04  67 8A FD B0 FE 55 48 27   *....CA.gŠý°þUH'
000000E0   19 67 F1 A6 71 30 B7 10  5C D6 A8 28 E0 39 09 A6   .gñ¦q0·.\Ö¨(à9.¦
000000F0   79 62 E0 EA 1F 61 DE B6  49 F6 BC 3F 4C EF 38 C4   ybàê.aÞ¶Iö¼?Lï8Ä
00000100   F3 55 04 E5 1E C1 12 DE  5C 38 4D F7 BA 0B 8D 57   óU.å.Á.Þ\8M÷º..W
00000110   8A 4C 70 2B 6B F1 1D 5F  AC 00 00 00 00            ŠLp+kñ._¬....

세분화

1000000 - version
0000000000000000000000000000000000000000000000000000000000000000 - prev block (이전 블록)
3BA3EDFD7A7B12B27AC72C3E67768F617FC81BC3888A51323A9FB8AA4B1E5E4A - merkle root (머클 루트)
29AB5F49 - timestamp (타임스탬프)
FFFF001D - bits
1DAC2B7C - nonce
01 - number of transactions (트랜잭션 번호)
01000000 - version 
01 - input
0000000000000000000000000000000000000000000000000000000000000000FFFFFFFF - prev output (이전 출력)
4D - script length (스크립트의 길이)
04FFFF001D0104455468652054696D65732030332F4A616E2F32303039204368616E63656C6C6F72206F6E206272696E6B206F66207365636F6E64206261696C6 
F757420666F722062616E6B73 - scriptsig
FFFFFFFF - sequence 
01 - outputs (출력)
00F2052A01000000 - 50 BTC (50 비트코인)
43 - pk_script length (스크립트의 길이)
4104678AFDB0FE5548271967F1A67130B7105CD6A828E03909A67962E0EA1F61DEB649F6BC3F4CEF38C4F35504E51EC112DE5C384DF7BA0B8D578A4C702B6BF11 
D5FAC - pk_script
00000000 - lock time (잠금시간)

각주

  1. wikipedia, 〈서브프라임 모기지 사태〉, 《위키백과》 , 2019-05-28
  2. phuzion7, 〈사토시가 비트코인 제네시스블록에 남긴 유명한 메시지의 의미: Bitcoin Genesis block, Satoshi's message〉, 《Steemit》, 2018-07
  3. 비트코인위키, 〈Genesis Block〉, 《bitcoin wiki》, 2017-11-30
  4. 쌍둥아빠, 〈비트코인 개념 이해하기(3) - 제네시스블록〉, 《땡글닷컴》, 2017-03-31
  5. block chain studio ,〈(울룩불룩 블록체인)비트코인 창세기편 - 비트코인 제네시스 블록〉, 《Steemit》, 2018

참고자료

같이 보기


  검수요청.png검수요청.png 이 제네시스블록 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.