03

Goguen

스마트 컨트랙트

스마트 컨트랙트의 통합과 함께 막을 올린 Goguen 시대는 Cardano 네트워크 능력의 발전을 향한 큰 발걸음을 의미합니다. Shelley 시대에서는 시스템 중심의 탈중앙화에 초점을 맞췄다면 Goguen은 여기에 동료 심사 (Peer Review)를 거친 연구 및 높은 보증 개발에 기초한 Cardano의 탄탄한 기반에 탈중앙화 애플리케이션(DApps)을 구축할 수 있는 기능을 추가합니다.

Goguen에 대한 작업은 Shelley 작업과 병렬적으로 진행되고 있으며, 이가 완료되면 기술적 배경지식을 갖춘 사용자와 갖추지 못한 사용자 모두 동일하게 Cardano 네트워크에서 기능적 스마트 컨트랙트를 생성하고 실행할 수 있게 됩니다. Goguen 시대의 목표 중 하나는 Plutus의 생성이었습니다. Plutus는 기능 프로그래밍 언어인 Haskell을 사용하는 특수 용도 스마트 컨트랙트 개발 언어이자 실행 플랫폼입니다. 지금 바로 테스트가 가능한 Plutus는 기능 프로그래밍부터 스마트 컨트랙트 생성에 걸친 다양한 이점을 제공합니다. 또한 단일 코드베이스가 온체인 요소와 오프체인 요소 모두를 지원하는 것을 허용하여 기존의 스마트 컨트랙트 구현에 비해 개발 경험의 일관성과 유용성을 개선합니다.

Goguen 시대는 또한 Marlowe를 통해 Cardano를 더욱 많은 사람이 접근할 수 있도록 하는 작업을 포함합니다. 이를 통해 기술적 배경지식이 없는 재무 전문가와 비즈니스 전문가도 스마트 컨트랙트를 생성할 수 있게 됩니다. Marlowe는 Plutus를 기반으로 하는 금융 계약을 위한 높은 수준의 도메인 특정 언어(DSL)입니다. Marlowe는 Meadow와 함께 제공됩니다. Meadow란 프로그래머가 아닌 일반인도 금융 스마트 컨트랙트를 구축하는 데 사용할 수 있는 간편한 애플리케이션 구축 플랫폼입니다. Marlowe와 Meadow를 함께 활용하면 금융 애플리케이션을 위한 스마트 컨트랙트 생성 절차를 간소화하여 프로그래밍 능력을 갖추지 못한 주제전문가도 직접 기여할 수 있게 됩니다. Plutus와 Marlowe의 결합을 통해 현실 세계에서 대규모 구현을 지원할 수 있는 검증된 기능을 갖춘 새로운 차원의 엔터프라이즈급 스마트 컨트랙트이 가능하게 될 것입니다.

Goguen 시대에는 스마트 컨트랙트의 형태로 기능을 추가하는 것과 더불어 Cardano가 제공하는 핵심 요소의 개선 사항도 확인할 수 있을 것입니다. 가장 중요한 점은 복수 통화 원장의 추가로 Cardano의 유용성이 더욱 확대되어 사용자가 자체 지원 토큰을 새로 생성할 수 있다는 것입니다. 이를 통해 다양한 유형의 디지털/물리적 자산의 토큰화를 지원할 뿐만 아니라 Cardano에서의 새로운 암호화폐 생성을 지원하는 대체가능형/대체불가형 토큰을 생성할 수 있게 됩니다. 또 다른 이점으로는 다수의 암호화폐를 포함하는 스마트 컨트랙트과 DApps의 통합이 더욱 용이해질 것이라는 점입니다.

Goguen 시대는 Cardano 기능의 변화에 있어 큰 방점을 찍는 시대이며, 이러한 변화는 곧 우리가 엔터프라이즈급 미션크리티컬 탈중앙화 스마트 컨트랙트 애플리케이션의 개발로 나아갈 수 있는 가능성을 열어줄 것입니다. 또한, 앞으로 이어질 Basho 시대와 Voltaire 시대에는 더욱 멋진 요소들을 선보일 예정입니다.

Goguen 작업 범위


PLUTUS

Plutus는 기능 프로그래밍 언어인 Haskell을 활용하는 특수 용도 개발/실행 플랫폼입니다. Cardano 상에서 스마트 컨트랙트 생성을 가능하게 하도록 설계된 Plutus는 적은 모호성 및 테스트 용이성과 같은 기능 프로그래밍의 내재적인 이점을 스마트 컨트랙트에 제공합니다. Goguen 시대 동안 Plutus는 엔터프라이즈급 비즈니스/금융 시나리오를 모델링할 수 있는 능력을 갖춘 스마트 컨트랙트를 위한 환경을 제공할 것입니다. 그뿐만 아니라 Plutus와 Haskell은 온체인, 오프체인 모두에서 동일한 코드베이스를 사용할 수 있도록 합니다. 이는 다른 스마트 컨트랙트 구현에서는 드물지 않게 개발자가 2개 이상의 다른 언어를 사용해야 하는 부분으로, 효율성을 저해하고 높은 대가를 치러야 할 실수가 발생할 가능성을 높이곤 했습니다.

Plutus에 이뤄지는 모든 작업은 Plutus GitHub 저장소에서 확인할 수 있습니다. 또한 모든 사용자는 Plutus Playground를 활용하여 Plutus 상에서 자신만의 스마트 컨트랙트를 생성해 볼 수 있습니다.



PLUTUS CORE

높은 수준의 개발자용 언어인 Plutus와 달리 Plutus Core는 초보자용 스크립트 언어로서 Cardano의 세틀먼트 레이어와 연산 수행 레이어 모두에서 실행되며, 스크립트와 블록체인 사이에 이루어지는 상호 작용을 제어합니다. Plutus에서 작성된 스마트 컨트랙트의 모든 온체인 기능은 Plutus Core로 컴파일되며, 이때 간단함과 간결성을 유지하면서 기능 프로그래밍의 모든 이점을 그대로 가져오게 됩니다. Plutus Core가 세틀먼트 레이어에 구현되어야 하는 경우 이를 가능한 가장 단순한 방법으로 수행함으로써 잠재적인 공격 경로를 최소화하여 보안을 강화하게 됩니다.



MARLOWE

Marlowe는 도메인 특정 언어(DSL)로서 금융 스마트 컨트랙트 생성에 사용됩니다. Marlowe는 비즈니스 엔지니어, 주제전문가, 금융분석가와 같이 기술적 배경지식이 부족한 사람들이 활용할 수 있도록 설계되었습니다. 프로그래밍 경험이 전무한 일반인도 Marlowe를 사용하면 현실 세계의 데이터와 상호 작용하는 실행 가능한 스마트 컨트랙트를 생성할 수 있으며, 이러한 스마트 컨트랙트를 내장 Cardano 에뮬레이터 상에서 활용하고 최종적으로 Cardano 네트워크 자체에서 활용할 수 있게 됩니다. Marlowe는 높은 수준의 언어이지만 엄연히 Plutus 및 Haskell 기반으로 만들어진 언어이며, 사용편이성을 저해하지 않으면서 기능 프로그래밍이 제공하는 모든 보장의 이점을 계속해서 제공합니다.

Marlowe에 이뤄지는 모든 작업은 Marlowe GitHub 저장소에서 확인할 수 있습니다. 또한 모든 사용자는 Meadow 에뮬레이터의 간단한 웹기반 인터페이스를 활용하여 자신만의 금융 스마트 컨트랙트를 생성해 볼 수 있습니다.



PLUTUSFEST

PlutusFest는 2018년 12월 에든버러 대학교에서 개최된 행사로서 Plutus 프로그래밍 언어와 Marlowe 프로그래밍 언어를 발표하는 자리였습니다. 관심있는 일반인과 학계 인사가 모인 본 행사는 이틀동안 진행되었으며, IOHK 엔지니어가 준비한 토론과 발표로 이루어졌습니다. 행사 대부분 내용은 녹화되었으며 IOHK 유튜브 채널에서 시청하실 수 있습니다. ).



UDEMY에서 만나는 PLUTUS 및 MARLOWE 강좌

PlutusMarlowe 프로그래밍 언어에 대해 다루는 2개의 무료 MOOC 강좌를 Udemy에서 만나보십시오. IOHK 사내교육팀이 직접 제작하고 관리하는 본 입문용 강좌는 Plutus와 Marlowe를 사용하여 스마트 컨트랙트으로 여러 실험을 수행하는 방법을 배우는 데 관심이 있는 모든 분을 대상으로 합니다.



복수 통화 원장

복수 통화 원장 모델을 Cardano에 도입함으로써 네트워크가 ERC20과 유사한 방식으로 추가적인 암호화폐를 지원할 수 있게 됩니다. 이때 세틀먼트 레이어의 자체 지원 기능 덕분에 비용은 저렴해지고 보안은 강화되면서도 복잡한 스크립트 시스템이 필요하지 않게 됩니다. Cardano 네트워크에서 사용자가 자신만의 대체가능형 토큰을 생성할 수 있게 될 뿐만 아니라 복수 통화 원장을 사용하면 대체불가형 토큰 생성과 함께 토큰화를 진행할 수 있으며, 여러 암호화폐가 포함된 스마트 컨트랙트과 쉽게 통합할 수 있게 됩니다.



KEVM

KEVM은 공식적으로 검증된 고품질 스마트 컨트랙트 가상머신으로 이더리움 가상머신(EVM)과 호환됩니다. K 프레임워크에서 정식으로 지정되는 KEVM은 EVM의 구성 및 전환 규칙과 같은 요소에 공식적인 시맨틱(semantic)을 사용하므로 스마트 컨트랙트를 위한 훨씬 안전한 가상머신이 됩니다. IOHK는 현재 다른 우선순위에 초점을 맞추기 위해 K 프레임워크 프로젝트 내 협업을 일시 중단한 상태이지만, 여전히 이 비전에 열의를 갖고 있으며 향후 다시 참여할 가능성도 열려 있습니다.



IELE

IELE는 KEVM 관련 연구를 기반으로 한 가상머신입니다. 저레벨 플랫폼인 IELE는 여러 언어 간 일관된 가스(gas) 모델을 통해 고급 프로그래밍 언어의 스마트 컨트랙트를 해석하고 실행할 수 있도록 합니다. 이더리움 전용 언어인 솔리디티(Solidity) 코드의 컴파일 대상으로써 또는 Cardano에 직접 통합되어 스마트 컨트랙트 상호운용성을 높일 수 있으며, 이더리움 통합을 실현하기 위한 고신뢰 경로를 제공할 수도 있습니다. 이미 본 프로젝트에 상당한 기여를 한 바 있는 IOHK는 현재 다른 우선순위에 집중하기 위해 IELE 관련 협업을 일시 중단한 상태이나, 향후 프로젝트 재참여와 관련해서는 여전히 적극적인 열정을 보이고 있습니다.



Plutus는 기능 프로그래밍 언어인 Haskell을 활용하는 특수 용도 개발/실행 플랫폼입니다. Cardano 상에서 스마트 컨트랙트 생성을 가능하게 하도록 설계된 Plutus는 적은 모호성 및 테스트 용이성과 같은 기능 프로그래밍의 내재적인 이점을 스마트 컨트랙트에 제공합니다. Goguen 시대 동안 Plutus는 엔터프라이즈급 비즈니스/금융 시나리오를 모델링할 수 있는 능력을 갖춘 스마트 컨트랙트를 위한 환경을 제공할 것입니다. 그뿐만 아니라 Plutus와 Haskell은 온체인, 오프체인 모두에서 동일한 코드베이스를 사용할 수 있도록 합니다. 이는 다른 스마트 컨트랙트 구현에서는 드물지 않게 개발자가 2개 이상의 다른 언어를 사용해야 하는 부분으로, 효율성을 저해하고 높은 대가를 치러야 할 실수가 발생할 가능성을 높이곤 했습니다.

Plutus에 이뤄지는 모든 작업은 Plutus GitHub 저장소에서 확인할 수 있습니다. 또한 모든 사용자는 Plutus Playground를 활용하여 Plutus 상에서 자신만의 스마트 컨트랙트를 생성해 볼 수 있습니다.


높은 수준의 개발자용 언어인 Plutus와 달리 Plutus Core는 초보자용 스크립트 언어로서 Cardano의 세틀먼트 레이어와 연산 수행 레이어 모두에서 실행되며, 스크립트와 블록체인 사이에 이루어지는 상호 작용을 제어합니다. Plutus에서 작성된 스마트 컨트랙트의 모든 온체인 기능은 Plutus Core로 컴파일되며, 이때 간단함과 간결성을 유지하면서 기능 프로그래밍의 모든 이점을 그대로 가져오게 됩니다. Plutus Core가 세틀먼트 레이어에 구현되어야 하는 경우 이를 가능한 가장 단순한 방법으로 수행함으로써 잠재적인 공격 경로를 최소화하여 보안을 강화하게 됩니다.


Marlowe는 도메인 특정 언어(DSL)로서 금융 스마트 컨트랙트 생성에 사용됩니다. Marlowe는 비즈니스 엔지니어, 주제전문가, 금융분석가와 같이 기술적 배경지식이 부족한 사람들이 활용할 수 있도록 설계되었습니다. 프로그래밍 경험이 전무한 일반인도 Marlowe를 사용하면 현실 세계의 데이터와 상호 작용하는 실행 가능한 스마트 컨트랙트를 생성할 수 있으며, 이러한 스마트 컨트랙트를 내장 Cardano 에뮬레이터 상에서 활용하고 최종적으로 Cardano 네트워크 자체에서 활용할 수 있게 됩니다. Marlowe는 높은 수준의 언어이지만 엄연히 Plutus 및 Haskell 기반으로 만들어진 언어이며, 사용편이성을 저해하지 않으면서 기능 프로그래밍이 제공하는 모든 보장의 이점을 계속해서 제공합니다.

Marlowe에 이뤄지는 모든 작업은 Marlowe GitHub 저장소에서 확인할 수 있습니다. 또한 모든 사용자는 Meadow 에뮬레이터의 간단한 웹기반 인터페이스를 활용하여 자신만의 금융 스마트 컨트랙트를 생성해 볼 수 있습니다.


PlutusFest는 2018년 12월 에든버러 대학교에서 개최된 행사로서 Plutus 프로그래밍 언어와 Marlowe 프로그래밍 언어를 발표하는 자리였습니다. 관심있는 일반인과 학계 인사가 모인 본 행사는 이틀동안 진행되었으며, IOHK 엔지니어가 준비한 토론과 발표로 이루어졌습니다. 행사 대부분 내용은 녹화되었으며 IOHK 유튜브 채널에서 시청하실 수 있습니다. ).


PlutusMarlowe 프로그래밍 언어에 대해 다루는 2개의 무료 MOOC 강좌를 Udemy에서 만나보십시오. IOHK 사내교육팀이 직접 제작하고 관리하는 본 입문용 강좌는 Plutus와 Marlowe를 사용하여 스마트 컨트랙트으로 여러 실험을 수행하는 방법을 배우는 데 관심이 있는 모든 분을 대상으로 합니다.


복수 통화 원장 모델을 Cardano에 도입함으로써 네트워크가 ERC20과 유사한 방식으로 추가적인 암호화폐를 지원할 수 있게 됩니다. 이때 세틀먼트 레이어의 자체 지원 기능 덕분에 비용은 저렴해지고 보안은 강화되면서도 복잡한 스크립트 시스템이 필요하지 않게 됩니다. Cardano 네트워크에서 사용자가 자신만의 대체가능형 토큰을 생성할 수 있게 될 뿐만 아니라 복수 통화 원장을 사용하면 대체불가형 토큰 생성과 함께 토큰화를 진행할 수 있으며, 여러 암호화폐가 포함된 스마트 컨트랙트과 쉽게 통합할 수 있게 됩니다.


KEVM은 공식적으로 검증된 고품질 스마트 컨트랙트 가상머신으로 이더리움 가상머신(EVM)과 호환됩니다. K 프레임워크에서 정식으로 지정되는 KEVM은 EVM의 구성 및 전환 규칙과 같은 요소에 공식적인 시맨틱(semantic)을 사용하므로 스마트 컨트랙트를 위한 훨씬 안전한 가상머신이 됩니다. IOHK는 현재 다른 우선순위에 초점을 맞추기 위해 K 프레임워크 프로젝트 내 협업을 일시 중단한 상태이지만, 여전히 이 비전에 열의를 갖고 있으며 향후 다시 참여할 가능성도 열려 있습니다.


IELE는 KEVM 관련 연구를 기반으로 한 가상머신입니다. 저레벨 플랫폼인 IELE는 여러 언어 간 일관된 가스(gas) 모델을 통해 고급 프로그래밍 언어의 스마트 컨트랙트를 해석하고 실행할 수 있도록 합니다. 이더리움 전용 언어인 솔리디티(Solidity) 코드의 컴파일 대상으로써 또는 Cardano에 직접 통합되어 스마트 컨트랙트 상호운용성을 높일 수 있으며, 이더리움 통합을 실현하기 위한 고신뢰 경로를 제공할 수도 있습니다. 이미 본 프로젝트에 상당한 기여를 한 바 있는 IOHK는 현재 다른 우선순위에 집중하기 위해 IELE 관련 협업을 일시 중단한 상태이나, 향후 프로젝트 재참여와 관련해서는 여전히 적극적인 열정을 보이고 있습니다.


Medusa

github.com/input-output-hk/plutus

View historical and real-time GitHub commits


탐색