[멋쟁이 사자처럼 블록체인 스쿨 3기] 23-03-16

임형석·2023년 3월 19일
0

블록체인 이론

블록체인은 탈중앙화된 네트워크에서 작동하는 분산원장 기술이다.

블록체인은 발행, 거래, 검증을 해야한다.

블록체인에는 7가지의 특징이 있다.

1. 익명성

거래에는 공개키 혹은 지갑주소만 공개 되어 어떤 사람이 거래했는지 알 수 없다.

2. 추적가능성

블록체인에는 모든 공개키 혹은 지갑주소가 공개되어 기록된다.

모든 지갑주소는 공개 되어있어 추적이 가능하다.

3. 무신뢰성

신뢰받는 제 3기관이 존재하지 않는다. (정부나 은행 등)

블록체인 시스템 자체가 신뢰를 담보한다.

거래하는 개인은 신뢰라는 자체가 필요하지 않다.

4. 분산원장

시스템 내 모든 참가자들은 거래 정보를 기록, 보관하고 있다.

누구나 내 거래 정보에 쉽게 접근할 수 있다는 뜻.

5. 탈중앙화

전통적인 네트워크 시스템과 달리, 블록체인에는 중앙화된 주체가 존

재하지 않음.

6. 합의 알고리즘

동등한 권한의 다수가 참여하기 때문에, 옳은 정보를 결정하는 규칙이

필요하다. 그렇기 때문에, 누군가 악의적으로 정보를 훼손하는 경우가

있을 수 있다. 그래서 네트워크를 유지하는 비용으로 코인을 준다.

주로 POW(proof of work) 인 작업증명 방식과

POS(Proof of stake) 인 지분증명 방식이 있다.

7. 변경 불가능성

블록에는 헤더와 바디정보로 나누어진다고 했다.

헤더정보를 보면, 이전 블록의 해시값과 머클루트값이 존재한다.

이 두 값은 SHA-256 으로 암호화된 해시값이다.

만약 어떠한 값이라도, 단 한개라도 바뀌게 된다면 머클루트가 바뀜.

머클루트가 바뀐다면, 정보의 훼손이 일어났다고 볼 수 있다.

그렇기에 정보가 바뀐다면 한 순간에 알아볼 수 있어 함부로 변경이

불가능하다.


블록체인의 블록이란,

블록의 헤더와 바디

블록은 헤더와 바디로 나뉜다.

그중 헤더와 바디 정보 모두 가진 참가자를 Full Node.

Full Node 는 모든 거래 정보를 기록, 보관한다.

그 외의 참가자들은 패킷의 헤더 정보만 보관한 노드를 운영.

헤더 정보에는

해시값, 버전, 이전 블록의 해시값, 머클루트, 타임 스탬프, 난이도, 논스

바디 정보에는

수수료, 거래내역

헤더 정보에는 많은 내용이 들어가지만, 그 내용자체의 용량이 크지 않다.

하지만, 바디정보에는 제네시스 블록부터의 모든 거래내역이 들어있기 때문에 용량이 크다.

제네시스 블록이란? 0번째 블록.

해시함수

SHA-256 Online

위 사이트는 SHA-256 해시함수를 온라인으로 풀어주는 사이트이다.
예를 들어, Apple 을 입력해보면
f 로 시작하는 복잡한 무언가가 튀어나온다.

하지만 대소문자를 바꿔 a 로 입력하게 되면,
완전히 다른값이 나오게 된다.

보통의 함수란 규칙성을 갖고 있지만, 해시함수는 규칙성이 없다.

16진수, 256 비트로 64개의 단어+숫자를 출력한다.

16진수로, 0~9 그리고 a~f 까지를 출력한다.

많은 암호와 비트코인에서 SHA-256 이 쓰인다.

그래서 블록은 이전블록의 해시, 머클해시값과 달라지기 때문에

이전의 정보를 함부로 변경할 수 없다.


Previous hash : 유일하게 이전 블록과 연결할 수 있는 값.

블록의 헤더에서는 해시와 논스값만 변한다. (헤더의 다른 정보들은 이미 결정되어 있음.)

블록의 해시값은 타겟값보다 작아야한다. 그래서 해시값을 낮추기

위해 앞자리가 0이 많은 해쉬를 구해야한다.

예를들어 타겟값이 100만이라면, 100만 이하의 값만 구하면 논스가

확정. 해시를 찾고 블록을 생성할 수 있다.

만약 난이도를 높이고 싶다면 타겟값을 낮춘다. 그럼 앞자리의 0이

많아지는 해시를 찾아야 하기 때문에 더 많은 컴퓨팅 파워가 필요해진다.

이러한 난이도는 시스템상에서 자동으로 계산하고 타겟값을 결정한다.


0번째 블록인 제네시스 블록부터 현재까지의 모든 블록은 연결되어있다.

이걸 블록체인이라 부른다.

0개의 댓글