EOS 백서에 나타난 스마트 컨트랙트 관련 내용

in #kr7 years ago (edited)

1.png


이더리움은 스마트 컨트랙트의 보안을 계산 수수료인 가스(gas)를 부과하여 보안을 유지하지만, EOS는 코인의 지분율에 해당하는 만큼의 마이너 자원(리소스)의 사용권을 제공하는 방법으로 이를 해결하였습니다.

이것은 DPOS에서 20명의 증인이 주로 아마존 클라우드를 이용한다는 것을 교묘히 이용한 컨트랙트 보안 방법으로 보입니다.

이런 보안 방법의 아이디어는 매우 신선합니다.

하지만, 이런 방법은 DPOS와 같이 다소 중앙화되고, 증인이 아마존 서버에서 많은 자원을 가지고 운영하는 시스템에서 이용할 수 있지만, 마이너가 주로 일반 PC를 이용하는 코인에서 이런 보안 방법은 사용하기가 힘들 것으로 보입니다.

저에게 EOS의 특징은 다중체인 + 스마트 컨트랙트 + 모듈 방식의 프로그램 구조를 가진 것으로 보입니다.


아래는 EOS 의 백서에 포함된 컨트랙과 관련된 내용을 간추려 보았습니다.
간단한 설명을 추가했습니다..

메시지와 처리기 (Messages & Handlers)

EOS.IO는 스마트 컨트렉트(smart contract)를 메시지와 자동화된 메시지 처리기의 조합으로 정의합니다.

EOS에서 스마트 컨트랙트 = 메시지 + 메시지 처리기

토큰 모델과 리소스 사용 (Token Model and Resource Usage)

리소스를 크게 세 가지 분류로 나눕니다.

  1. 대역폭과 로그 저장소 (디스크)
  2. 연산과 연산 로그 (CPU)
  3. 상태 저장소 (램)

블록체인 상태 저장소는 애플리케이션 로직이 접근할 수 있는 정보입니다. 이는 계정 잔액과 거래 내용 등의 정보를 담고 있습니다.

블록 생산자는 그들이 가용 가능한 대역폭, 연산 능력, 상태 허용량을 알려주어야 합니다.

EOS.IO 기반의 블록체인이 출시한 후 한 계정이 배포 가능한 전체 토큰의 1%를 가지고 있으면 해당 계정은 전체 상태 저장소의 1%를 사용할 수 있습니다.

가장 중요한 것은 코인의 지분율에 의해서 마이너가 제공하는 전체 상태저장소의 사용율도 정해진다는 것입니다. 상태인 모든 계정은 마이너의 자원(램 또는 하드디스크)에 저장될 것입니다.

마이너는 자원량을 사용자에게 알려주어야 하고, 이것은 사용자의 코인 지분율에 따라 사용자의 자원 사용 비율을 알
수 있기 때문입니다.

주관적 스케줄링 (Subjective Best Effort Scheduling)

블록 생산자들은 개별적인 측정 알고리즘을 이용하여 리소스 사용 비용을 계산할 수 있습니다.

블록 생산자가 한 트랜잭션 혹은 계정이 과도한 양의 연산 자원을 사용한다고 판단이 되면 해당 트랜잭션을 본인이 생산하는 블록에 추가하는 것을 거부할 수 있습니다.

일반적으로 한명 의 블록 생산자라도 트랜잭션이 리소스 사용 제한을 넘지 않아 적합하다고 간주하면 다른 블록 생산자도 승인하게 됩니다

간혹 블록 생산자가 허용 가능한 범위를 몇 배나 넘어가는 트랜잭션을 블록에 포함 시킬 수도 있습니다. 이 경우 다음 블록 생산자는 그 블록을 아예 거절해버릴 수 있으며, 승인과 거절이 동률인 상태는 다음 블록 생산자에 의해 판결됩니다.

여기서 '주관적'이란 '마이너'가 주관적으로 결정한다는 것입니다.
특정 거래(트랜젝션, 스마트 컨트랙트일 수 있음)가 과도한 연산자원을 사용하면 마이너가 해당 트랜잭션을 거부한다는 것입니다.

가장 중요한 것은 '리소스 사용 제한'이 있다는 것이고, 이 제한을 넘지 않은 거래만이 블럭에 포함될 수 있다는 것입니다.

이더리움은 가스(gas)를 사용하여 스마트 컨트랙트의 보안을 유지했는데, EOS는 보유한 코인의 지분률에 따라 사용할 수 있는 거래의 연산량이 정해진다는 것입니다. 물론 연산량은 마이너의 리소스가 제공하는 것입니다.

객관적 측정과 주관적 측정 (Objective and Subjective Measurements)

그러므로 모든 리소스 사용 제한은 궁극적으로 블록 생산자의 개별적인 측정 방식과 알고리즘에 의하여 주관적으로 이루어져야 합니다.

'리소스 사용 제한'은 마이너의 자원(리소스)를 말하는 것이고, 마이너 자신이 주관적으로 개별 거래에 대해서 리소스 제한을 할 수 있다는 것입니다.

리소스 허용량 위임 (Delegating Capacity)

소유자는 남은 대역폭을 다른 사람에게 양도하거나 빌려줄 수 있습니다

혹시 코인을 빌려주는 것으로 보이며, 이를 통해서 수수료 수익을 얻을 수 있을 것으로도 생각할 수 있습니다.

토큰의 가치와 트랜잭션 비용의 분리 (Separating Transaction costs from Token Value)

만약에 애플리케이션 소유자가 충분한 양의 토큰을 가지고 있다면, 애플리케이션은 고정된 상태와 대역폭 사용량 내에서 제한 없이 구동됩니다.

애플리케이션은 컨트랙트를 말합니다.
충분한 양의 토큰은 마이너의 리소스 사용 제한을 초과하지 않는 것을 말합니다.

상태 저장 비용 (State Storage Costs)

대역폭과 연산 능력은 위임할 수 있지만

애플리케이션 상태 저장소 유지를 위한 토큰을 보유해야 합니다.


EOS 한글 백서
EOS 영문 백서

Coin Marketplace

STEEM 0.20
TRX 0.15
JST 0.029
BTC 64572.94
ETH 2630.79
USDT 1.00
SBD 2.82