brunch

You can make anything
by writing

C.S.Lewis

by delight Aug 04. 2018

리티 프로그래밍 언어, 이더리움 솔리디티 한계 극복할까

[미디어앤톡]크립트 저널리스트 라첼 울프슨의 글을 읽고

학습 차원에서 틈틈히 해외 블록체인 전문가들이 블로그나 책에서 쓴 글을 정리하고 있습니다. 이번 포스팅도 그중 하나고요, 제대로 번역되지 않은 부분은 확인주시면 반영토록 하겠습니다.


해커눈에 스마트 컨트랙트 개발용 프로그래밍 언어인 리티(Lity)에 대한 글이 실렸다. 크립토 저널리스트인 라이첼 울프슨의 글이다. 글을 보니 리티는 현재 이더리움 스마트 컨트랙트 개발에 쓰이는 솔리디티 프로그래밍 언어와도 호환되면서 안정성과 보안은 강화됐다는데 초점이 맞춰져 있다.  요즘 스마트 컨트랙트의 한계를 극복하기 위한 다양한 시도가 이뤄지고 있는데, 리티도 그중 하나가 될 수 있을듯 하여 울프슨의 글을 공유해본다.


이더리움 네트워크는 현재 1700개 이상의 디앱으로 이뤄져 있다. 이 숫자는 향후 몇년간 계속 증가할 것으로 전망된다. 디앱은 중요한 일들을 처리하기 위해 스마트 컨트랙트에 의존한다. 하지만 스마트 컨트랙트  개발은 에러, 버그, 다양한 비극적인 실수를 포함하고 있다. 지금까지 스마트 컨트랙트 해킹으로 10억달러 이상이 도단당했다 스마트 컨트랙트를를 개발하려면 프로그래머들은 솔리디티라고 하는 새로운 프로그래밍 언어를 배워야 한다.
스마트 컨트랙트는 이더리움에서 복잡한 운영을 촉진시키지만 스마트 컨트랙트 개발 중 간단한 실수가, 보안 침해 및 매우 높은 수수료를 포함해 재앙적인 결과로 이어질 수 있다. 가장 알려진 사례가 DAO(Decentralized Autonomous Organization)다. 패리티에 사용된 스마트 컨트랙트에서도 최근 버그가 발견됐고, 1억6900만달러 상당의 이더 손실로 이어졌다. 스마트 컨트랙트가 늘어나면서 솔리디티가 문제의 원인이라는 인식도 커졌다. 아쉽게도  지금은 스마트 컨트랙트 감사 및 최적화에 필요한 경험을 갖춘 개발자가 많이 부족한 상황이다. 
예를 들어  복잡한 특정 스마트 컨트랙트를 수행하는 동안 필요한 가스비는 천문학적일 수도 있다. 가스는 이더의 작은 단위로 스마트 컨트랙트의 복잡성과 네트워크 혼잡성에 의존한다. 스마트 컨트랙트가 실행되는 과정에서. 이더리움은 자동으로 느리고 복잡한 컨트랙트를 높은 가스비를 부과하는 것으로 응징한다. 많은 경우 사용 사례는 본질적으로 복잡하고 가스비는 실제 스마트 컨트랙트 적용에 해가 될 수 있다. 예를 들어 단일 비트코인 거래의 헤더를 검증하기 위해 이더리움 스마트 컨트랙트를 사용한다면, 이더리움 가스 3억7000만 이더리움 가스가 소요될 것이다. 1이더 이상의 가치다. 한거래를 검증하는데, 500달러 이상을 써야 한다는 얘기다.
솔리디티로 개발된 스마트 컨트랙트에서 보안도 문제다. 해커들은 스마트 컨트랙트에서 암호화폐를 훔칠 수 있는 버그를 찾아낸다. 여러 ERC20 토큰 스마트 컨트랙트가 해킹을 당하기 쉽기 때문에 높은 보안 경고가 발생하는 결과로 이어졌다.ERC20 기반 스마트 컨트랙트를 겨냥한 해킹의 많은 부분은 프로그래머들이 솔리디티 코드를 짜는 과정에서 범하는 실수 때문에 일어난다.
예를 들어보자. 뷰티 체인(BEC)은 중국에서 유명한 암호화폐다. 오케이이엑스에 지난 2월 23일 상장됐고, 첫날 거래에서 4000% 상승했다. 최대 시장 규모는 700억달러 수준에 달했다. 하지만 뷰티테인 가격은  점차 떨어져 4월2일 기준으로 20억달러 규모로 추락했다. 거래 가치가 거의 제로로 떨어졌을때 오케이이엑스는 BEC거래를 중지했다.

이것은 BEC의 ERC20 스마트 컨트랙트에 있는 버그 때문에 일일어난 일이었다.  BEC의 경우 개발자들은 배치 트랜스퍼()로 불리는 메소드를 컨트랙트에 추가했다. 이 메소드는 토큰 전송을 빠르게 한다.그러나 이 과정에서 개발자들은 치명적인 실수를 저질렀다.

라첼 울프슨은 솔리디티로 개발된 스마트 컨트랙트가 직면한 실제 세계의 문제를 풀기 위해서. 리티(Lity)로 불리는 프로그래밍 언어를 언급했다.  글에 따르면 리티는  전자상거래용 블록체인 기술인 사이버마일스 블록체인, 디앱, 다른 최적화된 블록체인에 걸쳐 스마트 컨트랙트를 개발할 수 있도록 하기 위해 제작됐다.


리티는 특히 솔리디티가 직면한 성능과 보안 이슈를 푸는 것을 목표로 하고 있다. 진화된 솔리디티 언어를 표방하고 있다. 기존 솔리디티 프로그램은 변화없이, 사이버마일스 버추얼 머신(CVM)에서 돌아간다는 얘기다.
리티가 제공하는 또 다른 이점은 솔디티디 보다 유연하면서도 강력하고 안전하다는 것이다. 예를 들어 리티는 새 언어 기능이 OTA(over the air) 방식으로 추가될 수 있다. 성능 측면에서 리티는 특정 컴퓨팅 업무에 높은 수준으로 최적화해 쓸 수 있다. 사이버마일스 버추얼 머신에서 libENI로 알려진 기능은 블록체인 노드에서 네이티브 코드로 실행된다.
예를 들어 이더리움 네트워크에서 프라이빗/퍼블릭 키 알고리즘은 통상 매우 느리고  매우 비싸다. 데이터 마켓플레이스 같은 애플리케이션의 많은 클래스들은 이더리움에선 불가능하다. 그러나 libENI로 이들 클래스 운영을 1만배 빠르게해, 가스비를 크게 낮출 수 있다.
리티가 제공하는 컴퓨팅 향상은 블록체인 간 자산 교환과 오프체인 데이터를 블록체인 거래안에 편입하는 것과 관련해서도 눈길을 끈다.
드디어 리티 컴파일러는  ERC20과 ERC721 컨트랙트 코드에서 알려진 버그와 규제 준수(컴플라이언스)도 체크한다. 우연하 토큰 전송을 막기 위해, ERC 20 계약에서 ERC223 표준도 지원해 지원하지 않는 지갑 주소로 토큰이 우연히 전송되는 것을 막아준다. 리티는 버추얼 머신 레벨에서 정수 오버플로, 계약 소유자를 없음으로 설정하는 것을 방지한다.
유감스럽게도 솔리디티는 스마트 컨트랙트에서 발생하는 에러에 일정 책임이 있다는 비판을 받고 있다. 스마트 컨트랙트의 미래를 확보하기 위해 리티오 같은 새 프로그래밍 언어가 개발되고 있다. 이더리움 재단은 적극적으로 혁신의 방법을 찾기 위해 스스로 노력하고 있다. 캐스퍼와 네이티브 컨트랙트를 향한 행보가 대표적이다.

[관련글1] Smart Contracts on Steroids: Solving the Problems Facing Ethereum’s Solidity https://hackernoon.com/smart-contracts-on-steroids-solving-the-problems-facing-ethereums-solidity-a1f71cc260ce


관련글2 스마트 컨트랙트를 둘러싼 불편한 진실 https://brunch.co.kr/@delight412/180


 

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari