스마트컨트랙트는 무엇인가요?
스마트컨트랙트가 어떤건지 알기 쉽게 설명해주실분 계신가요~?
스마트 컨트랙트는 Nick Szabo가 1994년 최초 제안한 개념입니다. 기존 계약서(Contract)는 서면으로 되어있어 계약 조건을 이행하려면 실제 사람이 계약서 대로 수행을 해야 하지만 디지털 명령어로 계약을 작성하면 조건에 따라 계약 내용을 자동으로 실행할 수 있다고 주장하였습니다.
디지털로 된 계약서는 조건에 따른 계약 결과가 명확하고, 계약 내용을 즉각 이행할 수 있습니다.각자의 자산이 연결된 디지털로 양자 합의를 하고 계약서를 작성하고 실행하기로 한다면 계약을 이행하는데 복잡한 프로세스를 엄청나게 간소화 될 것 입니다. 또한 다양한 그러나 디지털로 된 자료들은 쉽게 복사되고 조작이 쉬워 1994년에 제안한 스마트 컨트랙트는 개념으로만 존재하고 구체적인 서비스에 이용될 수 없었습니다.
블록체인(Blockchain)과 스마트 컨트랙트 (Smart Contract)
이전 포스팅 들에서 설명하였듯이 블록체인은 디지털 데이터를 신뢰할 수 있게 만들어 주는 기술입니다. 다수의 노드가 같은 데이터를 공유하고 검증하는 방식을 통해 디지털상에 신뢰관계를 만들었죠.
스마트 컨트랙트는 이러한 블록체인과 함께 급부상하게 됐습니다. 스마트 컨트랙트를 만들 수 있는 환경이 20여 년이 지나 구체화 된 것이죠. 최초의 블록체인 기반 스마트 컨트랙트는 비트코인 스크립트입니다. 비트코인 트랜잭션에 원시 언어인 OPCODE로 스크립트를 작성해서 보내면 조건에 따라 자동으로 거래를 수행합니다. 스크립트가 정상이면(기존에 보유한 비트코인의 잔액이 정확하고 거래를 보낸 사람의 서명이 정확한지 보는 것이 가장 기본적인 스크립트) 거래를 정상으로 본다는 일종의 계약(Contract) 개념이 있으므로 Contract Code로 불리기도 합니다.
하지만 비트코인 스크립트는 반복문을 사용할 수 없고, 비트코인 잔고 외의 다른 정보를 관리 할 수 없는 한계가 있습니다. 이는 블록체인의 특이한 구조 때문인데 비트코인 스크립트에서 반복문을 허용할 경우 만약 스크립트 조건 때문에 무한 루프가 발생할 경우 네트워크 전체가 멈출 수 있습니다. 사용자는 무한루프를 통해 쉽게 DoS(Denial of Service) 공격을 할 수 있습니다.
이더리움(Ethereum)은 이러한 비트코인 스크립팅 시스템의 한계를 극복하고자 나온 스마트 컨트랙트 특화 블록체인 플랫폼입니다. 사실 스마트 컨트랙트란 용어가 본격적으로 사용하기 시작한 것은 이더리움 이후라고 보면 됩니다. 이더리움은 비트코인 스크립팅 시스템의 한계인 다양한 상태 저장과 반복문을 허용한 스마트 컨트랙트를 만들었습니다. 여기에 각 라인을 실행할 때마다 수수료를 발생시키고 네트워크상에 수수료의 한계를 설정하여 무한루프를 막았습니다. 무한히 반복되는 조건을 만들어 스마트 컨트랙트를 실행시키면 돌다가 중간에 수수료 한계점에 도달하면 중단됩니다.
이는 기발하지만 뜻밖에 간단한 논리에 의해 구현되게 되었는데 블록체인을 통해 함수 내용과 함수의 입력을 공유하면서 무결성을 보장한다면, 함수의 결과는 별도로 공유하지 않더라도 그 무결성이 보장된다는 것이죠. 이더리움은 함수를 컴파일된 코드 형태로 거래에 포함하여 블록체인을 통해 동기화합니다. 이때 거래에 포함된 정보를 함수의 입력으로 하여 코드로 표현된 함수를 실행한 후 그 결과를 별도의 상태로 보관하는 방식으로 스마트 컨트랙트를 구현하게 되었습니다.
그리하여 독자 코인인 이더 외에 다른 디지털 객체의 상태를 저장하는 방식을 허용하여 다양한 재화를 이더리움 네트워크 위에 만들고 거래할 수 있게 되었습니다. 이더리움 상에서의 가장 유명한 스마트 컨트랙트의 예는 DAO(Decentralized Autonomous Organization)라고 불리는 탈중앙화된 자율 조직입니다. 이는 회사의 의결권을 토큰(DAO Token)으로 행사할 수 있도록 크라우드 펀딩을 통해 토큰을 이더로 구입할 수 있도록 판매하였고 그 과정에서 모인 약 2000억원 가량의 이더를 어떻게 사용할지 토큰을 기반으로 투표할 수 있도록 한 스마트 컨트랙트로서 특정 운영주체가 없이 참여자의 투표로 운영되도록 했습니다.
출처 :
스마트 계약(smart contract)
블록체인 기술을 기반으로 해 프로그래밍된 계약 조건을 만족시키면 자동으로 계약이 실행되는 프로그램이다. 금융 거래뿐만 아니라 부동산 계약 등 다양한 계약에 활용할 수 있다. 비탈릭 부테린(Vitalik Buterin)이 비트코인을 포크해 이더리움이라는 새로운 암호화폐를 만든 후 스마트 계약 기능을 구현했다. 개발자가 계약의 조건, 내용을 코딩할 수 있어 어떤 종류의 계약에도 활용할 수 있다. 예를 들어 5월 5일 비가 오면 10이더리움을 지급한다는 계약을 블록체인에 기록하면, 자동으로 실행이 되는 원리이다.
통상 블록체인 기술을 기반으로 계약의 자동실행이 보장된 컴퓨터 프로그램으로 정의합니다.
부동산을 구매한다고 하면, 기존 계약에서는 계약서(청약과 승낙의 의사표시)에서 정한 대금을 지급한 후
부동산 등기서류를 넘겨받아 등기를 하여야 합니다. 이 과정에서는 중개인이 있고, 등기서류를 처리하는 법무사등이 존재합니다. 만약, 중개인이나 법무사 등이 잘못처리하거나 대금을 지급하였는데도 등기서류를 넘기지 않으면 소송을 하여 집행 등을 하여야 합니다.
그러나, 스마트계약에서는 코드의 입력과 조건의 성취만 이루어지면 거래가 완료되고 자산이 자동으로 이전되는 시스템입니다, 부동산 중개인이나 법무사 등 중간 관리자가 없고, 중개인이나 법무사 등 중간 관리자의 사기나 위조 등의 위험이 없습니다.
간단하게만 언급하였으나, 스마트계약에서도 코드를 잘못입력하는 경우 어떻게 처리할 것인지 등이 법률상 문제로 남아 있습니다.