[Bitcoin] 비트코인 블록체인 특징
비트코인 블록체인 특징에 대하여 소개합니다.
아래 특징들은 비트코인 블록체인뿐만 아니라, 다른 블록체인도 거의 유사합니다.
탈중앙성 (Decentralization)
탈중앙화(Decentralized)는 단 하나의 존재가 모든 프로세싱을 제어하지 않는 것입니다.
이전 포스팅 내용처럼 탈중앙화 시스템(네트워크)은 여러 서버가 일을 분산해 처리하는 것이 아니라
동일한 일을 중복해서 처리합니다.
블록체인에 참여하는 모든 노드들은 각자 저장 장치(외부 기억 장치)에 블록체인을 저장합니다.
각 노드는 작업을 반복한 후 그 결과를 일치시키는 합의 과정을 통해 일의 결과에 대한 신뢰도를 향상 시킬 수 있습니다.
즉, 비트코인의 거래에 대한 신뢰를 보장할 수 있습니다.
또한 탈중앙화 시스템은 각 노드가 중앙 서버 역할을 하기 때문에 사고로 시스템에 장애가 일어날 확률이 적고,
특정 타겟이 존재하지 않아 시스템을 공격하는데 한계가 있어 잠재적으로 해커의 공격을 무력화 시킬 수 있습니다.
블록체인의 다른 특징들도 결국은 탈중앙성에서 파생됩니다.
무결성
각 노드가 블록체인을 가지고 있기 때문에 모든 데이터는 공개되는 것과 마찬가지입니다.
마이너가 합의 알고리즘(PoW)을 통해 새로운 블록을 체인으로 연결할 때, 각 노드가 블록을 검증합니다.
검증 대상은 블록 해시와 머클 트리입니다. 과반수 이상의 검증이 완료되면 새로운 블록을 자신의 블록체인에 연결합니다.
이렇게 블록에 쓰여지는 트랜잭션을 각 노드가 검증하기 때문에 블록체인을 변조하는 것은 사실상 어렵습니다.
비트코인 블록체인에서 블록은 약 10분에 한 개씩 연결됩니다. 10분안에 전 세계에 있는 네트워크에 참여하는 각 노드의 블록체인을 모두 해킹하는 것은 불가능에 가깝기 때문입니다.
불변성
블록은 이전 블록의 해시값을 이용하여 서로 연결되어 있습니다.
블록체인에서 이미 연결된 블록의 해시값은 변경할 수 없습니다. 변경할 경우, 잘못된 블록으로 판별되어 인정 받지 못하기 때문입니다.
블록 해시값은 블록 헤더를 이용하여 계산합니다. 여기서 블록 헤더에는 트랜잭션을 머클 트리를 이용하여 계산한 머클 루트 해시값이 존재합니다.
만일 트랜잭션을 변경한다면 블록 해시값이 변경되고, 이 블록은 인정 받을 수 없습니다.
즉, 블록체인에 이미 연결된 블록의 내용은 변경할 수 없습니다.
블록체인은 탈중앙성을 가지고 어떻게 데이터의 신뢰를 향상 시킬 수 있는지, 그리고 데이터 무결성과 불변성을 가질 수 있는지는 SHA-256, 머클루트, 합의 알고리즘(PoW) 기술과 관련이 있습니다.