블록체인 작동 순서
- A가 B에게 송금
- 해당 거래 정보가 담긴 block 생성
- 네트워크 내 모든 참여자에게 block 전송
- 모든 참여자가 해당 거래의 타당성 확인
- 승인된 block을 기존의 chain 에 연결 (거래 기록 수정 불가)
- A에서 B에게 송금 완료
블록체인 작동 원리
- 다수의 온라인 거래 기록을 묶어 하나의 데이터 블록을 구성
- 해쉬값을 이용하여 이전 블록과 체인처럼 연결
- 정보의 전부 또는 일부를 P2P 방식으로 전 세계 여러 컴퓨터에 복사하여 분산 저장 및 관리
노드
- 네트워크에서 연결 포인트 혹은 데이터 전송의 종점
- 개개인의 서버(참여자)를 노드라 칭함
블록 구조
👉 Header
- 버전 (version)
- 소프트웨어 / 프로토콜 버전
- 이전 블록의 해시값 (previous block hash)
- 바로 앞에 위치하는 블록의 해시값
- 머클 해시 (merkle hash)
- 머클 트리 : 개별 거래 정보의 거래 해쉬를 이진트리 형식으로 구성
- 트리 루트에 위치하는 해시값
- 타임스탬프 (timestamp)
- 블록이 생성된 시간
- 난이도 (difficulty)
- 난이도 조절용 수치
- 논스 (nonce)
- 최초 0에서 시작하여 조건을 만족하는 해시값을
👉 Body
- 거래 정보
- 입출금 관련 여러가지 정보
- 기타 정보
- 블록 헤더와 거래 정보를 제외한 정보
- 블록 해쉬 계산에 사용 x
블록 해쉬
- 블록 헤더 정보를 입력 값으로 SHA256 해쉬 함수를 적용해서 계산되는 값
- 32 바이트의 숫자 값
- 블록 전체 해쉬가 아닌, 블록 헤더를 해쉬
👉 머클 해쉬와 블록 해쉬 관계
- 개별 거래의 해쉬값 생성
- 개별 거래 해쉬 값 끼리 해싱해서 또 다른 해쉬 값 생성
- 1,2 과정 반복
- 가장 마지막 해쉬 값이 머클 해쉬
- 머클 해쉬를 포함한 블록 헤더를 해싱한 값이 블록 해쉬
- 블록 헤더의 값 중 유일하게 변경 되는 값은 Nonce
- 채굴에 이용
블록체인 구조
👉 비트코인
👉 이더리움
Smart Contract
- 계약 내용과 실행 조건을 컴퓨터 코드를 통해 사전에 설정
- 해당 조건이 충족 되면 블록체인 네트워크에서 자동적으로 계약 집행
- 온라인 상에서 거래 중, 중개자 없이도 컴퓨터 코드 만으로 법적 효력을 지닌 계약 집행 가능
합의 알고리즘
- 참여자들의 통일된 의사결정을 위해 사용하는 알고리즘
- 합의를 통해 검증된 블록이 체인에 연결
👉 작업 증명 (PoW : Proof of Work)
- 블록 생성을 하고자 하는 노드들이, 특정한 해쉬값을 찾는 연산 수행 후, 특정한 난이도 작업을 수행했음을 증명
- 마이너들은 해시값을 찾기 위해 경쟁
- 특정 마이너가 목표값에 해당하는 해시값을 찾는데 성공하면 블록 생성 (채굴, 보상의 개념)
- 난이도 : 난이도 목표 값보다 작은 블록 해시값을 만드는데에 성공하면 블록 생성
- 해당 해시를 블록 해시로
- 논스 : 블록 해시 생성
- 0 … N 까지 숫자 변경
- 난이도 목표 도달
- 블록 생성
👉 지분 증명 (PoS : Proof of Stake)
- 작업 증명 합의 알고리즘의 과도한 에너지 소비 및 채굴 독점화 대안
- 참여자의 소유 지분, 보유 일수 기반으로 블록 생성 기회 제공
'프로그래밍 > 블록체인' 카테고리의 다른 글
[Ethereum] 이더리움 용어 및 스마트 컨트랙트 (0) | 2023.08.28 |
---|