Waves 스마트컨트랙

master master

스마트컨트랙은 모든 블록체인 플랫폼의 중요한 메커니즘이며 이의 실현은 사람들에게 편리하고 이해하기 쉬워야 합니다.

Waves 플랫폼 스마트컨트랙의 이점

스마트컨트랙은 Waves 생태계에 새로운 추가 기능과 이점을 가져다 줄 것입니다, 그림 1:

  1. 스마트컨트랙은 한 사람이 통제할 수 없는 다중 서명(Multisignature) 지갑 기능을 가능하게 할 것입니다. 트랜잭션이 발생하려면 해당 지갑의 이해관계자 모두가 프라이빗키를 동시에 제공해야 합니다. 이것은 매우 중요한 보안 기능이며 한 명의 개인에게 지갑의 통제권을 주지 않음으로써 팀이 그들의 자금은 안전하게 관리할 수 있게 해줍니다. 이는 토큰 판매에 특히 유용하게 사용될 것입니다. 왜냐하면 토큰이 배포되는 동안 자금이 안전하게 보관될 수 있기 때문입니다.
  2. 다른 유사 블록체인과 달리 Waves 스마트컨트랙은 non-Turing complete 스마트컨트랙에서 gas를 사용하지 않습니다. 즉, 고정 비용이 선금으로 지불됩니다. Ethereum과 비교해서 Waves가 본질적으로 동일한 서비스를 제공함과 동시에 훨씬 단순하고 효율적이며 경제적입니다.
  3. Waves 스마트컨트랙에는 토큰 동결(token freezes) 기능이 제공될 것이며 동시에 아토믹 스왑이 추가될 예정입니다 — 구매자가 자신의 주소에서 지정된 시간 동안 토큰을 판매하거나 전송하는 것을 방지하는 매개 변수를 사용자가 도입할 수 있음을 의미합니다. 이것은 토큰을 사용자에게 전송하는 것이 포함되지만 일정 시간 동안 토큰을 전송하지 못하거나 사용 불가능한 상태로 유지되는 것을 보장합니다. 이에 대한 가장 명백한 유스 케이스는 권리 부여의 메커니즘으로 쓰이거나 ICO 진행 후 팀/계약자의 급여 지급을 위해 쓰이는 것입니다.
  4. Waves 토큰은 WAVES 자체와 유사합니다. 즉, 이들은 귀하의 지갑에 보관할 수 있으며 똑같이 취급됩니다 — 플랫폼은 코어에서의 토큰 생성과 표준 Waves 지갑을 지원합니다. 이는 본질적으로 최종 사용자의 삶을 편하게 해줍니다. 그뿐만 아니라 생성된 토큰은 추가적인 작업 없이 즉시 배포되거나 Waves 탈중앙화 거래소인 DEX에서 거래할 수 있습니다.
  5. Turing-complete 스마트컨트랙을 기반으로하는 탈중앙화 어플리케이션 (DApps)은 Waves 블록체인에서 복잡한 프로세스를 처리할 수 있기에 다양한 기준을 충족시킬 수 있습니다.
  6. 잔고 관리, 사용자는 그들의 잔고가 일정 금액 이하로 떨어지지 않는 선에서 정기적인 월별 납입이 이루어지기를 원할 수 있습니다. 또는 한 주소에 일정 금액의 자금을 보관하고 그 이상의 금액을 별도의 계좌로 옮기고 싶을 수도 있습니다.

그림 1, Waves Platform에서 스마트컨트랙을 구현할 때의 이점.

Waves 스마트컨트랙 구현의 단계

두 단계가 있습니다, 그림 2:

  1. Non-Turing Complete 스마트컨트랙은 유스 케이스의 상당 부분을 차지하며 스마트 계정 및 스마트 토큰이 포함됩니다.

  2. Turing Complete 스마트컨트랙은 블록체인에서 탈중앙화 어플리케이션 제작을 가능하게 하며 트랜잭션을 직접 보낼 수 있게 합니다.

그림 2, Waves 스마트컨트랙 구현의 단계

스마트 계정

스마트 계정의 발상은 아래와 같습니다:

트랜잭션이 다음 블록에 포함되도록 보내지기 전에 계정은 트랜잭션이 스크립트에 규정된 특정 요구 사항을 충족하는지 확인합니다. 스크립트는 계정에 첨부되어 있으므로 승인하기 전에 계정은 모든 트랜잭션의 유효성을 검사할 수 있습니다. 스마트 계정의 주요 요구 사항은 추가적인 "gas" 또는 기타 비용 없이 일반 트랜잭션의 가격으로 사전에 정해진 수수료와 함께 실행할 수 있는 것입니다.

스마트 계정은 주어진 조건에 따라 트랜잭션을 직접 보내거나 자금을 이체할 수 없지만 블록체인에서 data(블록의 height나 트랜잭션의 서명)를 읽을 수 있으며 해당 데이터를 기반으로 얻은 속성의 결과를 리턴합니다.

참고. 여기에서 스마트컨트랙 구현에 대한 기술적 세부 사항을 확인할 수 있습니다.

스크립트 비용

우리는 스크립트의 모든 측면에 대한 성능 테스트를 수행했습니다. 이를 위해 우리는 JMH를 사용하여 benchmark subproject를 개발했습니다. JMH는 특별한 complexity units에서 AST (Abstract Syntax Tree) traversal을 통해 compilation 단계 후 스크립트의 복잡성을 계산합니다. Complexity units은 스크립트의 상대적 비용에 대한 척도입니다: 우리는 계산 복잡도 측면에서 가장 비싼 연산을 발견하고 이를 100 complexity units와 동일하게 정의하였습니다. 가장 비싼 기능은 아래와 같습니다:

  • base58
  • sigVerify 우리는 모든 테스트에서 10번의 테스트를 수행하여 평균 비용을 계산하였습니다. 우리가 수행한 성능 테스트의 전체적인 결과가 여기에 나와있습니다. 결과적으로 스크립트 비용에 대한 제약 조건은 아래와 같습니다. 스크립트는 8kB 이하이어야 하며 sigVerify가 20번 이상 실행되어야 합니다. 이것이 가장 비싼 연산입니다. 각 스크립트 유닛의 고정 비용은 400,000 wavelets (Waves 코인, 100,000,000 wavelets = 1 WAVES) 입니다. 즉, 당신이 스크립팅된 자산(스마트 자산)을 사용한다면 400,000 wavelets를 지불하는 것이고 당신이 스크릅팅된 트랜잭션을 가지고 있다면 2 * 400,000 wavelets를 지불해야 합니다.

참고. 여기에서 스마트컨트랙 구현에 대한 기술적 세부 사항을 확인할 수 있습니다.

origin/master:platform-features/smart-contracts.md

results matching ""

    No results matching ""