*포스트 난이도: HOO_Middle
# Smart Contract란?
Smart contract (SC)를 볼 때마다 기억에 남는 게 한 가지가 있다. 바로 논문이 아닌 블로그에서부터 시작했다는 것이다. 나도 새로운 걸 다루지만 기존에 없던 새로운 걸 사실 기존의 전문가들에게 검증을 받고 인정을 받는다는 게 참 어렵다. 때로는 인정을 아예 받지 못할 수도 있고 리뷰를 해줄 사람이 없는 경우도 있다. 그럴 때면 "아 그냥 있는 거나 할걸. 누굴 위해서 이 짓거리를 하고 있나"라는 현타에 빠지곤 한다. 하지만 멀리 돌이켜볼 필요 없듯이 Nick Szabo의 SC에 대한 설명만 보더라도 시작점이 블로그에 쓴 글이라는 점에서 어쩌면 모든 새로운 시작은 처음부터 인정을 받기 어려운 게 아닌가 싶다. 나 또한 Computer vision을 하던 시절만 돌이켜보더라도 YOLO가 깃허브에 나오고 사용해 보는 정도였지 누가 인정해 주거나 Computer vision 자체를 가지고 연구를 하거나 applications들을 개발하지 않았던 걸 보며 위로를 받는다. 아무튼 이번 포스트는 SC에서 다뤄볼까한다. 막상 SC에 대한 정의나 일반적인 예시는 많지만 언제, 어떻게 사용이 되고 무엇을 SC라고 하는지 등에 대한 글은 찾기가 어려웠다. 마침 SC에 대한 포스트 작성도 하지 않았기에 SC에 대해서 내가 느끼는 견해로 포스팅을 해보려고 한다.
# 닉 아저씨의 Smart Contract (SC)
대부분의 컴퓨터에서 사용되는 로직이나 알고리즘은 사실 이전에 이미 개발이 된 거고 그걸 application 해서 실질적으로 활용되기 시작해야 알려지는 것이다. SC도 마찬가지이다. 이미 Nick Szabo가 1994년에 SC가 무엇인지에 대해서 정의와 함께 소개되었다. 물론 이게 블록체인에 적용되어 사용되기까지는 시간이 걸렸지만 이미 우리는 블록체인에서 가장 많이 쓰이는 기능인 SC에 대해서 오래전부터 논의가 이뤄지고 있었다. (물론 관심이 없었을 뿐)
닉 아저씨가 94년도에서부터 SC에 대해서 말해왔지만 지금 블록체인과 같이 application에서 사용되는 SC (스마트계약)의 특징도 크게 다르지 않다. 스마트계약이라고 하면 되게 있어 보이고 다가가기 어려운 친구처럼 보이지만 핵심 논점은 신뢰성과 비용이다. 이해를 돕기 위해 오프라인과 온라인이라는 기준을 두도록 하겠다. 오프라인 세계에서 우리가 계약을 하고 이행하는 사회적 합의가 이미 만들어져 있다. 사실 계약이라는 게 그냥 구두로 약속하고 글씨로 써둔 종이에 불과하지만 여기에 경제적, 그리고 enforcement라고 하는 강제성을 부여할 수 있도록 법적으로 보장받는 복합적인 메커니즘을 포함하고 있다. 그래서 오프라인에서의 계약은 사람 간의 동의를 구하고 사람간의 약속을 이행하는 구조로 되어있다.
닉 아저씨가 말하는 건 여기서 크게 벗어나지 않는다. 다만 우리가 사회적으로 합의한 계약이 온라인상에서 발생했을 때 우리가 이미 가지고 있는 오프라인 구조를 비슷하게 온라인에서도 가져갈 수 있는 방법이 필요하다고 제안하고 있으며, 이게 바로 스마트계약인 셈이다. 닉 아저씨는 이에 대한 예제로 Digital cash protocols를 제시했다. 우리 브로들은 결론을 좋아하기에 논점을 요약하자면 오프라인에서 앞서 이야기한 신뢰성을 계약에서 보장하기 위해서 필요한 요소들(factors)을 어떻게 오프라인에서 구조화하고 이를 신뢰성을 유지할 것이냐이다. 한마디로 온라인에서의 계약도 신뢰성이 필요한데, 오프라인의 요소 예를 들면 대면으로 계약을 한다거나 계약이 이행되는지 확인이 직접 가능하다거나, 감사기관이 존재한다거나 등등 정말 많은 신뢰성을 보장하는 요소들을 어떻게 다른 형태의 온라인에서 만들어가냐는 것에 대한 내용이었다.
결과적으로 온라인과 오프라인은 다르지만 오프라인의 계약을 온라인으로 가져오기 위해서는 비슷한 방식의 신뢰성 유지가 필요하고 이를 위해서는 많은 비용이 든다는 것이다. 왜냐하면 각 요소들을 분석하고 이에 맞는 방법들을 모두 적용해줘야 하는데 그렇다 보면 온라인에서 계약이 가지는 과정이 매우 복잡해지고 그렇다고 해서 오프라인과 동일한 신뢰성을 가질 것이라는 보장도 없기 때문이다. 쉽게 말해서 face-to-face 대면 계약이 오프라인에 있다고 해서 매번 줌으로 얼굴을 보고 계약한다고 해서 이게 동일한 신뢰성을 보장받을 수 있냐라고 했을 때 아니라는 것이다. 그래서 닉 아저씨가 제안하는 바는 핵심 논점인 신뢰성을 보장하면서도 transaction에 대한 비용이 많이 증가하지 않는 방식인 스마트계약이라는 방법이 필요하다는 것이다.
# 스마트계약은 재료일 뿐, 인공지능 간의 스마트계약
재미있는 건 닉 아저씨는 스마트계약에 대해서 구체적인 걸 말해주지는 않는다. 그는 새로운 개념을 제안하는 것이지, 하나의 정해진 방법을 소개하는 것은 아니다. 마치 그동안 요리에 사용하지 않던 새로운 재료나 소스를 만들어냈을 뿐 그다음에 이걸 어떻게 사용할지는 요리사에 따라 달라질 수 있는 것이다. 스마트계약을 블록체인에 접목할지, 스마트계약에 어떤 걸 넣을지 등 모든 부분은 닉 아저씨 다음의 아저씨들이 만들어낸 추가적인 요소이다. 그거의 근간이 되는 온라인 계약이라는 점과 이에 따르는 신뢰성은 유지한 채 말이다.
내가 제안하고 연구하고 있는 내용도 마찬가지이다. 닉 아저씨가 본 스마트계약이 앞으로 쓰일 방향성과 내가 제안하는 내용은 다르다. 다만 여기에 들어가는 신뢰성을 근간으로 인공지능의 자동화를 통해 비용을 줄이는데 스마트계약이 들어간다. 최근에 엠바고 때문에 혼나가지고 구체적인걸 말할 수는 없지만, 나는 이 스마트계약이라는 아주 작은 재료 하나가 앞으로의 사람이 명령하고 컨트롤하는 인공지능 환경에서 벗어나서 Machine to Machine, 즉 인공지능 디바이스 간의 상호운용성을 가진 채로 관리자인 사람에게 보고하는 체계를 구축하는데 큰 역할을 할 수 있을 것으로 보고 있다. 물론 이걸 어떻게 구조화하고 redesign 해야 하는 건 우리들의 숙제이고 내가 하고 있는 연구이지만 말이다. 아무튼 스마트계약은 단순히 "온라인에서 이뤄지는 계약서"가 아니라 오프라인에서 사람 간의 약속이었다면 이제는 온라인에서 인공지능 간의 계약서로써 활용이 가능하다고 생각한다.
# 결론
기존에 없던 분야를 건들거나 새로운 내용을 전달한다는 게 참 어렵다고 느껴진다. 그러면서 굳이 사람들도 인정해주지 않은 분야를 개척해 나갈 필요성이 있을까라는 현타가 오기도 한다. 하지만 스마트계약이라는 이론적 배경도 없던 시절부터 시작한 닉 아저씨를 보면 막상 또 현타가 올 정도로 불평불만을 할 레벨은 아닌 것 같다. 개발자 브로들도 기존에 더해진 기획이 아니라 완전히 새로운, 기존에 없던걸 다룰 때 포기하고 싶을 때고 종종 올 것이다. 대기만성이라 생각하고 나아가다 보면 닉 아저씨처럼 빛을 볼 날이 오지 않을까 싶다.
언젠가 이 글도 닉 아저씨 글이 다시 회자되는 것처럼 사람이 아닌 인공지능 사이에서 회자가 되는 날이 올 수도 있지 않을까 싶다. 이미 어디선가 학습용으로 수집해가고 있을지도 모르지만.
# Reference
Szabo, N. (1994). Smart contracts. http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html
'Computer Science > Blockchain' 카테고리의 다른 글
| [Blockchain] ERROR channel block was not created (0) | 2026.01.08 |
|---|---|
| [Blockchain] 데이터 활용 목적에서의 재구조화된 블록체인 (0) | 2025.04.03 |
| [Blockchain] Fabric Gateway API, Transaction 제출 과정을 단순화 (2) | 2025.03.15 |
| [Blockchain] Zero-Knowledge Proof (ZKP) (2) | 2025.03.10 |
| [Blockchain] Hyperledger Fabric: network.sh (12) | 2024.09.16 |
댓글