블락체인은 Nonce값을 찾는 것을 어렵게 함으로써, 해킹에 안전하게 됩니다. 하나의 블락의 위조도 어려운데, 블락들이 체인의 형태를 이루기 때문에, 블락이 쌓이면 쌓일수록 데이터의 위조는 어렵게 됩니다. 만약 채굴 과정이 쉽다면 데이터 위조가 쉽게 될 수 있겠죠. 이와 관련하여 블락체인의 장점 중 하나는 데이터가 위조되었는지를 쉽게 알아낼 수 있습니다. 위 그림을 보면 하나의 블락은 이전 블락의 해쉬값을 가지고 있습니다. 이 이전 블락의 해쉬값은 그 이전 블락의 해쉬값을 가지고 있고요. 계속 체인으로 연결되어 있는 것입니다. 위 그림을 예로 들어 설명하면, 가장 왼쪽이 최근 블락이고, 오른쪽으로 갈수록 오래된 블락입니다. 만약 제일 오른쪽 블락의 정보를 누군가가 고쳤다면 이것은 가운데 블락의 "이전블록해쉬"값을 변경시키게 됩니다. 그리고 이렇게 변경된 것은 또다시 가운데 블락의 해쉬값을 변경시키게 되고, 왼쪽 블락의 "이전블록해쉬"값을 변경시키게 됩니다. 따라서 왼쪽 블락은 "이전블록해쉬"값은 비교함으로써 블락 데이터가 변경되었는지 금방 알 수가 있게 됩니다. 요약하면 현재 블락의 "이전블록해쉬"는 현재 블락 이전의 모든 블락들의 데이터에 영향을 받게 됩니다. 이것은 각 블락이 체인으로 연결되어 있기 때문입니다.
블락체인에서 데이터 변경을 즉각적으로 감지할 수 있습니다.
그럼 이쯤에서 이전 토픽에서 아래와 같은 질문에 대해서 잠시 살펴보겠습니다.
Q) 어떤 두 채굴 노드가 동시에 Nonce를 찾게 되면 어떻게 될까요?
[블락체인의 분기, 출처]
A) 위 그림과 같이 블락체인은 분기 됩니다. 그러나 블락체인은 블락의 길이가 긴 것을 택하므로써 위와 같은 분기 문제를 해결합니다.
블락체인 네트워크는 분기가 발생했을 때 블락의 길이가 긴 것을 택하도록 되어 있습니다. 블락이 글이가 짧은 분기는 블락체인에서 사라지게 되고요. 위 그림에서 Block 56번째 다음에 두 개의 각기 다른 블락 Block 56(그림이 좀 잘못됐습니다. 부모 블락과 같은 height이므로 편의상 Block 56-1로 하겠습니다.), Block 57이 생성되었습니다. 일단 블락체인 네트워크는 이 상태를 유지합니다. 분기한 Block 56-1과 Block 57은 각각 블락의 길이가 1이라 동등하기 때문입니다. 그러나 다음 번 채굴과정에서 Block 58이 Block 57의 해쉬값으로 만들어 졌습니다. 앞에서 얘기했듯이 블락에는 "이전블록해쉬"가 있습니다. Block 58의 "이전블록해쉬"는 Block 57의 해쉬값으로 되어 있단 얘기입니다. 블락체인이 위 그림과 같이 되었을 때, 분기된 블락의 길이가 달라지게 됐습니다. 블락체인은 이제 블락의 길이가 긴 것을 남기고 블락 길이가 짧은 것은 없애버립니다.
만약 또다시 채굴 노드들이 동시에 블락을 생성하게 되면 분기는 유지될 것입니다. 하지만 이런 우연은 오래 지속되지 않습니다. 곧 분기들은 정리되고 블락체인은 하나의 라인으로 될 것입니다.
블락체인은 분기가 일어나면 긴 블락을 선택합니다.
블락체인 기반 블로그 Steemit에 Vote가 10개 이상되면 다음 타픽 진행하겠습니다.(희망사항)
Steemit 바로가기
https://steemit.com/blockchain/@etainclub/7urrc1-blockchain-8