[Defi] POS, Staking

냐옹·2023년 8월 2일
0

Defi

목록 보기
3/11
post-thumbnail

지분증명 Proof of Stake - POS

지분증명은 블록체인 네트워크에서 합의를 이루는 방법 중 하나로, 기존의 작업증명 방식보다 효율적이고 환경 친화적입니다.

이더리움에서의 스테이킹 원리 (디파이에서의 스테이킹이 아닙니다)

1. 스테이킹(staking)
사용자는 자신이 소유한 암호화폐를 잠그거나 스테이크합니다. 이렇게 함으로써, 네트워크의 참여자로서 일정한 권리를 갖게되며, 블록 생성 및 트랜잭션 검증에 참여할 수 있습니다.

2. 블록생성자 선정
스테이크한 토큰의 양, 잠근 시간, 무작위성 등을 고려하여 다음 블록의 생성자를 선정합니다. 보통 스테이크한 토큰의 양이 많을수록 블록 생성 가능성이 높아집니다.

3. 블록 생성과 검증
선정된 생성자는 새로운 블록을 생성하고 네트워크에 제출합니다. 그런 다음에, 다른 참여자들이 해당 블록을 검증합니다.

4. 보상
블록을 성공적으로 생성하고 검증한 참여자는 보상을 받습니다. 보상은 스테이킹한 토큰의 양과 기간 등에 따라서 달라질 수 있습니다.

5. 악의적 행동에 대한 처벌
지분증명에서는 악의적인 행동을 할 경우 스테이크한 토큰을 잃게되는 슬래싱과 같은 처벌 메커니즘이 있을 수 있습니다. 이것은 네트워크를 안정적으로 유지하고 참여자들이 올바르게 행동하도록 독려합니다.

1번과 2번에 대한 예시

1번

스테이킹은 마치 은행에 돈을 예금하는 것과 유사한 과정입니다.

예시: 민수는 네트워크에서 블록 생성자로 선정되길 원합니다. 그는 자신이 가진 100개의 코인을 네트워크에 잠근 상태로 스테이킹합니다.

이렇게 하면 민수는 네트워크의 참여자로 인정받고 블록 생성에 참여할 수 있는 권리를 얻게 됩니다.

악의적인 행동을 할 경우에 잠긴 코인을 잃을 위험이 있기 때문에 민수는 올바르게 행동해야합니다.

2번

블록 생성자 선정은 도박에서의 주사위 던지기와 유사하게 생각할 수 있습니다. 여기서 주사위는 완벽하게 공평하지 않고, 스테이킹한 코인 양에 따라서 더 큰 숫자가 나올 확률이 높아집니다.

민정이는 100개의 코인을 스테이킹하고, 민수는 50개의 코인을 스테이킹했습니다.

네트워크가 블록 생성자를 선정할때, 민정이는 민수보다 선정될 확률이 2배 높습니다. 왜냐하면 스테이킹한 코인의 양이 민수의 2배이기 때문입니다.

이런 과정을 통해서, 스테이크한 코인의 양이 많은 참여자에게 더 높은 확률로 블록 생성의 기회를 제공하면서, 누구나 참여할 수 있는 공정한 메커니즘을 구현합니다.

악의적인 행동의 예시

  • 이중지불 Double Spending
    같은 코인을 두번 지불하려는 시도입니다. 즉, 동일한 트랜잭션을 두번 처리하려고 할 때 발생합니다.

  • 장부조작 Ledger Manipulation
    블록 생성자로 선정된 악의적인 참여자가 트랜잭션의 순서를 바꾸거나 누락시켜서 개인의 이익을 취하려는 시도입니다.

  • 자기거래 Self Dealing
    블록 생성자가 자신이 관련된 트랜잭션만 처리하거나, 특정 트랜잭션을 우선적으로 처리하여 이익을 얻으려는 행위입니다.

  • 롱레인지 공격 Long Range Attack
    악의적인 참여자가 과거의 블록에서 포크를 생성하고, 그 포크위에서 더 긴 체인을 형성하려는 시도입니다. 이렇게 하면 과거의 트랜잭션 기록을 변경할 수 있게 됩니다.

  • 시빌 공격 Sybil Attack
    하나의 참여자가 여러개의 노드를 운영하여 네트워크에 더 큰 영향력을 행사하려는 시도입니다.

  • 의도적인 오프라인 상태 Intentional Downtime
    블록 생성자가 의도적으로 오프라인 상태로 전환하여 네트워크의 안정성을 해치는 행위입니다.

  • 51% 공격 51% Attack
    네트워크의 51% 이상을 지배하여 장부의 통제권을 쥐려는 공격입니다. 지분증명에서는 이런 공격이 작업증명에 비해서 더 어려울 수 있으나, 여전히 이론적으로 가능한 시나리오 중 하나입니다.

블록 안에는 뭐가 들어있을까

블록체인에서 블록은 여러개의 트랜잭션을 담고있는 데이터 구조입니다. 지분증명에서도 블록은 다음과 같은 정보를 포함하고 있습니다.

  1. 트랜잭션 Transaction
    블록 안에는 여러개의 트랜잭션이 포함됩니다. 트랜잭션은 네트워크 참여자 간의 자산이동이나 데이터 변경 등의 작업을 나타냅니다. 예를 들어서, 민수가 민정이에게 5개의 코인을 보내는 행위도 하나의 트랜잭션입니다. 하지만 솔리디티 상에서 view에 해당하는 행위 (자신의 코인 개수를 조회한다던지 등 블록체인에 변경을 가하는 행위가 아닌)는 트랜잭션이 아닙니다. 당연히 가스비도 부과되지 않습니다.

  2. 블록헤더 Block Header
    블록헤더는 블록의 메타데이터를 포함합니다. 이는 이전 블록의 해시, 현재 블록의 해지, 타임스탬프, 난이도, 논스(Nonce)등이 될 수 있습니다.

  3. 블록 생성자의 서명 Block Creator's Signature
    블록을 생성한 참여자의 고유 서명이 포함될 수 있으며, 이로써 블록이 해당 참여자에 의해 생성되었다는 것을 증명합니다.

  4. 상태변경 정보 State Changes
    특정 블록체인 시스템에서는 스마트 계약 실행결과와 같은 상태변경정보를 블록에 포함시킬 수도 있습니다.

  5. 보상 및 수수료 Rewards and Fees
    블록 생성자에게 지급되는 보상 정보나 트랜잭션 수수료 정보도 블록 안에 포함될 수 있습니다.

지분증명의 장점

에너지효율 : 작업 증명에 비해서 훨씬 적은 연산능력이 필요하기 때문에, 에너지를 크게 절약할 수 있습니다.
분산화유지 : 특정 군집이 너무 많은 권력을 갖는 것을 방지하며, 여러 참여자들이 공정하게 참여할 수 있도록 설계되어 있습니다.

지분증명의 단점

부유한 지배문제 : 특정 개인이나 그룹이 네트워크의 큰 부분을 스테이크하면, 중앙화 문제가 발생할 수 있습니다.
장기스테이킹의 어려움 : 지분을 장기간 스테이킹해야 하는 경우에 유동성 문제가 발생할 수 있습니다.

0개의 댓글