BlockChain이 뭐에요
in Devlog on BlockChain
블록체인
해쉬 함수
해쉬 함수는 내가 어떤 값을 입력했는지 모르도록, 입력과 전혀 상관없이 보이는 문자열을 출력하는 함수이다. 해쉬함수는 암호화를 위해서 사용되는데, 이러한 해쉬함수가 되기 위해서 가져야 할 몇가지 기능이 있다.
- 해쉬 함수는 같은 입력값에서 대해서 같은 출력값을 제공한다.
- 한글자를 입력하든 소설책 한권 분량을 입력하든 입력 길이와 상관없이 동일한 길이의 문자열을 출력한다.
- 출력값에서 입력값을 추측할 수 없어야 한다.
- 동일한 출력값을 갖는 서로 다른 입력값이 존재할 확률이 낮아야 한다.
SHA256
블록체인에서 사용하는 해쉬 함수는 SHA256 SHA256 : Secure Hash Algorithm 출력 비트는 256비트. 16진수로 표현된 각 4비트 문자가 총 64개. 4bit x 64개 = 256비트
ex> A2FF12C37EBB3D6A7779046294339362DAFF95A0FDA1AB2A5F390D5B85FE9AB5
SHA256 해쉬 생성기 : http://www.convertstring.com/ko/Hash/SHA256
Mine
비트 코인을 채굴한다는 것은 각 블록별로 해쉬화된 출력값을 문제로 받아, 입력값을 맞추는 것이다. 난이도 조절을 위해 맞춰야 하는 비트수를 줄이기도 한다.
블록
블록체인이라는 단어에서부터 그러하듯 블록들이 서로 체인처럼 연결되어 있는 것이다. 여기서 블록간의 연관성이 중요하다. 각 블록의 출력값이 다른 블록의 입력값에 영향을 주기 때문에, 한 블록의 입력값을 수정한다면 연계된 모든 블록을 값들을 새롭게 마이닝해야 한다.
비트코인의 안정성이란
비트 코인의 한 블록을 해킹하기 위해서는 그 뒤에 따르는 모든 블록을 rest of network 즉 정상적으로 작동하는 나머지 네트워크보다 더 빠르게 수정해야한다. 즉 전체 네트워크의 51퍼센트 이상의 계산력을 가지고 있어야 한다는 말이다. 비트코인은 10분간격으로 새로운 블록이 생긴다. 따라서 비트코인의 해킹에 대한 안정성이란 여기에서 나온다.