본문 바로가기

코인/코인 개발

카르다노(Cardano, ADA) 기반 스마트 컨트랙트 개발 플랫폼 Plutus

Plutus 플랫폼은 Cardano를 위한 스마트 컨트랙트 플랫폼입니다. Plutus 계약은 블록체인에서 실행되는 부분(온체인 코드)과 사용자의 컴퓨터에서 실행되는 부분(오프체인 또는 클라이언트 코드)으로 구성됩니다.

Plutus는 최신 언어 연구를 바탕으로 최고의 함수형 프로그래밍 언어인 Haskell을 기반으로 하는 안전한 풀 스택 프로그래밍 환경을 제공합니다. 온체인 및 오프체인 코드는 모두 Haskell로 작성되었으며 Plutus 스마트 계약은 Haskell 프로그램입니다. 오프체인 코드는 하스켈 컴파일러인 GHC(Glassgow Haskell Compiler)에 의해 컴파일되고 온체인 코드는 플루투스 컴파일러에 의해 컴파일됩니다.

Plutus 플랫폼을 사용하여 스마트 계약을 작성하려면 탐사 목적의 Plutus 개발을 위한 가벼운 웹 기반 환경인 Plutus Playground에서 직접 코딩할 수 있습니다.

 

Plutus "Hello, world" 예제. 출처: Plutus Playground

 

현재 테스트넷에서 작성된 Plutus 스마트 컨트랙트를 가동해볼 수 있으며 조만간 Alonzo 업데이트가 이뤄지고 나면 메인넷에 다양한 스마트 컨트랙트가 가동될 것으로 보입니다.

 

 

왜 Haskell인가

사실, Haskell은 잘 알려진 프로그래밍 언어는 아닙니다. 또한 개발자로서의 여정을 막 시작하는 사람들이 널리 선택하지도 않습니다. 실제로 'Popularity of Programming Languages Index'에서 Haskell은 2020년 11월 현재 Google에서 가장 많이 검색된 언어 27위에 올랐으며 Python 및 Java와 같은 언어가 1위를 차지했습니다.


그래서 많은 사람들이 이것을 염두에 두고 왜 처음에 하스켈에서 Cardano가 구현되었는지 궁금할 것입니다. 그 이유는 Haskell이 특히 형식적 방법과 함께 강력하고 정확한 코드를 작성하는 데 적합하기 때문입니다. Haskell은 높은 수준의 공식 검증이 필요한 높은 보증 코드와 프로그램에 적합한 함수형 프로그래밍 언어입니다. 이에 따라 프로그래머는 구현한 코드가 정확하다는 확신을 가질 수 있습니다. 우리가 Cardano에 대해 상상하는 미래, 즉 차세대 글로벌 사회 및 금융 운영 체제가 되기 위해서는 보증과 신뢰성이 필수적입니다.

 

Cardano에 탈중앙화 애플리케이션, 토큰화 및 스마트 컨트랙트가 도입됨에 따라 탈중앙화 금융 서비스의 전체 생태계가 발생할 것으로 기대합니다. 이는 수십억 달러 이상의 가치를 온체인으로 가져오거나 스마트 컨트랙트를 통해 잠그거나 분산된 자율 조직(DAO)을 통해 관리될 것입니다.


그러나 현재의 스마트 컨트랙트 인프라는 이러한 온체인 가치를 확보하는 데 실패했으며, 우리는 경험을 통해 다른 블록체인 및 스마트 컨트랙트 언어에 대한 취약성, 코드 오류 또는 스마트 컨트랙트 악용이 비참한 결과를 초래하고 종종 수십억 달러에 달하는 상당한 재정적 손실을 초래했음을 알고 있습니다. 이로 인해 일부 사람들은 스마트 컨트랙트가 위험 관점에서 기관 사용자에게 실행 가능한지 여부에 대해 의문을 제기했습니다.


이것이 바로 Cardano가 Haskell을 도입한 이유입니다. Haskell을 통해 Cardano의 Plutus/Marlowe 스마트 컨트랙트는 처음부터 높은 수준의 보증을 제공하는 정확하고 공식적으로 검증된 코드로 신중하게 구현할 수 있습니다.