본문으로 건너뛰기
Change page

스마트 컨트랙트 조합성

간단한 소개

스마트 컨트랙트는 이더리움에 공개되어 있으며 오픈 API로 생각할 수 있습니다. 탈중앙화 애플리케이션 (dapp) 개발자가 되기 위해 자체 스마트 컨트랙트를 작성할 필요는 없으며, 상호작용하는 방법만 알면 됩니다. 예를 들어, 탈중앙화 거래소인 유니스왑 (opens in a new tab)의 기존 스마트 컨트랙트를 사용하여 앱의 모든 토큰 스왑 로직을 처리할 수 있으므로 처음부터 시작할 필요가 없습니다. 유니스왑의 v2 (opens in a new tab)v3 (opens in a new tab) 컨트랙트 중 일부를 확인해 보세요.

조합성이란 무엇인가요?

조합성은 서로 다른 컴포넌트를 결합하여 새로운 시스템이나 결과물을 만드는 것입니다. 소프트웨어 개발에서 조합성이란 개발자가 기존 소프트웨어 컴포넌트를 재사용하여 새로운 애플리케이션을 구축할 수 있음을 의미합니다. 조합성을 이해하는 좋은 방법은 조합 가능한 요소를 레고 블록으로 생각하는 것입니다. 각 레고는 다른 레고와 결합할 수 있으므로, 다양한 레고를 결합하여 복잡한 구조를 만들 수 있습니다.

이더리움에서 모든 스마트 컨트랙트는 일종의 레고와 같습니다. 다른 프로젝트의 스마트 컨트랙트를 프로젝트의 구성 요소로 사용할 수 있습니다. 즉, 이미 있는 것을 다시 만들거나 처음부터 구축하는 데 시간을 낭비할 필요가 없습니다.

조합성은 어떻게 작동하나요?

이더리움 스마트 컨트랙트는 퍼블릭 API와 같으므로 누구나 컨트랙트와 상호작용하거나 추가 기능을 위해 dapp에 통합할 수 있습니다. 스마트 컨트랙트 조합성은 일반적으로 모듈성(modularity), 자율성(autonomy), 발견 가능성(discoverability)이라는 세 가지 원칙에 따라 작동합니다.

1. 모듈성: 개별 컴포넌트가 특정 작업을 수행할 수 있는 능력입니다. 이더리움의 모든 스마트 컨트랙트에는 특정 사용 사례가 있습니다(유니스왑 예시 참조).

2. 자율성: 조합 가능한 컴포넌트는 독립적으로 작동할 수 있어야 합니다. 이더리움의 각 스마트 컨트랙트는 자체 실행되며 시스템의 다른 부분에 의존하지 않고 기능할 수 있습니다.

3. 발견 가능성: 외부 컨트랙트나 소프트웨어 라이브러리가 공개적으로 사용 가능하지 않다면 개발자는 이를 호출하거나 애플리케이션에 통합할 수 없습니다. 설계상 스마트 컨트랙트는 오픈 소스이므로 누구나 스마트 컨트랙트를 호출하거나 코드베이스를 포크할 수 있습니다.

조합성의 이점

개발 주기 단축

조합성은 개발자가 dapp을 만들 때 해야 할 작업을 줄여줍니다. 나발 라비칸트(Naval Ravikant)가 말했듯이 (opens in a new tab), "오픈 소스란 모든 문제를 한 번만 해결하면 된다는 것을 의미합니다."

한 문제를 해결하는 스마트 컨트랙트가 있다면 다른 개발자가 이를 재사용할 수 있으므로 같은 문제를 다시 해결할 필요가 없습니다. 이런 방식으로 개발자는 기존 소프트웨어 라이브러리를 가져와 추가 기능을 더해 새로운 dapp을 만들 수 있습니다.

더 큰 혁신

조합성은 개발자가 원하는 결과를 만들기 위해 오픈 소스 코드를 자유롭게 재사용, 수정, 복제 또는 통합할 수 있기 때문에 혁신과 실험을 장려합니다. 결과적으로 개발 팀은 기본 기능에 소요되는 시간을 줄이고 새로운 기능을 실험하는 데 더 많은 시간을 할애할 수 있습니다.

더 나은 사용자 경험

이더리움 생태계 컴포넌트 간의 상호운용성은 사용자 경험을 향상시킵니다. 애플리케이션이 서로 통신할 수 없는 파편화된 생태계보다 dapp이 외부 스마트 컨트랙트를 통합할 때 사용자는 더 많은 기능에 접근할 수 있습니다.

차익 거래의 예를 들어 상호운용성의 이점을 설명해 보겠습니다.

토큰이 exchange B보다 exchange A에서 더 높은 가격에 거래되고 있다면, 가격 차이를 이용해 수익을 낼 수 있습니다. 하지만 이는 트랜잭션에 자금을 조달할 충분한 자본이 있는 경우(즉, exchange B에서 토큰을 구매하고 exchange A에서 판매하는 경우)에만 가능합니다.

거래를 감당할 충분한 자금이 없는 상황에서는 플래시 론이 이상적일 수 있습니다. 플래시 론은 고도의 기술이 필요하지만, 기본 개념은 (담보 없이) 자산을 빌리고 단일 트랜잭션 내에서 동일한 자산을 반환할 수 있다는 것입니다.

처음 예시로 돌아가서, 차익 거래자는 대규모 플래시 론을 받아 exchange B에서 토큰을 구매하고 exchange A에서 판매한 다음, 원금과 이자를 갚고 수익을 챙기는 모든 과정을 동일한 트랜잭션 내에서 수행할 수 있습니다. 이 복잡한 로직은 여러 컨트랙트에 대한 호출을 결합해야 하며, 스마트 컨트랙트에 상호운용성이 없다면 불가능할 것입니다.

이더리움의 조합성 예시

토큰 스왑

트랜잭션 비용을 ETH로 지불해야 하는 dapp을 만드는 경우, 토큰 스왑 로직을 통합하여 사용자가 다른 ERC-20 토큰으로 지불하도록 허용할 수 있습니다. 코드는 컨트랙트가 호출된 함수를 실행하기 전에 사용자의 토큰을 자동으로 ETH로 변환합니다.

거버넌스

DAO를 위한 맞춤형 거버넌스 시스템을 구축하는 것은 비용과 시간이 많이 들 수 있습니다. 대신 Aragon Client (opens in a new tab)와 같은 오픈 소스 거버넌스 툴킷을 사용하여 DAO를 부트스트랩하고 거버넌스 프레임워크를 빠르게 만들 수 있습니다.

신원 관리

맞춤형 인증 시스템을 구축하거나 중앙화된 제공업체에 의존하는 대신, 탈중앙화 신원증명 (DID) 도구를 통합하여 사용자의 인증을 관리할 수 있습니다. 사용자가 이더리움 지갑으로 신원을 인증할 수 있는 "이더리움으로 로그인(Sign in with Ethereum)" 기능을 제공하는 오픈 소스 툴킷인 SpruceID (opens in a new tab)가 그 예입니다.

더 읽을거리

도움이 된 커뮤니티 리소스를 알고 계신가요? 이 페이지를 편집하여 추가해 주세요!