반응형
블록
- 다수의 트랜잭션을 모아서 하나로 관리하기 위한 묶음
- 평균 10분 주기로 생성되며, 신뢰성 검증을 통해 이전 블록과 연결하면 블록체인 형태가 됨
블록 내용
- 각 블록에는 일정 시간동안 이루어진 모든 이용자의 거래내역이 기록됨
- 바디에는 거래내역, 헤더에는 넌스(nounce, 암호화와 관련되는 임의의 수) 등의 암호코드
- 거내내역은 해시 함수를 통해 '해시 값'으로 암호화
해시
- 다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑한 값
- 해시 값으로 원래 문자열을 알아낼 수 없기에 해킹이 불가능
해시 함수
- 임의의 길이의 데이터를 고정된 길이의 데이터로 변환하는 함수
- 임의의 길이의 데이터를 변환할 경우 고정된 길이의 데이터 '해시 값'은 1개만 나옴
- 해시 값은 반대로 변환시키면 원본 데이터의 조합은 무수히 많아짐
블록 생성 및 연결 과정
1. 트랜잭션(거래)이 발생하면 여러 노드들에게 전달되고, 전달 받은 노드들은 내용을 검증
2. 거래내역이 기록되려면 노드(블록체인 네트워크에 참여하는 사람)들에게 참인지 거짓인지 과반수 동의를 얻어야 함
3. Nonce 찾기
- 일정한 트랜잭션이 모이면 정보를 블록에 기록함(비트코인의 경우 10분간의 거래내역)
> 직전 블록의 번호, 해시값
> 직전 블록 생성 이후에 전파 받은 트랜잭션 내용
> Nonce
> Resulting Hash: 위 데이터들의 해시값
> Time stamp: 어떤 일이 일어난 시점의 정보를 도장 찍듯 기록, 거래의 전후관례를 논리적으로 규명 - Resulting Hash는 특정조건을 만족해야 함(비트코인의 경우 일정 개수 이상의 0 문자열을 제일 앞에 포함해야 함)
- Resulting Hash 조건을 만족시키는 Nonce를 찾는 행위를 채굴(Mining)이라고 함
- Nonce를 찾으면 하나의 블록이 완성됨
4. 조건에 맞는 블록이 생성한 노드는 이를 다른 노드들에게 전파하여 연결시킴
작업증명 Proof of Work, PoW
- 논스(nonce)를 계산해서 새로운 블록 고유의 해시 값을 찾는 것
- 논스를 바꿔가며 대입해서 계산하며 해시 값이 목표 해시값보다 작아야 함
- 이 과정을 통해 해당 작업에 참여했음을 증명함
- 합의 알고리즘 중 하나임
- 비트코인, 이더리움(2.0 이전), 라이트코인
- 단점
> 컴퓨터 연산능력을 많이 사용하면서, 그에 비례해 전기 소모량과 탄소 배출량이 늘어남
> 이를 해결하기 위해 이더리움은 지분증명 합의 알고리즘으로 사용하겠다고 함 - 이더리움 2.0 세레니티
채굴 Mining
논스값을 찾고 블록 생성을 통해 코인으로 보상 받는 과정
합의 알고리즘
다수의 참여자들이 통일된 의사결정을 하기 위해 사용하는 알고리즘
- 작업증명: 목표값 이하의 해시를 찾는 과정을 무수히 반복함으로써 해당 작업에 참여했음을 증명하는 방식
- 지분증명: 암호화폐를 보유하고 있는 지분율에 비례하여 의사결정 권한을 주는 방식
- 만약 두 명 이상이 동시에 논스값을 찾아 동시에 새로운 블록을 연결하면?
> 두 개 블록 모두 기존 블록에 연결되고, 참여자는 한 시간정도 기다림
> 한 시간 뒤, 두 블록 중 하나에 더 많은 블록이 연결되어있음
> 더 많은 블록이 연결되어 길이가 긴 블록을 승인하고 기존 네트워크에 추가 - 참여자 간의 의견충돌이 발생하면?
> 노드 간의 합의를 따르고, 합의가 이루어지지 않으면 네트워크는 분기를 선택하게 됨(포크 Fork)
> 51%만 지지하면 그 방향으로 의사결정이 이루어짐
지분증명 Proof of Stake, PoS
해당 암호화폐를 보유하고 있는 지분율에 비례하여 의사결정 권한을 주는 합의 알고리즘
- 암호화폐를 보유하고 있는 것만으로 새로 발행되는 코인을 신청할 수 있음
> 암호화폐를 보유한 투자자는 자신의 암호화폐를 위탁
> 투자자 중 무작위로 추첨해, 당첨된 투자자 또는 집단에게 신규 발행한 암호화폐를 지급
> 위탁한 코인이 많을 수록 당첨 확률은 높아짐 - 단점
> 지분 인증 메시지를 받기 위해 인터넷을 연결하는 동안 해킹당할 수 있는 위험 있음
> 많은 지분을 보유한 소수가 계속 신규 코인을 가져가게 됨
> 대규모 투자자들이 시장을 좌지우지하면 일반 투자자들이 이탈하며 시장이 망가짐
포크 Fork
일정 시점에서 생성되는 블록을 기점으로, 두 개의 독립된 블록체인으로 나눔
- 소프트포크
> 블록에서 '디지털 서명' 부분만 분리해 블록의 용량을 증가시키는 업데이트
> 대표적 예로 비트코인의 세그윗(SegWit)
> 세그윗 이후, 비트코인 블록의 용량은 1mb에서 4mb로 증가
> 디지털 서명 용량만 증가이기에 기존 네트워크와 세그윗 이후의 네트워크는 동일한 체인으로 계속 연결 - 하드포크
> 세그윗 업그레이드 이후 중국에서 대규모 채굴업자가 사용하는 '에이식(ASIC)' 채굴 장비가 무용지물됨
> 세그웻 업데이트에 동의하지 않은 중국 채굴업자들이 독립해 '비트코인 캐시'를 만듦
> 의사결정에 반발하여 특정 블록 이후로 새로운 블록을 형성해 나가는 것을 하드포크라고 함
> 독립된 네트워크로 새로운 암호화폐임
반응형