1. 블록체인의 정의와 구성, 해시 함수
블록체인: 정보를 블록이라고 하는 단위로 저장하여 저장된 블록들을 체인 형태로 묶은 저장 기술
해시함수: 임의의 길이의 데이터를 고정된 데이터로 매핑하는 함수
하나의 데이터는 하나의 해시값만 존재. 길이는 동일
16진수 문자를 32개를 저장하여 해시를 표현 => sha256
2. 블록체인의 구조, 주요 용어
블록은 이전 블록의 해시 포인터를 가진다.
뒤의 블록이 앞 블록의 해시 포인터를 가진다.
헤더는 블록을 설명하는 정보와 이전 블록의 해시를 포함한다.
블록 높이(뎁스), 블록 생성 주기
생성주기에 따라 나의 트랜잭션이 처리될지 안 될지가 결정된다. 적어도 N초가 걸린다. 이런 느낌.
3. 블록체인 네트워크
p2p 네트워크이다. 모든 노드가 같은 데이터를 가지고 있다.
합의(consensus)
중앙화된 기관이 데이터를 저장하는 형태가 아니라, 모든 노드가 그 데이터를 가지고 있고 모든 노드의 합의에 의해 블록을 관리한다. 이에 따라 합의의 개념이 필요하다. 모든 참여자가 노드를 가지고 있기에 투명하게 데이터가 투명하게 관리된다.
블록 제안 자격은 네트워크 마다 상이하다.
4. 합의 알고리즘
논스: 해시값을 바꾸기 위해 넣는 가비지값
POW: 문제를 먼저 푸는 사람에게 기회를 주는 방식, 참여제한이 없고 연산량이 높음
전체 연산량의 51%를 한 참여자가 소유할 경우 중앙화된다.
예: 이더리움, 비트코인
POS: 토큰을 많이 가진 사람이 기회를 얻을 확률이 높아짐
전체 토큰의 51%를 소유한 사람이 나오는 경우 중앙화.
BFT: 정해진 순번/확률에 따라 기회를 얻는다.
새로 들어온 사람이 있으면 서로 인식하는 과정이 필요. 합의에 참여하는 사람이 많아질수록 느리다.
전체 참여 노드의 1/3 이상이 담합 하거나 참여 노드의 2/3이상 담합할 경우 중앙화
5. 블록체인의 비교
Public vs Private
누구든지 기록된 정보를 자유롭게 읽을 수 있는지?
Permissionless, Permissioned
네트워크에 참여가 제한된 경우 permissioned, 그렇지 않으면 permissionless
이더리움, 비트코인: 참여 제한이 없으며, 누구나 정보를 읽을 수 있음(public, permissionless)
클레이튼: 네트워크 참여가 제한되었고, 누구나 정보를 읽을 수 있음(public, permissioned)
6. 공개키 암호화와 전자서명
카이사르 알파벳 순서를 d만큼 밀어서 암호를 만든 것.
대칭키암호: 암호화를 할 때와 복호화할 때 같은 키를 사용
비대칭키암호: 암호화를 할 때 복호화할 때 다른 키를 사용
공개키 암호를 사용한 안전한 통신
데이터를 보낼 때 공개키를 이용하여 암호화하여 보낸다.
=> 공개키로는 누가 보냈는지 명확하게 파악할 수 없음.
전자서명
데이터를 보낸 사람이 비밀키를 사용하고, 데이터를 푸는 쪽에서 상대방의 공개키로 풀어낼 수 있다면 누구한테 온 정보인지 확인할 수 있음.
Alice가 Bob에게 암호화된 메시지를 보낸다. (밥의 공개키 사용)
그러면 밥은 메시지의 정보를 풀어낼 수 있다.
Alice자신의 private 키로 전자 서명한다.
그리고 밥은 Alice의 공개키로 이 정보를 풀어낸다.
메시지를 전송할 때, 해시함수를 활용할 수 있다. (메시지 변조를 막음)
7. 블록체인에서 사용되는 암호화 기법
어느 주소에서 어디로 트랜잭션 발생. 내가 쓸 수 있는 주소가 있다면, 어카운트 기반 블록체인
트랜잭션: 저장의 단위, 순서는 매우 중요하다.
더 긴 체인이 더 빨리 블록에 포함되기 위해 경쟁한다.
8. 클레이튼 합의 알고리즘
pow는 성능적으로 느리다.
pos는 토큰이 많으면 된다. (=돈이 많으면 된다)
BFT
전체집합의 구성원이 N개면, 무작위로 부분집합을 뽑아서 처리
부분집합에서 BFT를 실행하고 블록을 생성해서 다른 노드에게 전달.
9. 블록체인의 상태
블록체인은 트랜잭션으로 변화하는 상태 기계(State Machine)
초기 상태에서 특정 트랜잭션을 처리하고 다음 상태 저장 그 이후에 또 처리
블록체인은 명시적인 회원가입 같은 개념이 없다.
변경사항을 이어갔을 때 결과는 동일해야 한다.
'프로그래밍 > Block Chain' 카테고리의 다른 글
[Block Chain] 그라운드X 클레이튼 강의 정리 3 (2) | 2023.11.04 |
---|---|
[Block Chain] 그라운드X 클레이튼 강의 정리 2 (1) | 2023.11.04 |
[Block Chain] 블록체인 관련 용어 정리 3 (0) | 2023.10.31 |
[Block Chain] 블록체인 관련 용어 정리 2 (1) | 2023.10.31 |
[Block Chain] 블록체인 관련 용어 정리 1 (0) | 2023.10.31 |
댓글