はじめに

스크립팅

스크립트 언어에 관해 논의를 시작한다면, 각 원장 주소간 트랜잭션은 유효성이 입증된 실행가능한 스크립트 형태로 이뤄져야 합니다. 예를 들어, Eve가 Alice의 돈에 접근할 수 없어야 하며, 잘못 설계된 스크립트로 인해 사고로 사용하지 않는 주소로 송금되어 자금이 유실되지 않아야 할 것입니다.

Bitcoin과 같은 시스템은 매우 유연하지 못하고 엄격한 스크립트 언어를 제공합니다. 그것은 적합한 트랜잭션으로 프로그램하기 어렵고, 읽고 이해하기에도 어렵습니다. 그리고 Solidity와 같은 일반적인 프로그래밍 언어는 시스템에 엄청난 양의 복잡성을 도입하고 훨씬 적은 수의 참여자에게만 유용합니다.

따라서 우리는 Simon6 이라 불리는 새로운 언어의 설계를 선택하였는데, 이 언어를 만든 Simon Thompson과, 이에 영감을 준 개념을 만든 Simon Peyton Jones의 이름을 기린 것입니다. Simon은 Composing contracts: an adventure in financial engineering 논문에 기반한 도메인 특화 언어입니다.

주요 개념은 금융 트랜잭션은 보통 기본적인 요소7 들의 집합으로 구성되어 있다는 것입니다. 재무 주기율표를 조립하면 일반적 프로그래밍 없이도 대부분의 공통 트랜잭션 유형을 포괄하는 임의의 대규모 복합 트랜잭션에 대한 지원을 제공 할 수 있습니다.

가장 큰 이점은 보안 및 실행을 매우 잘 이해할 수 있다는 것입니다. 증거들은 템플릿의 정확성을 보이거나, 무에서 새로운 돈을 생성하거나 거래의 유연성과 같이 문제가 있는 거래 이벤트의 실행 영역을 철저하게 다루도록 작성될 수 있습니다. 두번째 이점은 새로운 기능이 필요한 경우 소프트 포크를 통해 더 많은 요소를 확장 기능에 추가할 수 있다는 것입니다.

이는 특수 목적 서버나 기존 금융 시스템, 오버레이 프로토콜들과 CSL을 연결해야 할 필요가 있다는 것을 말합니다. 따라서 우리는 범용 스마트 계약 언어와 상호 운용성을 위한 특수 목적 DSL로 Plutus를 개발했습니다.

Plutus는 하스켈의 개념에 기반한 자료형을 갖는 함수형 언어로, 커스텀 트랜잭션 스크립트를 작성할 때 사용됩니다. CSL의 경우, 사이드체인 구조처럼, 연결할 필요가 있는 다른 레이어에 대한 지원을 추가하는 등의 복잡한 트랜잭션에 사용될 것입니다.


6: 구체적인 내용은 추후의 사양에 발표될 것입니다. 전체 언어는 2017년 4분기 Shelley CSL 릴리즈에서 지원될 예정입니다.

7: Project ACTUS는 심도있는 정교함을 가지고 있습니다.

Last updated: Invalid date