플라즈마 알고리즘 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
88번째 줄: 88번째 줄:
  
 
* 지분증명 방식(Proof of Stake)
 
* 지분증명 방식(Proof of Stake)
: 지분증명 방식([[PoS]])은 해당 암호화폐를 보유하고 있는 지분(Stake)율에 비례하여 의사결정 권한을 주는 방식이다. 이 방식도 작업증명과 마찬가지로 블록이 생성될 때 보상이 지급되는 데 지분에 대한 이자의 개념으로 보상이 지급된다. 다시 말해서 옳다고 생각하는 블록에 투표하면서 자신이 가진 지분(Stake)을 해당 블록에 보여주어 증명하는 것이다.<ref>장경재, 〈[https://medium.com/blockmakers/makers-basic-8-%ED%95%A9%EC%9D%98-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%A7%80%EB%B6%84%EC%A6%9D%EB%AA%85-pos-db21d6c34eb5 (Makers Basic 8) 합의 알고리즘(2)-지분증명(PoS)]〉, 《Medium》, 2018-09-27</ref>
+
: 지분증명 방식([[PoS]])은 해당 암호화폐를 보유하고 있는 지분(Stake)율에 비례하여 의사결정 권한을 주는 방식이다. 이 방식도 작업증명과 마찬가지로 블록이 생성될 때 보상이 지급되는 데 지분에 대한 이자의 개념으로 보상이 지급된다. 다시 말해서 옳다고 생각하는 블록에 투표를 하면서 자신이 가진 지분(Stake)을 해당 블록에 보여주어 증명하는 것이다.<ref>장경재, 〈[https://medium.com/blockmakers/makers-basic-8-%ED%95%A9%EC%9D%98-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%A7%80%EB%B6%84%EC%A6%9D%EB%AA%85-pos-db21d6c34eb5 (Makers Basic 8) 합의 알고리즘(2)-지분증명(PoS)]〉, 《Medium》, 2018-09-27</ref>
  
 
* 지분증명 방식의 이점
 
* 지분증명 방식의 이점
: 플라즈마 체인에서 비잔틴 상황이 발생해도 대처할 수는 있지만, 대처하는 과정에서 불필요한 비용이 발생할 것이므로 비잔틴 상황이 발생하지 않는 것이 가장 좋을 것이다. 지분증명 방식에서는 여러 명의 스테이커(Staker)가 존재하므로 비잔틴 상황이 일어날 가능성을 권한증명 방식(단일 오퍼레이터일 경우)에 비해 줄일 수 있다.
+
: 플라즈마 체인에서 비잔틴 상황이 발생해도 대처할 수는 있지만, 대처하는 과정에서 불필요한 비용이 발생될 것이므로 비잔틴 상황이 발생하지 않는 것이 가장 좋을 것이다. 지분증명 방식에서는 여러 명의 스테이커(Staker)가 존재하므로 비잔틴 상황이 일어날 가능성을 권한증명 방식(단일 오퍼레이터일 경우)에 비해 줄일 수 있다.
이와 더불어, 지분증명 방식 플라즈마 체인에서 자체 토큰을 활용한다면 비잔틴 상황의 가능성을 더더욱 줄일 수 있다. 자체 토큰을 활용하는 지분증명 방식에서, 플라즈마 체인의 스테이커들은 토큰을 스테이킹(Staking)한 후 블록을 생성하며, 이에 대한 보상을 자체 토큰으로 받는다. 플라즈마 체인이 비잔틴 상황에 빠지면 토큰의 가치가 하락하게 되므로, 자연스레 플라즈마 체인의 스테이커들이 비잔틴 행동을 할 유인이 줄어들게 된다. 물론 이러한 효과는 ETH를 활용해도 얻을 수는 있겠지만, 자체 토큰과 플라즈마 체인 간의 관계가 ETH와 플라즈마 체인 간의 관계보다 훨씬 직접적이므로 자체 토큰을 활용했을 때 훨씬 큰 효과를 얻을 수 있을 것이다.
+
이와 더불어, 지분증명 방식 플라즈마 체인에서 자체 토큰을 활용한다면 비잔틴 상황의 가능성을 더더욱 줄일 수 있다. 자체 토큰을 활용하는 지분증명 방식에서, 플라즈마 체인의 스테이커들은 토큰을 스테이킹(Staking)한 후 블록을 생성하며, 이에 대한 보상을 자체 토큰으로 받는다. 플라즈마 체인이 비잔틴 상황에 빠지면 토큰의 가치가 하락하게 되므로, 자연스레 플라즈마 체인의 스테이커들이 비잔틴 행동을 할 유인이 줄어들게 된다. 물론 이러한 효과는 ETH를 활용해도 얻을 수는 있겠지만, 자체 토큰과 플라즈마 체인간의 관계가 ETH와 플라즈마 체인간의 관계보다 훨씬 직접적이므로 자체 토큰을 활용했을 때 훨씬 큰 효과를 얻을 수 있을 것이다.
  
 
* 플라즈마 체인의 지분증명 방식과 Block Withholding Attack
 
* 플라즈마 체인의 지분증명 방식과 Block Withholding Attack
: 플라즈마에서는 블록 헤더가 상위 체인에 커밋되는 것이 매우 중요하다. 그런데 만약 플라즈마 체인의 블록 생성자들이 고의로 블록을 더 이상 생성하지 않거나 블록을 생성하고도 공표하지 않으면 블록 헤더가 더 이상 상위 체인에 커밋될 수 없다. 이러한 공격을 Block Withholding Attack(BWH)이라 부른다. 플라즈마에서는 이러한 BWH가 가장 주요한 공격 경로로 다루어진다. 따라서 플라즈마 체인의 지분증명 방식은 51% 어택보다는 BWH를 최소화하는 것에 초점이 맞춰져 있다. 이 목표를 달성하기 위해 플라즈마 체인의 지분증명 방식은 나카모토 합의(비트코인의 합의 [[알고리즘]])의 유인을 차용한다.
+
: 플라즈마에서는 블록 헤더가 상위 체인에 커밋되는 것이 매우 중요하다. 그런데 만약 플라즈마 체인의 블록 생성자들이 고의적으로 블록을 더 이상 생성하지 않거나 블록을 생성하고도 공표하지 않으면 블록 헤더가 더 이상 상위 체인에 커밋될 수 없다. 이러한 공격을 Block Withholding Attack(BWH)이라 부른다. 플라즈마에서는 이러한 BWH가 가장 주요한 공격 경로로 다루어진다. 따라서 플라즈마 체인의 지분증명 방식은 51% 어택보다는 BWH를 최소화하는 것에 초점이 맞춰져 있다. 이 목표를 달성하기 위해 플라즈마 체인의 지분증명 방식은 나카모토 합의(비트코인의 합의 [[알고리즘]])의 유인을 차용한다.
나카모토 합의에서는 리더(블록 생성자)를 확률적으로 선출하여 BWH를 막는다. 비트코인에서 A라는 블록 생성자가 특정 블록 높이에서 블록을 생성했다고 가정해보자. A는 리더가 될 확률이 높지만 확신할 수는 없다. 다른 사람들이 동시에 같은 높이의 블록을 생성했을 수 있기 때문이다. A가 생성한 블록이 메인 체인의 블록이 될 것인지는 일정 시간(비트코인에서는 6 컨펌)이 지난 후에야 알 수 있다. 비트코인에서는 가장 긴 체인이 메인 체인이 되는 만큼, A가 해시 파워의 51% 이상을 소유하고 있지 않은 이상 A가 리더가 되기 위해서 취할 수 있는 가장 좋은 방법은 생성하자마자 최대한 빨리 블록을 다른 노드들에 전파(propagate)하는 것이다.
+
나카모토 합의에서는 리더(블록 생성자)를 확률적으로 선출하여 BWH를 막는다. 비트코인에서 A라는 블록 생성자가 특정 블록 높이에서 블록을 생성했다고 가정해보자. A는 리더가 될 확률이 높지만 확신할 수는 없다. 다른 사람들이 동시에 같은 높이의 블록을 생성했을 수 있기 때문이다. A가 생성한 블록이 메인 체인의 블록이 될 것인지는 일정 시간(비트코인에서는 6 컨펌)이 지난 후에야 알 수 있다. 비트코인에서는 가장 긴 체인이 메인 체인이 되는 만큼, A가 해시 파워의 51% 이상을 소유하고 있지 않은 이상 A가 리더가 되기 위해서 취할 수 있는 가장 좋은 방법은 생성하자마자 최대한 빨리 블록을 다른 노드들에게 전파(propagate)하는 것이다.
  
 
* 플라즈마 체인의 지분증명 방식 모델
 
* 플라즈마 체인의 지분증명 방식 모델
: 플라즈마 체인의 지분증명 방식 모델을 다루기에 앞서, 먼저 일반적인 지분증명 방식 모델을 생각해보자. 일반적인 지분증명 방식에서는 리더가 확정적이다. 예를 들어, coinage를 활용한 지분증명 방식 모델에서는 (proofhash < coinage)라는 블록 생성 공식이 있음으로, 누구나 풀 노드(Full node)에 질의(Query)를 날려 누가 다음 블록을 생성할 것인지 예측할 수 있다. 만약 단 한 명만이 블록을 생성할 예정인 경우 생성 예정인 블록은 51% 어택이 일어나지 않는 이상 메인 체인에 무조건 포함될 것이다. 그런데 이처럼 리더가 확정적이면 블록 전파를 할 유인이 부족하여 BWH이 일어날 수 있음으로, 플라즈마 체인의 지분증명 방식 모델은 일반적인 지분증명 방식 모델과 달라져야 한다. 그래서 플라즈마 체인의 지분증명 방식에서는 나카모토 합의처럼 리더를 확률적으로 선출하고 블록 전파를 장려하는 장치들을 둔다. 먼저 플라즈마 체인의 지분증명 방식에서 지분 보유자(stake holder)들은 자신들의 기금을 위임받은 스테이커(staker)에게 할당한다. 스테이커들은 지분 보유자를 대신해서 행동할 책임이 있으며, 만약 잘못 행동할 시 지분 보유자들이 트랜젝션 수수료를 받지 못하는 등 불이익을 받게 된다. 스테이커들은 특정 기간동안 활동하게 되며, 스테이커가 되기 위해서는 총 토큰 발행량의 1%(최소) ~ 5%(최대)를 할당받아야 한다. 5% 이상 할당받으려는 경우, 여러 개의 스테이커 계정에 나눠서 할당받아야 한다. 이는 1개 계정의 영향력을 5%로 제한하여, 51% 어택이나 BWH 담합의 가능성을 줄이기 위해 필요한 과정이다. 블록 생성 보상은 지난 100개의 블록의 스테이킹 비율 대표 여부에 따라 달라진다. 지난 100개의 블록이 스테이킹 비율을 대표한다면 스테이커들은 추가적인 블록 생성 보상을 받을 수 있다. Alice가 총 토큰 발행량의 3%를 할당받은 스테이커라고 가정해보면, 지난 100 개의 블록이 스테이킹 비율을 대표하려면, Alice가 생성한 블록의 개수가 3개여야 한다. 만약 Alice가 3개를 초과해서 생성한다면, 지난 100개의 블록이 스테이킹 비율을 대표하지 못하게 된다. 이때 Alice는 초과 생성분에 대해서는 앞에서 말한 추가적인 블록 생성 보상을 받을 수 없다. 마찬가지로 지난 100개의 블록 기간 동안 Alice가 3개보다 적은 블록을 생성한 경우에도 스테이킹 비율을 대표하지 못하게 되므로, 현재의 블록 생성자는 추가 보상을 받을 수 없게 된다. 지난 100개의 블록이 스테이킹 비율을 대표하지 못해 아무에게도 지급되지 않은 추가 보상이 생기면, 이는 미래의 블록 생성을 보상하기 위한 풀(pool)로 들어가게 된다. 이러한 구조 속에서 스테이커들은 다른 모든 스테이커가 블록 생성 과정에 참여할 수 있도록 협력하게 될 것이다. 만약 Alice가 3%를 할당받은 스테이커고, 블록을 초과해서 생성했다고 가정해보자. 다른 스테이커들 입장에선, Alice의 초과 생성 블록 뒤에 생성하면 추가 보상을 못 받게 되므로, Alice의 초과 생성 블록 뒤에 이어서 블록을 생성할 유인이 없다. 그러므로 스테이커들은 지난 100개의 블록이 스테이킹 비율을 최대한 대표하는 브랜치를 찾아서 그 뒤에 블록을 붙여나갈 것이고, 그러기 위해 지속적으로 서로 싱크를 할 것이다. 그런데 위의 과정은 엄밀히 말하면 스테이커마다 생성할 블록의 양을 할당하고 협력하게 하는 과정이지, 전파를 장려하는 과정은 아니다. 전파를 장려하기 위해 플라즈마 체인에서는 일정 기간마다 지난 모든 블록의 보상 합이 가장 큰 브랜치를 메인 체인에 체인 팁(Chain Tip)으로 포함해 finalized시킨다. 예를 들어, height n까지 finalized 되었고, finalization는 블록 6개 주기로 이루어진다고 가정해보면, 다음에 메인 체인에 포함되어 finalized되는 브랜치는 height n+6까지의 모든 블록의 보상 합이 가장 큰 브랜치일 것이다. 이 점이 매우 중요하다. Alice는 height n+1의 블록을 생성하였고, 모든 브랜치중 Alice의 블록이 담긴 브랜치가 height n+1까지의 보상 합이 가장 크다. 그런데도Alice의 블록은 메인 체인에 포함되지 않을 수도 있다. Alice 뒤의 height n+2 ~ n+6의 블록 생성자들이 생성한 블록들이 스테이킹 비율을 대표하지 못해 적은 보상을 받을 경우, 다른 브랜치가 Alice 브랜치의 보상 합을 역전해 height n+6에서 메인 체인으로 채택될 수 있기 때문이다. 이처럼 Alice는 자신이 생성한 블록이 리더가 될지 확신할 수 없다. 이는 반대로 말하면, 자신이 생성한 블록이 메인 체인에 포함될 확률이 늘 존재한다는 뜻이다.<ref name="블록체인"></ref>
+
: 플라즈마 체인의 지분증명 방식 모델을 다루기에 앞서, 먼저 일반적인 지분증명 방식 모델을 생각해보자. 일반적인 지분증명 방식에서는 리더가 확정적이다. 예를 들어, coinage를 활용한 지분증명 방식 모델에서는 (proofhash < coinage)라는 블록 생성 공식이 있으므로, 누구나 풀 노드(Full node)에 질의(Query)를 날려 누가 다음 블록을 생성할 것인지 예측할 수 있다. 만약 단 한 명만이 블록을 생성할 예정인 경우 생성 예정인 블록은 51% 어택이 일어나지 않는 이상 메인 체인에 무조건 포함될 것이다. 그런데 이와 같이 리더가 확정적이면 블록 전파를 할 유인이 부족하여 BWH이 일어날 수 있으므로, 플라즈마 체인의 지분증명 방식 모델은 일반적인 지분증명 방식 모델과 달라져야 한다. 그래서 플라즈마 체인의 지분증명 방식에서는 나카모토 합의처럼 리더를 확률적으로 선출하고 블록 전파를 장려하는 장치들을 둔다. 먼저 플라즈마 체인의 지분증명 방식에서 지분 보유자(stake holder)들은 자신들의 기금을 위임받은 스테이커(staker)에게 할당한다. 스테이커들은 지분 보유자를 대신해서 행동할 책임이 있으며, 만약 잘못 행동할 시 지분 보유자들이 트랜젝션 수수료를 받지 못하는 등 불이익을 받게 된다. 스테이커들은 특정 기간동안 활동하게 되며, 스테이커가 되기 위해서는 총 토큰 발행량의 1%(최소) ~ 5%(최대)를 할당 받아야 한다. 5% 이상 할당받으려는 경우, 여러 개의 스테이커 계정에 나눠서 할당받아야 한다. 이는 1개 계정의 영향력을 5%로 제한하여, 51% 어택이나 BWH 담합의 가능성을 줄이기 위해 필요한 과정이다. 블록 생성 보상은 지난 100개의 블록들의 스테이킹 비율 대표 여부에 따라 달라진다. 지난 100개의 블록들이 스테이킹 비율을 대표한다면 스테이커들은 추가적인 블록 생성 보상을 받을 수 있다. Alice가 총 토큰 발행량의 3%를 할당 받은 스테이커라고 가정해보면, 지난 100 개의 블록이 스테이킹 비율을 대표하려면, Alice가 생성한 블록의 개수가 3개여야 한다. 만약 Alice가 3개를 초과해서 생성한다면, 지난 100개의 블록이 스테이킹 비율을 대표하지 못하게 된다. 이때 Alice는 초과 생성분에 대해서는 앞에서 말한 추가적인 블록 생성 보상을 받을 수 없다. 마찬가지로 지난 100개의 블록 기간 동안 Alice가 3개보다 적은 블록을 생성한 경우에도 스테이킹 비율을 대표하지 못하게 되므로, 현재의 블록 생성자는 추가 보상을 받을 수 없게 된다. 지난 100개의 블록이 스테이킹 비율을 대표하지 못해 아무에게도 지급되지 않은 추가 보상이 생기면, 이는 미래의 블록 생성을 보상하기 위한 풀(pool)로 들어가게 된다. 이러한 구조 속에서 스테이커들은 다른 모든 스테이커가 블록 생성 과정에 참여할 수 있도록 협력하게 될 것이다. 만약 Alice가 3%를 할당받은 스테이커고, 블록을 초과해서 생성했다고 가정해보자. 다른 스테이커들 입장에선, Alice의 초과 생성 블록 뒤에 생성하면 추가 보상을 못받게 되므로, Alice의 초과 생성 블록 뒤에 이어서 블록을 생성할 유인이 없다. 그러므로 스테이커들은 지난 100개의 블록이 스테이킹 비율을 최대한 대표하는 브랜치를 찾아서 그 뒤에 블록을 붙여나갈 것이고, 그러기 위해 지속적으로 서로 싱크를 할 것이다. 그런데 위의 과정은 엄밀히 말하면 스테이커마다 생성할 블록의 양을 할당하고 협력하게 하는 과정이지, 전파를 장려하는 과정은 아니다. 전파를 장려하기 위해 플라즈마 체인에서는 일정 기간마다 지난 모든 블록의 보상 합이 가장 큰 브랜치를 메인 체인에 체인 팁(Chain Tip)으로 포함시켜 finalized시킨다. 예를 들어, height n까지 finalized 되었고, finalization는 블록 6개 주기로 이루어진다고 가정해보면, 다음에 메인 체인에 포함되어 finalized되는 브랜치는 height n+6까지의 모든 블록의 보상 합이 가장 큰 브랜치일 것이다. 이 점이 매우 중요하다. Alice는 height n+1의 블록을 생성하였고, 모든 브랜치중 Alice의 블록이 담긴 브랜치가 height n+1까지의 보상 합이 가장 크다. 그럼에도 불구하고 Alice의 블록은 메인 체인에 포함되지 않을 수도 있다. Alice 뒤의 height n+2 ~ n+6의 블록 생성자들이 생성한 블록들이 스테이킹 비율을 대표하지 못해 적은 보상을 받을 경우, 다른 브랜치가 Alice 브랜치의 보상 합을 역전해 height n+6에서 메인 체인으로 채택될 수 있기 때문이다. 이처럼 Alice는 자신이 생성한 블록이 리더가 될지 확신할 수 없다. 이는 반대로 말하면, 자신이 생성한 블록이 메인 체인에 포함될 확률이 늘 존재한다는 뜻이다.<ref name="블록체인"></ref>
  
 
==한계점==
 
==한계점==
기존 플라즈마 모델에서 가장 중요한 문제로 꼽는 것은 세 가지이다. 첫 번째는 검증에 필요한 리소스가 너무 많다는 것, 두 번째는 거래 승인의 과정이 복잡하다는 것이며 마지막은 operator의 부정행위에 대해선, exit으로 대처할 수밖에 없다는 것이다.
+
기존 플라즈마 모델에서 가장 중요한 문제로 꼽는 것은 세 가지이다. 첫 번째는 검증에 필요한 리소스가 너무 많다는 것, 두 번째는 거래 승인의 과정이 복잡하다는 것이며 마지막은 operator의 부정 행위에 대해선, exit으로 대처할 수 밖에 없다는 것이다.
  
 
* 무거운 검증
 
* 무거운 검증
: 플라즈마 체인은 아래 그림과 같이 계층 형태의 구조로 이루어져있으며, 각 체인은 독자적인 합의 방식을 가질 수 있다. 독자적인 구조를 가질 수 있단 것은, 지분증명 방식뿐만이 아니라 한 집단에 의해 체인이 관리되는 권한증명 방식의 합의 방식도 가질 수 있단 것이다. 앞선 글에서 이야기한 바와 같이, 다소 중앙화되어있는 합의 방식이 채택되었음에도 플라즈마 체인의 안정성을 보장할 수 있는 이유는 Challenging 시스템에 있다. 누군가 부정한 출금을 시도했을 때, 체인을 관찰하고 있는 누구라도 해당 출금이 부정함을 증명하여 부정 출금을 막을 수 있다. 이러한 장점 덕에, 플라즈마는 무한한 확장을 꿈꿀 수 있다. 그러나 역설적이게도, 이러한 확장성이 검증의 자율성을 헤치며 도리어 무한한 확장성의 발목을 잡는다.
+
: 플라즈마 체인은 아래 그림과 같이 계층 형태의 구조로 이루어져있으며, 각 체인은 독자적인 합의 방식을 가질 수 있다. 독자적인 구조를 가질 수 있단 것은, 지분증명 방식뿐만이 아니라 한 집단에 의해 체인이 관리되는 권한증명 방식의 합의 방식도 가질 수 있단 것이다. 앞선 글에서 이야기한 바와 같이, 다소 중앙화 되어있는 합의 방식이 채택 되었음에도 플라즈마 체인의 안정성을 보장할 수 있는 이유는 Challenging 시스템에 있다. 누군가 부정한 출금을 시도했을 때, 체인을 관찰하고 있는 어느 누구라도 해당 출금이 부정함을 증명하여 부정 출금을 막을 수 있다. 이러한 장점 덕에, 플라즈마는 무한한 확장을 꿈꿀 수 있다. 그러나 역설적이게도, 이러한 확장성이 검증의 자율성을 헤치며 도리어 무한한 확장성의 발목을 잡는다.
  
 
* 불편한 거래
 
* 불편한 거래
112번째 줄: 112번째 줄:
 
# 해당 거래를 operator에게 전달한다.
 
# 해당 거래를 operator에게 전달한다.
 
# operator는 P-chain에서 해당 거래 내용을 담은 블록을 생성한다.
 
# operator는 P-chain에서 해당 거래 내용을 담은 블록을 생성한다.
# 부모 chain으로 해당 내용을 올리며, 결과적으로 Root chain까지 내용이 올라가게 된다.
+
# 부모 chain으로 해당 내용을 올리며, 결과적으로 Rootchain까지 내용이 올라가게 된다.
 
# A는 해당 사실을 확인하고 서명하여 B에게 전달한다.
 
# A는 해당 사실을 확인하고 서명하여 B에게 전달한다.
# B 역시 Root chain을 확인하고 사인을 한다.
+
# B 역시 Rootchain을 확인하고 사인을 한다.
 
# 둘다 사인하고 사인 [[트랜잭션]]이 블록에 담기면 [[트랜잭션]]은 유효해진다.
 
# 둘다 사인하고 사인 [[트랜잭션]]이 블록에 담기면 [[트랜잭션]]은 유효해진다.
 
위 과정은 필요하나, 사용자 입장에서 번거롭다. 더군다나, 거래의 마지막 결정권은 마지막 사인을 하는 사람에게 있기 때문에, 사용 가능한 옵션 문제 역시 생기게 된다. 물론 이는 라이트닝 네트워크의 방법을 차용하면 어느 정도 도움이 될 수 있다고 이전 글에서 서술되었으나, 이 역시 불편함을 야기한다.
 
위 과정은 필요하나, 사용자 입장에서 번거롭다. 더군다나, 거래의 마지막 결정권은 마지막 사인을 하는 사람에게 있기 때문에, 사용 가능한 옵션 문제 역시 생기게 된다. 물론 이는 라이트닝 네트워크의 방법을 차용하면 어느 정도 도움이 될 수 있다고 이전 글에서 서술되었으나, 이 역시 불편함을 야기한다.
122번째 줄: 122번째 줄:
 
# Operator가 자신에게 9999PETH를 주는 부정한 거래 생성
 
# Operator가 자신에게 9999PETH를 주는 부정한 거래 생성
 
# 해당 정보를 통해 exit을 요청
 
# 해당 정보를 통해 exit을 요청
: 단순한 공격 상황이지만, 기존 모델에선, 참여자는 이 공격 상황을 직접적으로 방어할 수 없었다. 대신 참여자는 operator와 같이 출금 요청을 한다. 여러 출금 요청이 들어온 경우, 플라즈마는 우선순위가 높은 거래부터 출금을 시켜준다. 이때, 이 우선순위란 utxo의 '나이'라고 볼 수 있다. Operator의 부정한 거래보다 참여자가 소지한 utxo가 먼저 생성되었기 때문에 같이 출금 신청을 할 경우, 참여자의 자금부터 출금이 되어 operator의 부정한 출금 요청은 잔액 부족으로 실패하게 된다. 참여자는 공격으로부터 자금을 보호할 수는 있지만, 참여 중이었던 네트워크는 마비된다. 만일, 이 네트워크와 교류가 많은 이웃 네트워크가 있다고 한다면 피해는 확산할 것이다. 가장 좋은 방법은, operator의 부정 출금을 맞 출금으로 대응하는 것이 아닌, 해당 출금을 취소시키는 것이다.<ref name="한계점과 캐시">Jihyeok Choy, 〈[https://medium.com/decipher-media/%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-%ED%99%95%EC%9E%A5%EC%84%B1-%EC%86%94%EB%A3%A8%EC%85%98-%EC%8B%9C%EB%A6%AC%EC%A6%88-2-3-plasma-cash-89bd7993d44f 블록체인 확장성 솔루션 시리즈 2–3 :: Plasma Cash]〉, 《Medium》, 2018-05-03</ref>
+
: 단순한 공격 상황이지만, 기존 모델에선, 참여자는 이 공격 상황을 직접적으로 방어할 수 없었다. 대신 참여자는 operator와 같이 출금 요청을 한다. 여러 출금 요청이 들어온 경우, 플라즈마는 우선 순위가 높은 거래부터 출금을 시켜준다. 이때, 이 우선 순위란 utxo의 '나이'라고 볼 수 있다. Operator의 부정한 거래보다 참여자가 소지한 utxo가 먼저 생성되었기 때문에 같이 출금 신청을 할 경우, 참여자의 자금부터 출금이 되어 operator의 부정한 출금 요청은 잔액 부족으로 실패하게 된다. 참여자는 공격으로부터 자금을 보호할 수는 있지만, 참여 중이었던 네트워크는 마비된다. 만일, 이 네트워크와 교류가 많은 이웃 네트워크가 있다고 한다면 피해는 확산 될 것이다. 가장 좋은 방법은, operator의 부정 출금을 맞출금으로 대응하는 것이 아닌, 해당 출금을 취소시키는 것이다.<ref name="한계점과 캐시">Jihyeok Choy, 〈[https://medium.com/decipher-media/%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-%ED%99%95%EC%9E%A5%EC%84%B1-%EC%86%94%EB%A3%A8%EC%85%98-%EC%8B%9C%EB%A6%AC%EC%A6%88-2-3-plasma-cash-89bd7993d44f 블록체인 확장성 솔루션 시리즈 2–3 :: Plasma Cash]〉, 《Medium》, 2018-05-03</ref>
  
 
==플라즈마 캐시==
 
==플라즈마 캐시==
133번째 줄: 133번째 줄:
 
# 루트 체인에서 새로운 id를 생성하고 그 id와 가치(1ETH)가 매핑된다.
 
# 루트 체인에서 새로운 id를 생성하고 그 id와 가치(1ETH)가 매핑된다.
 
# 체인 내에서는 그 id와 1ETH의 가치를 가지는 [[플라즈마 캐시]]가 생성되어 A가 이 소유권을 가지고 있다.
 
# 체인 내에서는 그 id와 1ETH의 가치를 가지는 [[플라즈마 캐시]]가 생성되어 A가 이 소유권을 가지고 있다.
: 위 과정으로부터 플라즈마 체인내에서 사용될 수 있는 [[플라즈마 캐시]]가 생성되며, 이는 대체 불가능(non-fungible)한 특성을 보인다.
+
: 위 과정으로부터 플라즈마 체인내에서 사용될 수 있는 [[플라즈마 캐시]]가 생성되며, 이는 대체 불가능(non-fungible)한 특성을 지닌다.
  
 
* 플라즈마 캐시의 머클트리
 
* 플라즈마 캐시의 머클트리
: 플라즈마 체인의 블록은 이제 다른 방식으로 거래를 저장한다. 기존의 모델에서는, 비트코인의 utxo 모델과 같이 거래를 머클화 시켜 저장했다. 또한, utxo 모델이기에 이 거랫값이 곧 새로운 token이 되었다. [[플라즈마 캐시]]를 도입했을 때, 블록에 담겨 머클화 되는 정보는 거래가 아닌 거래에 사용된 토큰과 새로운 주인이다. 즉, 토큰의 상태 변화를 머클 트리에 담는다고 할 수 있다. 누군가 조작을 위해 Address, 혹은 Id를 바꿀 경우 Root Hash역시 변화하여 담긴 정보가 다름을 쉽게 파악 할 수 있다. 또한, utxo 모델과 다르게, 거래와 상관없이 토큰의 양과 id는 불변이기에, 새로운 utxo도 이전과 같은 id를 가지고 있다.
+
: 플라즈마 체인의 블록은 이제 다른 방식으로 거래들을 저장한다. 기존의 모델에서는, 비트코인의 utxo 모델과 같이 거래들을 머클화 시켜 저장했다. 또한, utxo 모델이기에 이 거래 값이 곧 새로운 token이 되었다. [[플라즈마 캐시]]를 도입했을 때, 블록에 담겨 머클화 되는 정보는 거래가 아닌 거래에 사용된 토큰과 새로운 주인이다. 즉, 토큰의 상태 변화를 머클 트리에 담는다고 할 수 있다. 누군가 조작을 위해 Address, 혹은 Id를 바꿀 경우 Root Hash역시 변화하여 담긴 정보가 다름을 쉽게 파악 할 수 있다. 또한, utxo 모델과 다르게, 거래와 상관없이 토큰의 양과 id는 불변이기에, 새로운 utxo도 이전과 같은 id를 가지고 있다.
  
 
* 토큰의 소비
 
* 토큰의 소비

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)