스마트 컨트랙트는 이더리움 애플리케이션 계층의 기본 구성 요소입니다. 스마트 컨트랙트는 에 저장된 컴퓨터 프로그램으로, "만약 이러면 저렇게 한다(if this then that)"는 논리를 따르며, 한 번 생성되면 변경할 수 없는 코드에 정의된 규칙에 따라 실행되도록 보장됩니다.
닉 사보(Nick Szabo)가 "스마트 컨트랙트"라는 용어를 만들었습니다. 1994년에 그는 이 개념에 대한 소개 글 (opens in a new tab)을 썼고, 1996년에는 스마트 컨트랙트가 할 수 있는 일에 대한 탐구 글 (opens in a new tab)을 작성했습니다.
사보는 신뢰할 수 있는 중개자 없이도 자동화되고 프로세스를 통해 트랜잭션과 비즈니스 기능이 이루어지는 디지털 시장을 구상했습니다. 이더리움의 스마트 컨트랙트는 이러한 비전을 현실로 만들었습니다.
파인매틱스(Finematics)의 스마트 컨트랙트 설명을 시청해 보세요:
기존 컨트랙트에서의 신뢰
전통적인 컨트랙트의 가장 큰 문제 중 하나는 컨트랙트의 결과를 이행하기 위해 신뢰할 수 있는 개인이 필요하다는 점입니다.
예를 들어 보겠습니다:
앨리스와 밥이 자전거 경주를 하고 있습니다. 앨리스가 자신이 경주에서 이길 것이라며 밥에게 10달러를 걸었다고 가정해 보겠습니다. 밥은 자신이 우승할 것이라고 확신하며 내기에 동의합니다. 결국 앨리스가 밥보다 훨씬 앞서 경주를 마치고 확실한 승자가 되었습니다. 하지만 밥은 앨리스가 속임수를 썼을 것이라고 주장하며 내기 금액 지불을 거부합니다.
이 우스꽝스러운 예시는 스마트하지 않은 모든 합의가 가진 문제를 보여줍니다. 합의 조건이 충족되더라도(예: 경주에서 우승함), 합의를 이행(예: 내기 금액 지불)하려면 여전히 다른 사람을 신뢰해야 합니다.
디지털 자판기
스마트 컨트랙트를 설명하는 간단한 비유로 자판기를 들 수 있습니다. 자판기는 특정 입력이 미리 정해진 출력을 보장한다는 점에서 스마트 컨트랙트와 다소 비슷하게 작동합니다.
- 제품을 선택합니다
- 자판기에 가격이 표시됩니다
- 가격을 지불합니다
- 자판기가 올바른 금액을 지불했는지 확인합니다
- 자판기가 제품을 내어줍니다
자판기는 모든 요구 사항이 충족된 후에만 원하는 제품을 내어줍니다. 제품을 선택하지 않거나 돈을 충분히 넣지 않으면 자판기는 제품을 주지 않습니다.
자동 실행
스마트 컨트랙트의 주요 장점은 특정 조건이 충족될 때 모호하지 않은 코드를 결정론적으로 실행한다는 것입니다. 사람이 결과를 해석하거나 협상할 때까지 기다릴 필요가 없습니다. 이로 인해 신뢰할 수 있는 중개자가 필요하지 않게 됩니다.
예를 들어, 자녀를 위해 자금을 에스크로에 보관하고 특정 날짜 이후에 자금을 인출할 수 있도록 하는 스마트 컨트랙트를 작성할 수 있습니다. 해당 날짜 이전에 인출하려고 하면 스마트 컨트랙트는 실행되지 않습니다. 또는 딜러에게 대금을 지불하면 자동차의 디지털 소유권을 자동으로 부여하는 컨트랙트를 작성할 수도 있습니다.
예측 가능한 결과
전통적인 컨트랙트는 사람이 해석하고 이행해야 하므로 모호합니다. 예를 들어, 두 명의 판사가 컨트랙트를 다르게 해석할 수 있으며, 이는 일관성 없는 결정과 불평등한 결과로 이어질 수 있습니다. 스마트 컨트랙트는 이러한 가능성을 제거합니다. 대신, 스마트 컨트랙트는 컨트랙트 코드에 작성된 조건에 따라 정확하게 실행됩니다. 이러한 정확성 덕분에 동일한 상황이 주어지면 스마트 컨트랙트는 항상 동일한 결과를 생성합니다.
공개 기록
스마트 컨트랙트는 감사 및 추적에 유용합니다. 이더리움 스마트 컨트랙트는 퍼블릭 블록체인에 있으므로 누구나 자산 전송 및 기타 관련 정보를 즉시 추적할 수 있습니다. 예를 들어, 누군가가 내 주소로 돈을 보냈는지 확인할 수 있습니다.
프라이버시 보호
스마트 컨트랙트는 프라이버시도 보호합니다. 이더리움은 가명 네트워크(트랜잭션이 신원이 아닌 고유한 암호화 주소에 공개적으로 연결됨)이므로 관찰자로부터 프라이버시를 보호할 수 있습니다.
가시적인 조건
마지막으로, 전통적인 컨트랙트와 마찬가지로 서명하기 전에 스마트 컨트랙트의 내용을 확인할 수 있습니다. 전통적인 컨트랙트와 달리, 스마트 컨트랙트의 온체인 투명성 덕분에 누구나 상호작용하기 전에 이를 면밀히 조사하고 검토할 수 있습니다.
그러나 누구나 스마트 컨트랙트의 조건을 볼 수 있지만, 원시 트랜잭션 데이터는 사람이 아닌 애플리케이션과 지갑이 해석하도록 설계되었습니다. 이 데이터는 읽기가 매우 어렵기 때문에, 사용자는 종종 스마트 컨트랙트가 실제로 어떤 작업을 수행할지 이해하지 못한 채 상호작용하는 트랜잭션을 승인하는 "블라인드 서명(blind signing)"이라는 주요 보안 위험에 직면하게 됩니다.
이더리움 생태계는 클리어 서명(Clear Signing) (opens in a new tab) 표준(특히 ERC-7730 (opens in a new tab))으로 전환하고 있습니다. 클리어 서명은 불투명한 스마트 컨트랙트 데이터를 사람이 읽을 수 있는 평이한 트랜잭션 설명으로 변환하여, 누구나 서명하기 전에 컨트랙트의 진정한 인텐트를 이해할 수 있도록 보장합니다.
스마트 컨트랙 사용 사례
스마트 컨트랙트는 기본적으로 컴퓨터 프로그램이 할 수 있는 모든 일을 할 수 있습니다.
연산을 수행하고, 통화를 생성하며, 데이터를 저장하고, 를 발행하고, 통신을 보내며, 심지어 그래픽을 생성할 수도 있습니다. 다음은 널리 사용되는 실제 사례입니다:
- 스테이블코인
- 고유한 디지털 자산 생성 및 배포
- 자동화된 개방형 환전소
- 탈중앙화된 게임
- 자동으로 지급되는 보험 정책 (opens in a new tab)
- 맞춤형의 상호운용 가능한 통화를 만들 수 있는 표준
더 읽어보기
- 스마트 컨트랙트가 세상을 바꾸는 방법 (opens in a new tab)
- 개발자를 위한 스마트 컨트랙트
- 스마트 컨트랙트 작성법 배우기
- 마스터링 이더리움 - 스마트 컨트랙트란 무엇인가? (opens in a new tab)