자유게시판
커뮤니티
비트코인용 스마트계약 언어 ‘미니스크립트’ 공개

출처=코인데스크
비트코인 코어 개발자 가운데 한 명인 피터 바일라(Pieter Wuille)가 비트코인에 스마트계약을 접목할 수 있는 새로운 코딩 언어 미니스크립트(Miniscript)를 공개했다.
바일라는 19일 비트코인 개발자들에게 보낸 이메일에서 미니스크립트는 프로그래머들이 비트코인에 더 쉽게 스마트계약을 접목할 수 있게 하는 언어라고 설명했다. 여기서 말하는 스마트계약이란 미리 정한 요건을 충족하면 비트코인이 거래되고 사용될 수 있도록 하는 것이다.
바일라는 앤드루 포엘스트라, 산켓 산잘카르와 함께 1년 정도 이 코드를 만들었다고 말했다. 그러면서 친분이 있는 개발자들에게 몇 차례 코드를 보여주고 의견을 구한 적이 있지만, 이렇게 이메일 주소록에 든 개발자들에게 한꺼번에 메일을 보내 코드를 공개하는 건 처음이라고 밝혔다.
“이제는 이 코드가 좀 더 많은 관심을 받고 다양한 피드백을 받을 때가 됐다고 판단했다.”
‘스크립트’란 비트코인의 스마트계약 언어로 비트코인을 전송하는 데 필요한 특정 요건을 이용자들이 미리 정해두는 것이다. 예를 들면 해당 비트코인이 얼마 동안은 묶여있다가 어느 시점이 지나면 사용할 수 있다고 미리 입력해두거나 두 명이 거래를 승인해야만 비트코인을 전송할 수 있다는 다중 서명(multi-sig)을 조건으로 정해두는 것이다.
이런 식으로 정해놓은 요건을 만족해야만 거래할 수 있도록 돈을 프로그래밍하는 건 디지털 화폐가 등장하기 전에는 불가능했다. 비트코인이 등장하기 전을 생각해보면 은행이나 중간에서 거래를 관장하는 중개인을 거치지 않고 돈을 프로그래밍하는 것은 불가능했다. 프로그래밍하더라도 이를 정해진 대로 이행할지 신뢰할 수 없었기 때문이다.
미니스크립트는 프로그래밍 언어를 기반으로 한다. 돈을 프로그래밍할 수 있게 되면 개선할 수 있는 일이 많다. 바일라는 예를 들어 A는 언제든 비트코인을 받을 수 있게 하고, B는 미리 정한 날짜가 지난 뒤에만 비트코인을 받을 수 있게 프로그래밍할 수 있다고 설명했다.
비트코인 스크립트를 옮기면 다음과 같다.
미니스크립트에서는 아래와 같다.
or_d(c:pk(A),and_v(vc:pk_h(B),older(144)))
미니스크립트는 비트코인 스크립트 위에 쓸 수 있는 언어다. 즉 비트코인 고유 언어를 토대로 자유롭게 편집할 수 있다.
비트코인 개발자 커뮤니티는 미니스크립트를 격찬하고 있다. 블록스트림의 라이트닝 네트워크 엔지니어 러스티 러셀은 이런 트윗을 남겼다.
“사람들이 ‘이거 나오기 전에는 도대체 어떻게 살았지?’ 하는 정도로 엄청난 기술이다. 쓸데없이 화려하게 치장한 것 하나도 없이 프로그래밍 언어에 핵심만 훌륭하게 담아냈다.”
비트코인 스마트계약의 활용사례는 무궁무진할 것으로 기대된다. 에릭 롬브로소는 디지털 지갑의 복잡한 스크립트를 훨씬 쉽게 시행할 수 있게 해줄 거라고 말했다. 비트코인을 홍보하는 일을 하는 비트코인 지지자 지미 송은 라이트닝네트워크를 보완하는 데도 스마트계약이 쓰일 수 있다고 말했다.
지미 송은 블록체인 언어의 지평을 넓힐 수 있는 계기로 삼을 수 있다고 말했다. 그러면서 비트코인의 스마트계약 언어와 이더리움의 스마트계약 언어인 솔리디티(Solidity)의 차이를 설명했다. 즉 솔리티티는 이더리움 플랫폼에서 어떤 일에든 스마트계약을 적용해 새로 쓸 수 있는 언어지만, 미니스크립트는 반대로 거래 요건을 명확하게 규정함으로써 다른 가능성을 줄여준다. 송은 비트코인의 스마트계약은 거래 요건을 단순화하며, 잠재적인 공격 지점을 없애주기 때문에 이더리움 스마트계약보다 더 낫다고 주장했다.
바일라가 공개한 미니스크립트 언어는 C++와 러스트(Rust) 두 가지 프로그래밍 언어로 쓰였다. 바일라는 미니스크립트 관련 개발과 테스트를 계속하고 있다고 밝혔다.
“일단 지금까지 대규모 무작위 실험을 통해 새로운 스마트계약 언어가 현재 비트코인의 합의 메커니즘이나 기본적인 규칙을 해치지 않는다는 확신을 얻었다.”
[출처]코인데스크코리아 https://www.coindeskkorea.com/54597/
다음글 | |
이전글 |
