Klaytn Docs - 2 [ 합의 알고리즘, 계정 ]

Lumi·2021년 12월 9일

Klaytn

목록 보기
10/10
post-thumbnail

🔥 합의 알고리즘

기존의 합의 알고리즘(PoW, PoS)는 완결성을 보장하지 못하고 확률적인 완결성을 보장하였습니다.

  • 즉 분기가 발생을 하게 됩니다.

이러한 합의 알고리즘은 특히 송금 시스템에서는 적절하게 사용될 수가 없었고 이러한 점을 보완하고자 Klaytn은 PBFT합의 알고리즘을 사용합니다.

PoW같은 알고리즘은 노드가 블록을 수신하고 유효성을 검증하지만 합의에 도달하기 위해 노드간에는 메시지 교환이 이루어 지지 않습니다.

  • 즉 개별적으로 작업이 진행이 됩니다.

하지만 PBFT의 경우에는 여러 단계를 거쳐 네트워크의 모든 노드와 통신을 하게 됩니다.

앞서 설명하였던 제안자 + 위원회의 자기를 증명하는 것과 비슷합니다.

하지만 이러한 방법은 노드간에 계속해서 메시지를 주고 받는 점에서 노드의 수가 늘어남에 따라 기하급수적으로 메시지를 서로 주고받게 되기 떄문에 한정된 노드로 운영이 이루어 져야 합니다.

  • Klaytn에서는 최대 50개의 CN노드를 보장합니다.

클레이튼의 경우에는 IBFT합의 알고리즘을 채택하고 개선하여 빠른 완결성을 보장을 합니다.

포크가 발생하지가 않고 합의가 완료가 되면 믿을수 있는 블록이 생성이 되기 떄문에 완결성이 보장 됩니다.

또한 기존의 BFT에서 발생하는 통신량 증가 문제는 개선을 하여 제안자 + 위원회를 선출하는 방법을 사용하고 이로 인해서 통신량을 기하급수적으로 줄일수가 있게 되었습니다.

즉 기존의 BFT계열은 합의에 참여하는 모든 노드가 메시지를 교환하였지만 Klaytn에서는 선출된 CN들(제안자, 위원회)의 사이에서만 메시지를 교환하게 된다.

🔥 계정

Klaytn의 계정은 개인의 잔액 또는 컨트랙트에 대한 정보를 포함하는 구조 입니다.

Klaytn의 상태는 모든 계정상태의 모음입니다.

Klaytn 노드에서 트랜잭션이 실행되면 모든 노드에서 Klaytn의 상태가 변경이 일어나고 상태는 Klaytn 네트워크의 모든 노드가 동일한 순서로 동일한 블록을 처리한 경우 동일 해야 합니다.

각 계정의 정보는 식별하는 데 사용되는 20바이트 주소와 연결됩니다.

일반적인 블록체인 플랫폼이 계정은 암호화된 특정 길이의 주소와 연결이 됩니다.

이 주소는 키 쌍과 연결이 되고 키 쌍이 선택이 되면 주소는 공개 키에서 파생이 됩니다.

하지만 이러한 시스템은 몇가지 문제가 있습니다.

사용자가 원하는 주소를 갖은 것은 불가능

보안을 강화하기 위해 여러 키를 사용하는 것은 불가능

계정의 키 쌍을 변경하는 것은 불가능

이러한 점을 개선하기 위해서 Klaytn에서는 사용자가 주소와 키 쌍을 선택할 수 있는 기능을 제공합니다.

이 기능을 통해 주소를 선택 및 여러 키 쌍을 사용하여 보안을 강화할 수 있습니다.

🔨 다중 키 쌍 및 역할 기반 키

블록체인 플랫폼의 큰 단점중 하나는 개인키 분실입니다.

물론 사용자의 책임으로 발생을 하는 것이지만 노출이 되거나 분실이 일어나면 자신의 지갑을 찾을수 없게 됩니다.

이러한 점을 해결하기 위해서 다른 키 쌍을 생성하여 새 계정을 만들고 잔액을 이전 계정에서 마이그레이션 하는 방법을 사용합니다

하지만 이 방법또한 까다로운 작업이기 때문에 Klaytn은 다음과 같은 기능을 제공 합니다.

[1] Klaytn계정을 사용하면 계정과 연결된 키 쌍을 변경 가능

[2] Klaytn계정은 각 키를 다른 목적으로 할당하는 기능과 함께 여러 키 쌍을 지원

[3] Klatrn계정은 주소와 강력하게 결합된 단일 키를 가진 계정과 호환성을 유지

상황으로 예를 들어보면

사용자가 자신의 개인키가 노출되었다는 것을 알게 되면 자신의 계쩡에서 노출된 키 쌍을 제거하고 이를 대체할 새 키 쌍을 생성하여 개인키를 교체하게 됩니다

🔥

profile
[기술 블로그가 아닌 하루하루 기록용 블로그]

0개의 댓글