프로토콜 레이어

합의 알고리즘

합의 알고리즘은 분산화된 네트워크를 구성하는 참여자들이 서로를 신뢰하지 않고도 단일된 진실을 도출할 수 있게 도와주는, 블록체인에 있어서 핵심적인 구성 요소입니다. 어떤 합의 알고리즘을 선택하는지에 따라서 탈중앙성의 정도 및 최대 몇개의 노드가 참여할 수 있는지 결정됩니다.

비잔틴 장군 문제

비잔틴 장군 문제는 분산 네트워크에서 노드 간의 신뢰 없이도 동일한 정보를 주고받을 수 있는지의 문제로써 블록체인의 합의 알고리즘이 이를 해결합니다.

보안성(safety)과 생존성(liveness)

보안성은 참여 노드 중 일부가 악의적인 행동을 하더라도 네트워크가 합의에 도달할 수 있는지, 생존성은 일부 악의적인 노드가 있더라도 블록 생성이 지속되는지 여부를 나타냅니다. 합의 알고리즘에 따라 보안성은 강하지만 생존성이 약하거나, 생존성은 강하지만 보안성이 약할 수 있습니다.

작업 증명(PoW)

작업 증명은 비트코인에서 사용된 합의 알고리즘으로써 블록 해시를 구할 때 연산 작업이 필요합니다.

지분 증명(PoS)

지분 증명은 이더리움에서 사용될 예정인 합의 알고리즘으로써 블록 제안자가 제안한 블록 후보 중, (주로) 투표를 통해 하나를 선정하는 합의 알고리즘입니다.

권위 증명(PoA)

권위 증명은 모두에게 공개된 것이 아닌, 허가를 받은 노드만 참여할 수 있는 블록체인에서 사용됩니다.

실용적 비잔틴 결함 방지(PBFT)

실용적 비잔틴 결함 방지 알고리즘은 BFT가 동기화된 네트워크에서의 비잔틴 문제를 해결하는데에 반해 비동기 네트워크에서 노드들간의 합의에 이를 수 있게 합니다.

위임 지분 증명 (DPoS)

위임 지분 증명은 EOS에서 차용되면서 유명해진 합의 알고리즘으로써 제한된 숫자의 위임된 검증자들이 합의를 통해 블록을 생성하는 방식입니다.

기타 : Sieve, Paxos, Raft

정규(canonical) 체인

블록체인은 여러개로 분기될 가능성을 언제나 내포하고 있기 때문에 이런 분기가 일어났을 때에 단일된 정규 체인을 선택하도록 노드들간의 합의가 이루어져있는 것이 중요합니다.

체인의 분기(fork)

체인의 분기가 일어나는 시나리오와 그 가능성에 대해 알아봅니다.

분기(fork) 선택 규칙

분기가 일어난 것을 인지한 노드들은 일련의 규칙을 통해 정규체인을 찾기 위해 노력해야 합니다.

계정(account)

계정은 블록체인에서 자금을 보관 및 전송할 수 있으며 개인키, 공개키, 주소를 가지고 있습니다. 각 블록체인 별로 어떤 암호학 알고리즘을 사용해서 계정을 생성하는지 알아봅니다.

개인키

개인키는 엔트로피를 주입해주어 암호학적으로 계산된 임의의 문자열입니다. 누구도 탈취할 수 없게 관리를 해야 합니다.

공개키

공개키는 개인키로부터 결정론적으로 도출되며 공개되어도 상관없는 암호학적 문자열입니다.

주소

주소는 공개키에 약간의 변형을 가한 문자열입니다. 이를 상대방에게 전달함으로써 화폐를 전송받을 수 있습니다.

상태 트리

블록체인의 정보는 그대로 저장되는 것이 아닌 상태 트리의 형태로 실시간으로 관리됩니다. 이를 필요로 하는 이유가 무엇인지, 또 어떤 방식으로 관리되는지 알아봅니다.

계정 상태

각각의 계정은 고유의 상태를 가지고 있습니다. 여기에는 주소, 잔액, 논스, 저장소 등이 포함됩니다.

글로벌 상태

계정 상태의 전체 집합을 하나의 트리로 표현하면 글로벌 상태가 됩니다. 글로벌 상태로부터 상태 전이(transition)이 일어나는 과정을 통해 새로운 트랜잭션이 반영됩니다.

트리의 구성

상태는 주로 머클 트리로 표현됩니다. 왜 머클 트리를 사용하는 것이 유리한지 이해합니다.

가상 머신

비트코인은 가상 머신을 가지고 있지 않았지만 이후 나온 블록체인들은 기본적으로 탑재하고 있습니다. 가상머신이 있으면 튜링 완전한, 즉 보편적인 계약 프로그램을 구동할 수 있습니다.

비트코인 스크립트

비트코인은 스크립트라는 원시적인 형태의 프로그램을 가지고 있었습니다. 후에 다른 블록체인에 어떤 영향을 줬는지 알아봅니다.

이더리움 가상 머신(EVM)

이더리움이 가져온 혁신은 EVM 도입을 통해 보편적인 계약을 구동할 수 있게 했다는 점입니다. 구체적인 작동 원리를 이해합니다.

웹어셈블리 가상 머신(WASM)

EVM은 그 자체로써 혁신이었지만 마찬가지로 한계점 또한 보유하고 있습니다. 이를 극복할 수 있는 WASM에 대해 알아봅니다.

LLVM

LLVM은 크로스 플랫폼 컴파일러를 지향하기 때문에 어떠한 언어를 사용해도 동일한 기계어를 도출할 수 있습니다. LLVM을 도입한 블록체인에 대해 설명하고 그 장단점을 이해합니다.