비트코인을 비롯한 여러 암호화폐가 최근 다시 급등하면서, 팔아버린 내 코인들이 생각이 났어요.. 물론 중간에 수익실현해서 여행도 가고 부모님 용돈도 드렸지만 그래도 인간의 욕심은 끝이 없잖아요.. 그대로 뒀으면 이번에 M1칩 탑재한 맥북도 사고, 패드도 사고 했을 텐데 말이에요. ㅎㅎㅎ
아무튼 그래서 저를 기쁘게 또는 아프게 했던 비트코인의 기반이 되는 블록체인에 대해 요번에 더 자세히 알아보려고 합니다 ~__~
기본개념 뿐만 아니라 간단하게 블록체인을 구현해 볼거에요.(난이제개발자어린이니까요)
관리 대상인 데이터를
블록
이라고 하는P2P
방식을 기반으로 생성된 체인 형태의 연결고리분산 데이터 저장 환경
에 저장하여 누구라도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기반의 원장 관리 기술이다
Block Data : 관리 대상 데이터
Block Header : 블록간의 연결고리
해쉬함수 : 임의의 길이인 데이터를 고정된 길이의 데이터로 매핑하는 함수
따라서 이러한 해쉬함수의 특징을 활용하여 블록을 암호화 합니다
이전 블록의 해쉬값을 현재 블록에 저장합니다. 그리고 해쉬를 돌려서 나온 해쉬값을 다음 블록에 저장합니다. 이렇게 블록간의 관례를 맺습니다.
블록을 수정하거나 생성할 때, 이게 합의된 행동인 지 파악하기 위해 작업증명이 필요합니다.
합의한 방식으로 해쉬값이 나오게 만드는 임의의 값
해쉬값
이어야 함.해쉬값
을 합의한 방식으로 만들려면 결국 원하는 Nonce를 찾아야함