[Blockchain] 스마트 컨트랙트 (Smart Contract) / 오라클 문제
스마트 컨트랙트 / 오라클 문제
스마트 컨트랙트 (Smart Contract)
-
스마트 컨트랙트란 블록체인 기반으로 금융거래, 부동산 계약, 공증 등 다양한 형태의 계약을 체결하고 이행하는 것
-
스마트 컨트랙트는 블록체인 네트워크에 호스팅되고 실행되는 프로그램
-
개발자가 직접 계약 조건과 내용을 코딩할 수 있기 때문에, 원칙적으로 인간이 상상할 수 있는 모든 종류의 계약을 이더리움 플랫폼을 이용해 구현할 수 있다
-
스마트 컨트랙트는 일반적인 중앙 집중식 서버가 아니라 탈중앙화된 블록체인에서 실행하기 때문에, 계약 조건이나 이행 내용을 변조하기 어려우며 계약을 신뢰하기 위한 제 3자가 필요하지 않다
스마트 컨트랙트
1994년 ‘닉 자보(Nick Szabo)’ 가 처음 제안했다
2013년 ‘비탈릭 부테린(Vitalik Buterin)’ 이 기존 비트코인의 소스 코드를 일부 수정하여
스마트 계약 기능을 구현하고자 하였으나, 비트코인 커뮤니티에서 자신의 요구가 받아들여지지 않자, 비트코인을 포크(fork)하여 새로 이더리움(Ethereum)이라는 가상화폐를 만들고 ‘스마트 계약’ 기능을 구현하였다
스마트 컨트랙트 동작방식
- 개발자라면 누구나 스마트 컨트랙트를 만들고 퍼블릭 블록체인에 배포할 수 있다
- 코드가 블록체인 네트워크에 올라가면
- 네트워크는 미리 결정된 조건이 충족되고
- 검증된 경우 조건에 따른 액션을 실행
- 이러한 액션은 트랜잭션에 기록📜되며
- 완료된 트랜잭션은 블록체인에 올라간다
- 스마트 컨트랙트는 한번 액션이 수행되면 되돌리거나 수정할 수 없다 🚫
⭐ 예를들어
여러 펀드 중 가장 높은 수익을 내는 펀드로 옮기는 작업을 자동화하는 ‘수익률 집계 어플리케이션’을 만들 수도 있다
일정 시각마다 여러 펀드들 중 현재 가지고 있는 펀드보다
높은 수익률🔺을 내고 있는 펀드가 있는 경우라는 조건에 부합하는지 확인하고, 🧐
그러한 펀드가 있는 경우 새로운 펀드로 이동하는 액션을 취하도록 스마트 컨트랙트 코드를 작성할 수 있다
스마트 컨트랙트의 장점
-
보안
한번 스마트 컨트랙트 코드가 블록체인 네트워크에 올라가면 누군가에게 뇌물을 주고 ‘계약 내용’ 이나 ‘결과’ 를 변조할 위험이 없다 -
신뢰성
블록체인 네트워크에 있는 노드들에 의해 ‘여러번 수행되고 검증’되기 때문에, 위변조가 매우 어렵고 정확도가 높다 👉 투명한 거래 -
공평함
수수료를 가져가는 등 ‘영리적 목적’ 의 중개자가 필요하지 않다 👉 수수료와 같은 비용 절감 -
효율성
계약 이행을 ‘자동화’ 하기 때문에 계약 당사자들은 데이터를 입력 / 검증 / 계약 집행을 확인할 필요가 없다
스마트 컨트랙트의 단점
-
이미 배포된 스마트 컨트랙트는 수정이 불가능하다
-
스마트 컨트랙트를 이용하기 위해서는 수수료인 ‘gas’ 가 필요한데, gas가 생각보다 비싸다
-
오라클 문제가 있다
오라클 문제
오라클 문제가 블록체인에서 가장 해결하기 어려운 상황인데,
‘블록체인 밖에 있는 데이터’를 ‘블록체인 안으로 가져올 때’ 발생하는 문제를 ‘오라클 문제’라고 한다
참고 했던 사이트 🖥
https://m.blog.naver.com/chowk17/221565227526