본문으로 건너뛰기

코드가 법일까? 스마트 컨트랙트 설명

이더리움과 탈중앙화 금융 (DeFi)의 스마트 컨트랙트를 통해 '코드가 법이다'라는 개념을 탐구합니다. 이 비디오는 스마트 컨트랙트가 무엇인지, 어떻게 작동하는지, 그리고 코드가 궁극적인 중재자가 되어야 하는지에 대한 철학적 질문을 다룹니다.

Date published: 2020년 11월 18일

파인매틱스(Finematics)가 이더리움의 스마트 컨트랙트를 통해 "코드가 법이다"라는 개념을 탐구하는 설명 영상으로, 스마트 컨트랙트가 무엇인지, 어떻게 작동하는지, 전통적인 컨트랙트 대비 어떤 장점이 있는지, 그리고 왜 탈중앙화 금융 (DeFi)의 구성 요소인지 다룹니다.

이 대본은 파인매틱스가 게시한 원본 비디오 대본 (opens in a new tab)의 접근성 향상 버전입니다. 가독성을 위해 약간 편집되었습니다.

소개 (0:00)

기술을 사용해 규칙을 집행하는 "코드가 법이다"라는 표현을 들어본 적이 있나요? 그렇다면 변호사가 과연 필요할까요? 아니면 코드가 우리가 할 수 있는 일과 할 수 없는 일을 지시하는 완전히 자동화된 세상에서 살 수 있을지도 모릅니다. 현재 스마트 컨트랙트의 발전으로 인해, 이러한 미래적인 시나리오는 우리가 생각하는 것보다 더 가까이 와 있을 수 있습니다.

스마트 컨트랙트는 자동적이고 결정론적인 방식으로 실행될 수 있는 코드 조각입니다. 스마트 컨트랙트 코드는 일반적으로 무신뢰 환경과 보안을 보장하기 위해 블록체인에 저장되고 실행됩니다. 스마트 컨트랙트는 자금을 수신, 저장, 전송할 수 있는 기능도 갖추고 있으며, 심지어 다른 스마트 컨트랙트를 호출할 수도 있습니다. 이들은 '만약 ~라면 ~하다(if-then)'라는 의미론을 따르기 때문에 프로그래밍하기가 꽤 쉽습니다.

스마트 컨트랙트는 의사 결정에서 인적 요소를 제거하는 것을 목표로 합니다. 인적 요소는 종종 표준적인 전통적 컨트랙트에서 가장 오류가 발생하기 쉽고 신뢰할 수 없는 요소로 입증되었습니다.

자판기는 스마트 컨트랙트와 몇 가지 유사점을 공유하기 때문에 좋은 비유로 자주 등장합니다. 일반적인 자판기는 입력에 따라 특정 작업과 상태 전환을 허용하는 방식으로 프로그래밍되어 있습니다. 또한 완전히 결정론적인 방식으로 작동합니다. 예를 들어, 2달러짜리 콜라 한 캔을 사고 싶은데 1달러밖에 없다면, 아무리 여러 번 시도해도 음료수를 얻을 수 없습니다. 반면에 3달러를 넣으면 기계는 콜라 한 캔과 적절한 거스름돈을 줍니다. 제공되는 거스름돈조차도 어떤 동전이 사용 가능한지, 기계가 어떤 동전을 먼저 소진하고 싶은지에 따라 미리 정의되고 프로그래밍된 방식으로 선택됩니다.

스마트 컨트랙트는 블록체인에서 사용 가능한 정보에만 전적으로 의존할 수 있습니다. 예를 들어, "A 토큰 10개를 주면 B 토큰 10개를 주겠다"와 같은 식입니다. 또는 ETH나 S&P 500 가격과 같은 외부 데이터 소스에 의존할 수도 있습니다. 후자의 예는 현실 세계의 데이터를 신뢰해야 하므로 스마트 컨트랙트를 더 어렵게 만듭니다. 필요한 신뢰는 오라클 서비스를 사용하여 최소화할 수 있지만, 오라클 서비스조차도 신뢰해야 합니다. 특정 인센티브를 사용하여 오라클이 올바른 데이터를 제공할 가능성을 높이는 몇 가지 프로젝트가 이미 존재합니다. 체인링크는 이 범주에서 단연 돋보이는 프로젝트입니다.

이더리움 스마트 컨트랙트 (3:09)

이더리움은 스마트 컨트랙트를 지원하고 프로그래머가 자신만의 스마트 컨트랙트를 구현할 수 있게 해주는 블록체인입니다. 스마트 컨트랙트는 이 목적을 위해 특별히 만들어진 Solidity라는 프로그래밍 언어로 작성될 수 있습니다. 이더리움에서 배포된 모든 스마트 컨트랙트는 불변입니다. 즉, 한 번 배포되면 수정할 수 없으며, 이는 나중에 논의할 특정 위험을 초래합니다.

이더리움의 스마트 컨트랙트는 또한 탈중앙화되어 있습니다. 이는 컨트랙트를 제어하는 단일 기계가 없음을 의미합니다. 사실, 이더리움 네트워크의 모든 노드는 정확히 동일한 상태를 가진 동일한 컨트랙트를 저장합니다. 이더리움이 현재 가장 인기 있는 범용 스마트 컨트랙트 플랫폼이긴 하지만, 유일한 플랫폼은 아니며 카르다노(Cardano), 테조스(Tezos), 이오스(EOS), 트론(Tron)을 포함한 몇 가지 경쟁자가 있습니다. 그러나 이들 모두가 동일한 특성을 공유하는 것은 아닙니다.

스마트 컨트랙트 정의 (4:23)

"스마트 컨트랙트"라는 용어는 1990년대 초 유명한 암호학자 닉 사보(Nick Szabo)가 만들었습니다. 이 이름은 직관적으로 의미가 와닿지는 않지만, 널리 정착되어 특히 블록체인 산업에서 흔히 사용됩니다. 스마트 컨트랙트의 이점을 확인하기 위해, 가상의 스마트 컨트랙트를 전통적인 공간의 동등한 개념과 비교해 보겠습니다.

스마트 컨트랙트 예시 (4:46)

다음과 같은 컨트랙트를 작성한다고 가정해 보겠습니다. 앨리스가 X개의 A 토큰을 보내고 밥이 같은 수의 B 토큰을 보내면 토큰이 스왑됩니다. 즉, 앨리스는 밥의 토큰을 받고 밥은 앨리스의 토큰을 받게 됩니다.

스마트 컨트랙트가 없는 세상에서 앨리스가 밥을 신뢰하거나 밥이 앨리스를 신뢰하지 않고도 이를 달성하는 한 가지 방법은 제3자와 에스크로 컨트랙트를 맺는 것입니다. 제3자는 앨리스로부터 A 토큰을 수집하고, 밥으로부터 같은 수의 B 토큰을 기다린 다음, 앨리스와 밥에게 각각 스왑된 토큰을 보냅니다.

스마트 컨트랙트 문제 (5:45)

이 접근 방식은 이미 앨리스와 밥이 직면할 수 있는 몇 가지 문제를 보여줍니다.

  • 중개자 신뢰 — 제3자가 앨리스와 밥으로부터 자금을 받은 후 토큰을 가지고 도망치지 않을 것이라는 보장이 없습니다. 우리는 중개자의 평판과 잠재적인 보험에 의존해야 합니다.
  • 비결정론적 결과 — 무언가 잘못될 경우, 잠재적인 사건이 해결될 관할권을 포함한 여러 요인에 따라 다른 결과가 나올 수 있습니다.

반면에 스마트 컨트랙트는 완전히 자동화되고 결정론적인 방식으로 작동하여, 양 당사자가 토큰 예치라는 초기 기준을 충족할 때 자금을 받을 수 있도록 보장합니다. 스마트 컨트랙트는 또한 그 자체 내에 자금을 보관할 수 있는데, 이는 전통적인 세계에서는 달성할 수 없는 일입니다.

속도 (6:47)

중개자에 따라 앨리스와 밥은 토큰 전환을 정산하기 위해 며칠 또는 몇 주를 기다려야 할 수도 있습니다. 만약 그들이 일요일에 토큰을 스왑하고 싶은데 중개자가 영업하지 않는다면 어떻게 될까요? 스마트 컨트랙트를 사용하면 이러한 종류의 문제가 사라지고, 초기 기준이 충족된 후 몇 초 만에 컨트랙트가 이행될 수 있습니다.

비용 (7:16)

전통적인 컨트랙트는 이익을 내야 하는 중개자 때문에 비용이 많이 들 뿐만 아니라, 컨트랙트에 문제가 발생할 경우 중재 및 집행과 같은 숨겨진 비용에 대한 엄청난 위험도 존재합니다.

재사용성은 또 다른 장점입니다. 앨리스와 밥의 토큰을 스왑하는 데 사용된 동일한 스마트 컨트랙트를 토큰을 스왑하려는 다른 누구나 사용할 수 있습니다. 전통적인 세계에서는 모두가 별도의 컨트랙트에 서명하고 중개자에게 각각의 수수료를 지불해야 합니다.

사기 (7:58)

사기는 또 다른 숨겨진 비용이며, 이번에는 중개자 자체에 대한 비용입니다. 중개자는 스왑을 초기화하기 전에 앨리스와 밥의 토큰이 모두 합법적인지 확인해야 합니다. 사기는 전통적인 금융에서 매우 흔하며, 대부분의 회사는 순전히 사기 방지를 위해 일하는 거대한 팀을 보유하고 있습니다. 스마트 컨트랙트를 사용하면 블록체인에서 토큰을 검증할 수 있으며, 디지털 서명을 통해 앨리스와 밥 모두 토큰을 사용할 자격이 있는지 즉시 명확하게 알 수 있습니다.

사용 사례 (8:42)

스마트 컨트랙트는 결제 및 탈중앙화 금융 (DeFi)에서 공급망 및 크라우드펀딩에 이르기까지 점점 더 많은 사용 사례를 가지고 있습니다. 스마트 컨트랙트는 또한 탈중앙화 애플리케이션 (dapp)의 기본 구성 요소이기도 합니다.

탈중앙화 금융 (DeFi) (9:07)

탈중앙화 금융 (DeFi)은 스마트 컨트랙트에 크게 의존하는 새로운 산업 중 하나입니다. 이 분야에서 이미 구축된 몇 가지 사례는 다음과 같습니다.

  • 탈중앙화 스테이블코인 — 스마트 컨트랙트와 특정 인센티브를 영리하게 사용하면, 현실 세계에 달러를 보관하지 않고도 미국 달러에 고정된 스테이블코인을 만들 수 있습니다. 메이커다오(MakerDAO)는 이를 가능하게 하는 프로젝트 중 하나입니다.
  • 자동화된 유동성 공급 — 일련의 스마트 컨트랙트를 통해 사용자는 완전히 무허가성이고 탈중앙화된 방식으로 유동성을 제공하고 토큰을 스왑할 수 있습니다. 유니스왑과 카이버 네트워크(Kyber Network)가 이러한 프로토콜의 좋은 예입니다.

크라우드펀딩 및 공급망 (10:05)

또 다른 사용 사례는 공급망에 더 많은 투명성을 제공하는 것으로, 오리진트레일(OriginTrail)과 같은 프로토콜이 여기서 역할을 합니다. 크라우드펀딩의 경우, 특정 목표가 달성되고 커뮤니티에 의해 검증되는 즉시 자금을 잠금 해제하는 컨트랙트를 상상해 볼 수 있습니다.

미래의 스마트 컨트랙트 (10:29)

스마트 컨트랙트가 승차 공유, 아파트 임대 등 훨씬 더 많은 것을 촉진할 수 있다면 어떨까요? 자선 단체는 어떨까요? 중개자 없이 가장 필요로 하는 사람들에게 직접 돈을 보내는 완전히 자동화된 펀드를 상상해 볼 수 있습니다. 예를 들어, 펀드는 특정 지역이 허리케인의 피해를 입었다고 판단하고 해당 지역으로 자금을 재전송할 수 있습니다. 지금으로서는 꽤 불가능해 보이지만, 이런 일을 실현하는 데 필요한 모든 요소가 지금 이 순간에도 구축되고 있습니다.

스마트 컨트랙트의 사용 사례는 거의 무한하지만, 이 모든 것을 달성하기 전에 몇 가지 문제를 해결해야 합니다.

  • 버그 — 스마트 컨트랙트와 관련된 주요 위험 중 하나는 다른 모든 소프트웨어를 괴롭히는 문제입니다. 가장 좋은 예는 DAO 해킹으로, 공격자가 스마트 컨트랙트에서 자금을 빼낼 수 있게 되어 수백만 달러 가치의 이더를 잃은 사건입니다. 이로 인해 이더리움은 하드 포크를 겪었고 이더리움 커뮤니티 내에 많은 의견 충돌이 발생했습니다. DAO 해킹 이후, 이더리움 커뮤니티는 많은 추가 보안 조치를 마련했습니다. 요즘에는 거의 모든 인기 있는 스마트 컨트랙트가 종종 여러 팀에 의해 보안 감사를 거칩니다. 또한 특정 컨트랙트가 항상 예상된 방식으로 작동할 것임을 증명하기 위해 정형 검증 방법을 사용하는 추세도 있습니다.
  • 프로토콜 변경 — 스마트 컨트랙트에 버그가 없고 감사를 받았더라도, 플랫폼 수준의 변경이 문제를 일으키지 않을 것이라고 보장할 수는 없습니다. 프로토콜 자체의 업그레이드로 인해 특정 스마트 컨트랙트가 예상과 다르게 작동하기 시작할 수 있습니다.
  • 현실 세계 데이터 — 오라클 서비스는 현실 세계의 정보를 블록체인으로 가져오는 신뢰할 수 있는 방법을 제공할 수 있습니다. 하지만 아파트나 자동차를 렌트하고 우발적인 손상을 입혔다고 상상해 보세요. 인간의 개입 없이 스마트 컨트랙트가 어떻게 그것을 알 수 있을까요? 현실 세계에서 일어나는 예상치 못한 일이 스마트 컨트랙트에 어떻게 반영될 수 있을지 상상하기 어려운 여러 사례가 있습니다.

위에서 언급한 것 외에도 규제 및 세금과 관련된 위험이 있지만, 이들은 모두 결국 해결될 수 있습니다.

변호사를 대체할 수 있을까? (13:58)

그렇다면 실제로 변호사를 코드로 대체할 수 있을까요? 완전히 그렇지는 않습니다. 적어도 지금 당장은 아닙니다. 미래에는 특히 금융 분야에서 점점 더 많은 컨트랙트가 자동화될 것입니다. 하지만 완전히 자동화된 세상에서도 변호사는 코드로 변환될 수 있는 귀중한 지식을 제공할 수 있습니다. 또한 암호화폐 산업을 둘러싼 많은 규제 과제가 있어 당분간 변호사들은 매우 바쁠 것입니다. 그럼에도 불구하고, 제가 변호사라면 스마트 컨트랙트와 코딩에 대해 배우기 시작할 것입니다. 이들이 미래에 큰 역할을 할 것이기 때문입니다.

요약 (14:53)

스마트 컨트랙트의 장점:

  • 완전 자동화
  • 결정론적 결과
  • 무신뢰
  • 빠르고, 정확하며, 안전함
  • 비용 효율적이고 투명함

스마트 컨트랙트의 단점:

  • 소프트웨어 버그
  • 프로토콜 변경
  • 규제 및 세금의 불확실성

스마트 컨트랙트가 특정 위험을 수반하긴 하지만, 우리는 아직 매우 초기 단계에 있으며 현재의 대부분의 문제는 해결 가능합니다.

이 페이지가 도움이 되었나요?