앞에 블록에 대한 정보가 Hash 값으로 저장돼있음
블록은 데이터베이스인데
주기적으로 블록을 만들기도 하고 데이터가 생성될 때 만들기도 하는데
주로 주기적으로 만듦
블록과 블록 사이의 생성 갭이 있다
블록 생성 주기 ⭐️
이더리움 15초 주기
비트코인 10분 주기
클레이튼 1초
왜 중요?
데이터가 블록에 들어갔다 = 체결됐다
체결까지 걸리는 시간이 중요함
e.g. 이마트에 가서 결제를 할거임
결제하고 카드 승인되는데 10분 걸린다고 생각하면 안 좋음
이게 30초가 걸림
아까보단 나음 but 여전히 길다
서비스 지향 회사에서는 이 주기가 짧을수록 좋음
그래서 클레이튼에서 1초 지향하는 것
블록체인 = P2P 네트워크
탈 중앙화
모든 노드들이 같은 데이터를 갖고 있고
내가 없어도
다른 사람이 그 데이터를 줄 수 있어서
복제되어서
= 탈중앙화되어있다
이런 방식이 P2P와 잘 맞아서
블록체인은 P2P 구조로 구현돼있음
우리가 원장을 모두다 가지고 있으면 어때?
누가 얼마 갖고 있고
엘리스 100불
찰리한테 150불 보낸다고 하자
이건 틀린 장부임
왜냐면 엘리스는 그만큼 돈이 없으니까
그래서 합의가 필요함
나는 이 장부가 맞는거같애
모두가 동의해야 그 블록이 블록체인에 포함될 수 있음
여럿이 네트워크를 구축하고 있고
같은 데이터를 보고 있기 때문에
나 그 액션에 동의해 = 합의
합의 알고리즘 비교 분석
마이닝이 초기엔 CPU 위주였음
어떤 놈이 GPU로 시작하기 시작했음
(200배 빠름)
그럼 difficulty가 망가짐
difficulty가 CPU 마이닝에 맞춰놨는데
(10분에 1번 블록이 나올 정도로 난이도를 맞춰놓음)
갑자기 GPU로 빨리 풀어버리니까
difficulty를 더 높게 맞춰놓음
즉, difficulty는 가변형
개인이 더 좋은 GPU 가져오게 되고
채굴 공장이 생김
PoW는 갈수록 노드의 참여가 힘들어짐
합의에 필요한 연산량이 높아짐
모든 합의구조에는 위협이 있음
악의적인 누군가가 있을 때
전체의 연산량의 반 이상을 그 사람이 가져가면
자기 맘대로 블록을 쓸 수 있음
왜냐면 합의에서 항상 이길거니까
PoW에서 합의는 항상 majority임
Longest chain 구조라고 함
나 지금까지 3개 받고 다음 블록 이거라고 생각해
다른 애가 4개 받았고 다음 블록 이거라고 생각해
-> 4개 가진 애 말이 맞는거임
연산 능력이 좋은 사람이 모든 걸 결정하게 됨
= 51% attack, majority attack
PoW = Proof of Work
풀기 쉽지 않은 퍼즐을 푸는 것
그 퍼즐을 푼 사람이 블록을 추가할 제안을 할 수 있음
먼저 제안을 하려면 문제를 풀어야 함
그 문제를 다른 사람이 확인할 수 있어야 함
(문제는 어려운데
확인하는 건 쉽다)
PoW는 모두가 참여할 수 있음
단점: 연산에 쓰는 비용이 너무 비싸다
자유를 위해 뭔가를 희생 (e.g. 전기세 등)
PoS = Proof of Stake
토큰의 총량이 있는데
토큰을 많이 가지고 있으면 자기가 더 발언권을 가지고 있다고 생각
BFT
네트워크가 동기화돼있음
-> 누군가가 참여하면 모든 걸 멈추고
아 누가 추가됐데 다 인사 나누고
서로서로 안 상태가 됐다고 판단하면 다시 시작
& 합의를 이루기 위해서
대단히 통신을 많이함
통신량이 많아서
= 합의에 참여한 사람들이 많으면 많을수록 느리다
(작은 그룹에선 빠르다, 큰 그룹 = 참여원 20명만 되도 느려짐)
노드가 15개부터는 느려지더라
합의에 필요한 연산량 = 낮음 (but 네트워크는 빠짐)
BFT는 높은 합의성을 담보로 하지만 대신에 취약함
'Blockchain' 카테고리의 다른 글
metadata (0) | 2022.04.04 |
---|---|
What is a Token? (0) | 2022.04.04 |
Smart Contract, Solidity, Klaytn SDK (0) | 2022.04.03 |
Node란? (0) | 2022.03.31 |
Public vs. Private, Permissionless vs. Permissioned (0) | 2022.03.23 |