BlockChain 01 개념

Seungju Hwang·2020년 12월 23일
0

알쓸신기

목록 보기
1/3
post-thumbnail

Intro

비트코인을 비롯한 여러 암호화폐가 최근 다시 급등하면서, 팔아버린 내 코인들이 생각이 났어요.. 물론 중간에 수익실현해서 여행도 가고 부모님 용돈도 드렸지만 그래도 인간의 욕심은 끝이 없잖아요.. 그대로 뒀으면 이번에 M1칩 탑재한 맥북도 사고, 패드도 사고 했을 텐데 말이에요. ㅎㅎㅎ

아무튼 그래서 저를 기쁘게 또는 아프게 했던 비트코인의 기반이 되는 블록체인에 대해 요번에 더 자세히 알아보려고 합니다 ~__~
기본개념 뿐만 아니라 간단하게 블록체인을 구현해 볼거에요.(난이제개발자어린이니까요)

🔵 BlockChain 이란?

관리 대상인 데이터를 블록 이라고 하는 P2P 방식을 기반으로 생성된 체인 형태의 연결고리 분산 데이터 저장 환경에 저장하여 누구라도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기반의 원장 관리 기술이다


Block Data : 관리 대상 데이터
Block Header : 블록간의 연결고리

Hash

해쉬함수 : 임의의 길이인 데이터를 고정된 길이의 데이터로 매핑하는 함수

  • 뭘 넣든 일정한 길이의 알 수 없는 난수가 결과로 출력
  • 글자가 하나만 바뀌어도 완전히 다른 결과로 출력
  • 출력값으로 입력값을 예측할 수 없다.
  • 같은 내용의 값을 입력하면 결과값은 항상 같다.

따라서 이러한 해쉬함수의 특징을 활용하여 블록을 암호화 합니다

체인 구현

이전 블록의 해쉬값을 현재 블록에 저장합니다. 그리고 해쉬를 돌려서 나온 해쉬값을 다음 블록에 저장합니다. 이렇게 블록간의 관례를 맺습니다.

  • 그러나 처음 블록을 만들 때는 이전 해쉬값이 없습니다. 이런 경우 null 또는 랜덤값을 넣어주면 되고 이를 Genesis block 이라고 합니다.

🔵 작업증명 (Proof Of Work)

블록을 수정하거나 생성할 때, 이게 합의된 행동인 지 파악하기 위해 작업증명이 필요합니다.

Nonce

합의한 방식으로 해쉬값이 나오게 만드는 임의의 값

  • 이전의 해쉬값 + 데이터블록 + None => 새로운 블록 생성
  • 이때 새로운 블록의 해쉬값이 합의한 방식내에서의 해쉬값이어야 함.
  • 이전의 해쉬값 + 저장할 데이터 블록은 고정되어 있으므로 해쉬값을 합의한 방식으로 만들려면 결국 원하는 Nonce를 찾아야함
  • 이 원하는 Nonce를 찾는 과정을 마이닝 (채굴)이라 표한하고, 이게 블록체인의 중요한 과정임
profile
기록하는 습관은 쉽게 무너지지 않아요.

0개의 댓글