EMURGO 블로그 - Cardano 스마트 계약의 탁월한 안전성

과학적 접근법과 동료 평가를 활용한 최초의 3세대 블록체인인 Cardano는 향후 Goguen의 출시와 함께 메인 Cardano 블록체인에 스마트 계약을 도입할 예정입니다. 특히 개발자는 Plutus를 사용하여 Cardano 스마트 계약을 작성할 수 있습니다.

Plutus란?

Plutus는 스마트 계약을 개발하고 배치하는 프로그래밍 언어로서, Cardano의 비전과 부합하는 주요 대상인 개발자, 기업체, 학계를 고려하여 설계되었습니다. 현재 누구든지 Plutus Playground에서 개발한 테스트 계약을 배치할 수 있습니다. Plutus Playground는 블록체인상에서 완전한 개발 환경을 유지하지 않고도 스마트 계약을 테스트할 수 있는 가벼운 웹기반 환경입니다. Plutus 플랫폼은 개발자에게 최고의 스마트 계약 경험을 제공합니다.

왜 그럴까요?

Plutus는 명확하고 간결하며 편리하도록 설계되었습니다. 그러나 가장 중요한 것은 Plutus는 스마트 계약 개발에 사용하는 기존의 다른 대안보다 훨씬 안전하다는 것입니다. 무엇이 Plutus를 그토록 보안성을 갖춘 안전한 프로그래밍 언어 플랫폼으로 만들까요? 그리고 왜 이게 중요할까요?

안전이 중요한 이유

안전이 중요한 이유는 Cardano 스마트 계약 개발자가 원하는 것은 부작용 없이 의도하는 대로 자신의 프로그램이 작동하도록 보장하는 것이기 때문입니다. 이는 오류 발생 위험을 최소화하는 것을 의미합니다. 오류는 매일 사용되는 많은 프로그래밍 언어에서 흔하게 발생합니다. Cardano는 이러한 오류를 최소화하여 스마트 계약을 통한 가치 이전을 높은 수준의 보증으로 달성하는 것을 목표로 합니다. 이는 자금 손실, 예기치 않은 문제 및 예상치 못한 복잡한 문제의 가능성을 줄입니다. 자주 사용하는 메시지 앱 또는 소셜미디어 웹사이트에서 오류가 발생하면 단순히 메시지가 전송되지 않거나 사진이 게시되지 않는 수준에 그치지만, 귀중한 자산이 담겨있는 블록체인 환경에서 발생하는 오류는 그 대가가 더 크므로 더욱 높은 수준의 안전이 필요합니다. 실제로, EMURGO는 dLab/EMURGO 액셀러레이터를 통해 수신자의 월렛 주소를 확인하는 것과 관련된 모든 우려를 제거함으로써 ADA와 같은 암호화폐 송금을 쉽고 걱정 없이 사용자가 수행할 수 있게 해주는 토큰 없는 송장 기반 프로토콜인 Syre를 지원해오고 있습니다.

안전한 스마트 계약: 기능적 접근

Plutus는 완전한 기능 프로그래밍 언어인 Haskell에 임베드되어 있습니다. 그 이유는 기능 프로그래밍 언어가 현재 블록체인 산업에서 사용할 수 있는 어떠한 대안보다도 안전하고 검증 가능한 스마트 계약에 훨씬 더 적합하다고 여겨지기 때문입니다. 이때 한 가지 중요한 요인은 Haskell이 제공하는 강력한 자료형 체계(type system)입니다. 자료형(type)은 정확성을 강화하는 제약 조건을 부여하도록 설계되었습니다. Plutus에서 사용하는 자료형 체계는 다른 프로그래밍 언어에 있어 골칫덩이인 많은 오류를 제거합니다. Plutus의 자료형 체계는 스마트 계약의 모든 부분이 논리적으로 일관되고 증명 가능한 올바른 방식으로 서로 맞아떨어지는지 확인합니다.

자료형 체계는 화가가 자신의 작품을 세세하게 스케치하고 캔버스에 붓을 대기 전에 어떤 색상이 어디로 갈지를 결정하는 과정에 비유할 수 있습니다. 화가는 작업을 시작하기 전에 시간을 들여 모든 부분들이 서로 어울리고 자연스럽게 이어지도록 구상합니다. Plutus에서 이는 스마트 계약이 사전에 면밀하게 설계되고 고려된다는 것을 의미합니다.

이를 위해서는 보다 선행적인 작업이 필요하지만, Cardano에서 스마트 계약을 개발하면 나중에 보상을 받게 됩니다. 따라서 스마트 계약은 더 안전하고 향후에도 유지하기가 더 쉽습니다. 자료형 체계인 Plutus를 사용하면 오류를 제거하는 데 도움이 됩니다. 자료형 체계는 스마트 계약이 실행되기 전에 이러한 오류를 잡아내기 때문입니다. 이는 프로그램을 실행할 때만 오류가 발생하는 다른 스마트 계약 프로그래밍 언어와는 대조되는 것입니다. 잠재적으로 오류가 발생하기 쉬운 스마트 계약을 실행하는 행위에는 큰 대가가 따르기 때문에, 프로그램이 올바르게 작동하도록 종종 제3자가 점검을 수행하기도 합니다. 그러나 프로그래밍 언어 자체에 내장된 강건성을 갖춘 Plutus를 사용하면 개발을 더욱 효율적이고 안전하게 수행할 수 있습니다.

안전한 스마트 계약: 온체인 코드 및 오프체인 코드

Plutus에서 온체인 코드와 오프체인 코드는 모두 동일한 프로그래밍 언어를 기반으로 합니다. 스마트 계약 개발자는 단일 코드베이스를 사용할 수 있습니다. 이때 Plutus는 자동으로 이 코드베이스를 온체인과 오프체인으로 나누어 배치를 위해 패키징하게 됩니다. 온체인 코드란 블록체인 자체에서 실행되는 코드입니다. 이와 달리 오프체인 코드란 웹브라우저와 같이 블록체인 외부에서 실행되는 코드를 말합니다. Plutus의 이 기능은 오늘날 스마트 계약 개발에서 사용되는 기존의 대안들보다 훨씬 안전합니다. 블록체인 업계에서는 스마트 계약의 온체인 코드를 하나의 언어로 작성하고 오프체인 코드를 다른 언어로 작성하는 것이 일반적입니다. 이럴 경우, 개발 시간이 두 배 이상 늘어날 뿐만 아니라 스마트 계약에 대한 막대한 보안 위험이 발생합니다.

이것은 여러분이 주문한 메뉴를 내놓기 위해 요리사와 웨이터가 각각 다른 역할을 수행하는 것에 비유할 수 있습니다. 음식을 준비하는 요리사와 음식을 내놓는 웨이터는 주문한 메뉴가 올바르게 전달되도록 서로 소통해야 합니다. Plutus는 온체인 코드와 오프체인 코드를 모두 생성함으로써 개발자에게 커다란 안전상의 이점을 제공합니다. 말하자면, 주문한 메뉴를 준비하고 내놓는 작업을 모두 요리사가 담당하는 셈입니다.

결론

Plutus를 사용하면 개발자는 자신이 개발한 스마트 계약이 정확하게 실행되리라고 확신할 수 있습니다. Cardano는 최고 수준의 현대적 언어 연구를 기반으로 안전한 풀스택 프로그래밍 환경을 보장합니다. 이러한 풀스택 프로그래밍 환경은 선도적인 기능 프로그래밍 언어인 Haskell과 이에 수반하는 모든 이점을 기반으로 구축됩니다. Cardano 스마트 계약은 블록체인 및 암호화폐 업계에서 최고의 안전성을 보장합니다.