proof-of-work
Satoshi Nakamoto의 뛰어난 업적은 분산 네트워크에서 간의 합의를 달성하기 위한 작업 증명 프로토콜을 만드는 것
비트코인이 모두 채굴된 이후에는 비트코인이 거래될 때마다 발생하는 거래 수수료를 보상으로 채굴자에게 지급
직접민주주의
This Process is mining
- 어떤 노드가 10분 이내에 굉장히 빠르게 논스값을 찾아내서 새로운 블록을 연결한다면, 시간은 리셋됩니다. 다시 새로운 10분이 모든 채굴자에게
- 더이상 신규 비트코인이 채굴되지 않을 때, 신규 블록을 연결한 네트워크 참여자에게 이루어지는 보상은 신규 비트코인이 아니라, 수수료
해결한 사람에게 블록을 생성할 수 있는 권한을 주고 그 보상으로 코인을 제공하는 알고리즘
문제의 경우 해시 함수의 결과값이 특정 값보다 작아지도록 하는 입력 값(Nonce)을 찾는 문제
비트코인의 경우 약 10분 정도 걸려 풀릴 수 있도록 난이도를 조절해 놓았으며 Nonce 값을 만드는데에는 SHA256 이라는 알고리즘을 사용
- D: 난이도 (Difficulty)
- M은 난이도 D의 최대 값(2²⁵⁶-1)
- N: Nonce
Nonce
정답
해시값 뒤에 0같은거 붙여서 다시 해시
숫자 높여서 목표 해시값보다 낮을 때까지 이거 반복
목표 해시값은 타깃 난이도에 따라 결정되고
특징
노드들이 트랜잭션을 검토해야 하기 때문에 모든 블록 정보를 보유해야 합니다
그래서 위,변조가 사실상 어려워 보안성이 좋다
그래서 P2P 네트워크에서 단일 정보를 공유하는 구조상 네트워크에 확산되는 시간을 없애기에는 불가능
문제점
블록체인에서는 분기가 발생해서 충돌이 일어날 때 어느 블록체인을 믿을 것인가에 대한 기준
PoW는 블록체인이 분기하게 되는 경우 검증이 많이 된Longest Chain 올바른 것으로 판단
채굴자는 블록을 생성하고 이를 P2P 네트워크에 전파하면서 동시에 블록생성 보상인 ‘비트코인’과 해당 블록 바디의 Coinbase Tx에 포함된 ‘이체 수수료(Transaction Fee)’를 받게 된다