본문 바로가기

개발 노트/Blockchain

[블록체인]Blockchain 이란?

반응형

Blockchain 이란?

블록체인이란 블록을 체인으로 연결해 놓은 것을 의미합니다. 1개의 블록을 체인에 연결할 때 마다 블록체인 네트워크에 참여한 참여자들의 합의하에 연결 가능하다고 인정된 블록들만 체인에 연결될 수 있습니다.

 

 

Bitcoin 구조

블록체인의 각 블록에는 크게 (1) Block Hash, (2) Block Header, (3) Block Body 가 있습니다.

 

(3) Block Body 를 Hash 한 값이 (2) Block Header 의 Merkle Root Hash 값으로 기록되고, (2) Block Header 를 Hash 한 값이 (1) Block Hash 가 되며 이 Block Hash 값은 다음 블럭의 (2) Block Header 의 Previous Hash 값에 기록됩니다.

 

만약, 이전 블록의 Block Body 또는 Block Header 의 값이 1개만 바뀌어도 해당 블록부터 이후 블록들의 모든 Hash 값이 바뀌기 때문에 위변조가 불가능 합니다.

해쉬(Hash) 란?

개발자들에겐 익숙한 개념이지만,보통은 생소한 개념일 것입니다. Hash 란 해쉬, 해쉬알고리즘 라고도 하며 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수 입니다. 

해쉬 함수에 의해 얻어지는 값은 해쉬 값, 해쉬 코드, 해시 체크섬 또는 간단하게 해쉬 라고 합니다.

아래 이미지는 입력 받은 이름을 해쉬 함수의 입력 인자로 받고, 해쉬 함수의 출력으로는 0~15 의 값 중 한가지로 나오게 하는 함수의 예시입니다. 블록체인에서는 입력값도 Block Body, Block Header 등 훨씬 큰 입력 값 (수 MB) 과 출력 값 (32 bytes) 을 가진다.

 합의 알고리즘

 우리가 많이 알고있는 Bitcoin 이나  Ethereum 의 경우 현재 PoW(Proof of Work) 라는 합의 알고리즘을 사용하고 있습니다. PoW 는 합의를 위한 조건을 만족시키기 위해 Computing Power 를 사용하는데 들이는 시간과 리소스 (Work) 를 네트워크의 참여자들이 인정해주어 블록에 포함시켜주 것을 인정하는 방식입니다.

 

Bitcoin 에서의 PoW 는 Block Header 를 Hash 암호화한 Block Hash 값의 0번째부터 헤더에 기록된 Bits 수만큼의 bit 값이 0이 나오는 Nonce 값을 찾기 위해 Computing Power 를 사용합니다. 이 Nonce 를 찾는 행위를 Mining(채굴)이라고 하며 Bitcoin 은 대략적으로 10분 내에 찾을 수 있는 Bits 수가 지정되며 체인의 길이가 길어지고 채굴 시간이 짧아질 수록 Bits(Block Hash 의 맨앞부터 0 bit의 개수) 수가 커집니다.

Ethereum 은 PoW (Ethash) 는 평균적으로 12초 내에 채굴 가능하도록 설정되어 있습니다. 

반응형

'개발 노트 > Blockchain' 카테고리의 다른 글

[블록체인] Hyperledger Projects  (0) 2022.03.29
[블록체인] Ethereum  (0) 2022.03.28