블록체인의 기본 원리 이해, 제 2부:작업 증명 및 지분 증명

Loom Network Korean
Loom Network Korean
7 min readJul 17, 2018

이 글은 Georgios Konstantopoulos가 쓴 Understanding Blockchain Fundamentals, Part 2: Proof of Work & Proof of Stake을 번역한 글입니다. 오역이 있으면 Private Note 기능으로 알려주세요!

블록체인 기본 원리 이해 시리즈에 해당하는 글:

  1. 블록체인의 기본 원리 이해, 제 1부:비잔틴 결함 방지
  2. 블록체인의 기본 원리 이해, 제 2부:작업 증명 및 지분 증명 👈
  3. 블록체인 기본 원리 이해, 제 3부: 위임 지분 증명(DPoS)

제 1부에서, 우리는 비잔틴 장군들의 문제, 비잔틴 결함 방지 달성 방법, 그리고 이 모든 것이 블록체인과 어떻게 관련되는지에 대해 토론했었죠.

이전 글에서의 알고리즘은 사실 비잔틴 결함 방지를 달성한 솔루션이죠. 그러나, 그 해결책은 충분히 효율적이지 못하고 그것의 변형에도 제약이 있습니다. 즉, 네트워크의 1/3 미만은 부정직하다는 것입니다.

비잔틴 장군들의 문제를 해결하기 위한 러닝 타임 대한 Lamport, Shostak and Pease (n = 행위자의 수, m = 반역자의 수)의 알고리즘 제의

이는 컴퓨터 과학의 고전적인 질문으로 이어지죠:

우리가 더 잘할 수 있을까?

이 글에서의 주제는 비잔틴 결함 방지을 달성하는 대체 알고리즘에 대해 논의해 볼 것입니다.

참고: 제가 이야기 할 간단한 설명들에 대한 양해를 부탁 드립니다. 이 알고리즘들에는 복잡한 연구가 많이 있습니다. 관심 있는 독자들이 자신의 추가적인 연구를 할 수 있도록 이야기하는 동안 링크를 함께 제공 할께요.

블록체인에서는 합의 알고리즘을 사용하여 다음 블록의 내용을 결정할 리더를 뽑습니다.

그 리더는 또한 다른 동료들이 그것의 내용의 타당성을 검증할 수 있도록 그 블록을 네트워크에 방송할 책임이 있죠.

작업 증명(PoW)

이것은 비트 코인, 이더리움 같은 통화에서 각각 자신만의 방법으로 사용되고 있는 가장 인기 있는 알고리즘입니다.

계속하기 전에 기술적 배경이 없는 독자의 경우:

해시 함수는 임의 크기의 데이터를 고정 크기의 데이터로 매핑하는 데 사용할 수 있는 모든 함수입니다 ¹.

만약 해시 함수가 안전하면, 출력이 랜덤하여 구분할 수 없습니다.

예시:
keccak256("hello") = 1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8
keccak256("hello1") = 57c65f1718e8297f4048beff2419e134656b7a856872b27ad77846e395f13ffe

작업 증명에서, 행위자가 리더로 선출되고 블록체인에 추가될 다음 블록을 선택하려면 특정 수학 문제에 대한 해결책을 찾아야 하죠.

그 수학적인 문제를 보지요:

X 데이터가 주어진 경우, X 결과에 추가된 n의 해시가 Y보다 작은 숫자인 n을 찾습니다.

예시 - 해시는 아래 리스트된 산출물로 가정된 해시 함수입니다.
Y = 10, X = 'test'
hash(X) = hash('test') = 0x0f = 15 > 10
hash(X+1) = hash('test1') = 0xff = 255 > 10
hash(X+2) = hash('test2') = 0x09 = 9 < 10 OK, Solved.

사용되는 해시 함수가 암호화된 보안[1,2]이기 때문에, 해당 문제에 대한 해결책을 찾을 수 있는 유일한 방법은 브루트포스 (모든 가능성 있는 결합 시도)를 사용하는 것뿐입니다. 다시 말해, 확률적으로 말하면, 대부분의 경우 앞서 언급한 문제를 먼저 해결하는 행위자는 가장 많은 컴퓨팅 파워를 가진 사람이죠. 이러한 행위자들은 채굴자들라고 불리기도 합니다.

그 것은 주로 다음과 같은 특성 때문에 널리 성공했죠:

  1. 주어진 문제에 대한 해결책을 찾는 것은 어려움
  2. 그 문제에 대한 해결책을 제시하면 그것이 맞는지 쉽게 확인할 수 있음

새로운 블록이 채굴될 때마다, 채굴자들은 약간의 통화(블록 보상, 거래 수수료)로 보상을 받고 그에 따라서 계속 채굴 작업을 유지하죠. 작업 증명에서 다른 노드는 블록 데이터의 해시가 현재 숫자보다 더 작은지 확인하여 블록의 유효성을 확인합니다.

컴퓨터 파워의 공급이 제한되어 있기 때문에, 채굴자들은 또한 부정 행위를 하지 않는 것을 장려 합니다. 네트워크를 공격하는 것은 높은 하드웨어, 에너지 및 잠재적 채굴 이익이 누락되기 때문에 비용이 많이 들 것이죠.

이 그림은 비트 코인과 작업 증명 (PoW) 를 사용하는 다른 코인이 어떻게 악의적인 행동을 막는지 잘 보여 줍니다.

체인 분할, 포킹 또는 체인 구성이라 하는 작업에 관심이 있는 독자들 중 의견 차이가 있는 경우, 이 을 한번 읽어 보는걸 제안 드립니다.

작업 증명(PoW)는 필요한 보안을 제공하고 지금까지 잘 작동하는 것으로 입 증되었습니다. 그러나 이것은 많은 에너지를 소비하죠:

거의 모든 아프리카 국가(개별적으로)가 비트 코인 채굴 산업보다 전력 소모가 적죠.

지분 증명 (PoS)

계속하기 전에, 리더 선거 (다음 블록을 선택하게 될 행위자)를 복권으로 비유해 보죠.

복권에서, 확률론적으로, 만약 밥이 앨리스보다 더 많은 표를 가지고 있다면, 그는 당첨될 가능성이 더 높죠.

이와 매우 유사한 방법으로:

작업 증명 (PoW)에서 만약 밥이 엘리스보다 더 많은 연산 파워와 에너지를 가지고 있어서 더 많은 작업을 산출할 수 있다면, 그는 이길 가능성이 더 높습니다 (다음 블록 채굴).

마찬가지로, 다시 말하지만

위임 증명 (PoS)에서, 만약 밥이 앨리스보다 더 많은 지분을 가지고 있다면, 그는 더 잘 이길 것이다(다음 블록 “채굴”).

위임 증명 (PoS)는 PoW의 에너지 및 계산 전력 요구 사항을 제거하고 이를 지분으로 대체합니다. 지분은 행위자들이 일정 기간 동안 묶어 두려고 하는 화폐의 양으로 불리죠. 이에 대한 대가로, 그들은 자신들의 지분에 비례하여 다음 리더가 되고 다음 블록을 선택할 기회를 갖게 되는 거죠. Nxt와 Blackcoin과 같은 순수한 PoS를 사용하는 다양한 종류의 코인들이 존재합니다.

PoS와 관련된 메인 이슈는 소위 아무것도 없는 지분 문제입니다. 근본적으로, 포크의 경우에, 지분 보유자는 두 체인 모두에 스테이킹하는 것을 장려하지 않으며 이중 소비 문제의 위험이 증가합니다. 이에 대한 더 많은 정보는 여기 있습니다.

그것을 피하기 위해서, Decred가 사용하는 PoW-PoS 조합과 같은 하이브리드 합의 알고리즘이 등장한 거죠. 안전하고 탈중앙화 위임 지분(PoS) 프로토콜을 위한 적극적인 연구가 Casper The Friendly Ghost and Casper The Friendly Finality Gadget와 함께 이더리움 재단에 의해 끝났습니다.

결론

이 글에서는 현재 비잔틴 결함 방지를 달성하고 오늘날의 블록체인 시스템에서 실제로 사용되고 있는 합의된 알고리즘인 작업 증명 (PoW) 및 위임 증명 (PoS)에 대해 설명했습니다.

실제 비잔틴 결함 방지 (Tendermint) 또는 분산형 비잔틴 결함 방지 (NEO)과 같은 다른 합의 알고리즘이 존재하죠. PBFT와 Casper의 비교 결과는 여기에서 확인하실 수 있습니다.

Loom Network는 고성능 디앱을 확장하기 위한 멀티체인 상호운용 플랫폼입니다 — 이미 상용 가능한 상태이며, 감사 및 실제 테스트를 거쳤습니다.

Loom 베이스체인에 여러분의 디앱을 한 번 배포하고 나면, 오늘날 모든 주요 블록체인에 걸쳐 가능한 가장 광범위한 사용자 기반에 접근할 수 있습니다.

Loom Network를 처음 접하시나요? 여기서 시작하세요.

LOOM 토큰을 스테이킹해서 베이스체인을 보호하는 데 참여하고 싶으신가요? 여기서 그 방법을 알아보세요.

우리가 하는 일이 마음에 드시나요? 그렇다면 어서 우리의 프라이빗 메일링 리스트에 가입하고, 우리가 계속 전달하는 모든 업데이트를 계속 받아보세요.

--

--