본문 바로가기

연재내용/이더러움-솔리디티

[이더러움/솔리디티] 04 - 블록체인이란 무엇인가?


이전 글을 참고해주세요.



이전글참고

이용사이트 https://anders.com/blockchain/hash.html

SHA256 해시란 무엇인가??

해시란 많은 용량의 데이터를 고정된 크기의 고유값으로 만드는 것입니다. 즉 어떤 데이터를 일정한 길이의 데이터로 암호화 한다고 볼 수 있습니다. SHA256 해시란 내가 입력한 데이터를 SHA256 형식에 맞게 데이터를 암호화하는것을 말합니다.



제가 뭘 입력하든 아래 hash의 글자 길이는 변하지 않습니다. 다만 값은 변합니다.

요기서 한가지 알 수 있는것은 내가 같은 글을 입력하면 같은 해쉬값이 나온다는것이고
hash값으로 내가 입력한 값이 "블로그"인지 "블록체인"인지는 절대 알 수 없다는 점입니다.

블록이란 어떻게 되어지는가??

위 화면에서 블록넘버와 Nonce(임의의 값) 그리고 data를 볼 수 있습니다.

블록에 1 그리고 nonce에 72608를 입력하니 hash의 첫 값이 0000으로 시작되고
박스가 초록색으로 된걸 볼 수 있습니다.


이때 블록값을 바꾸거나 데이터를 입력하면 해쉬값이 바뀌면서 빨간색으로 바뀌게 됩니다.
즉 이 빨간 블록은 유효하지 않은 블록이 됩니다.


자 이제 nonce를 0으로 하고 숫자를 1로 바꾸어보고 그 다음 2로 바꾸어봅니다.
아래 hash값은 계속하여 바뀝니다. 이렇게 nonce가 hash값 0000을 만족하는 값을
찾을때까지 계속 연산하는 작업을 mining이라고 합니다. 100정도까지만 해보고 힘들면
mine버튼을 누르세요.


그럼 만족하는 Nonce값을 계산하여줍니다. 실제로 마이닝에선 전체값이 0을 만족하는 값을
계산해야합니다. 위 사이트는 데모이기때문에 첫 4자리만 0000으로 만족하는 값을 찾습니다.

그렇다면 더 상위개념인 블록체인은?

Prev값은 자기보다 앞서 있는 블록체인의 해쉬값을 의미합니다. 즉 모든 블록이
자기보다 한칸 더 앞서있는 블록값을 가리키게되는것이죠.


중간에 하나라도 값이 달라지면 뒤에 있는 모든 블록들에 빨간색이 들어오게 되며
해쉬값이 틀려지게됩니다. 나의 해쉬값은 내 앞에 있는 노드의 해시값에 영향을 받기때문에
내 해쉬값이 달라지면 줄줄이 이어져있는 모든 해쉬값이 영향을 받게 됩니다.