3. 스마트 컨트랙트란(Smart Contracts)?

in #kr6 years ago (edited)

이전글보기

1. 블록체인이란?

2. 채굴방식(마이닝) POW, POS, DPOS 란?
3. 퍼블릭 블록체인, 프라이빗(컨소시움) 블록체인 비교
4. 튜링 완전(turing-complete)이란?

스마트 컨트랙트란?

스마트 컨트랙트(Smart Contracts) 는 중개자없이 P2P로 쉽고 편리하게 계약을 체결하고 수정할 수 있는 기술입니다. 사실 새롭게 정의된 용어는 아닙니다. 예를 들어, 자판기에 1000원을 넣고 마시고 싶은 음료수 버튼을 누르면 자판기가 자동으로 음료수와 잔돈(거스름돈이 존재할 경우)을 뱉어줍니다. 이와 같은 행동을 스마트 컨트랙트라 부릅니다. 여기서 문제는 돈을 넣었는데 자판기가 이를 인식하지 못하거나 돈을 넣지 않고 자판기를 흔드니 돈이 나오는 것과 같은 경우입니다. 이는 자판기의 신뢰성에 금이가는 문제이기 때문에 이를 방지하기 위해 주변에 기술자 또는 주인이 상주하여 확인해야합니다. 즉, 기존의 프로세스들도 스마트 컨트랙트라 부를 수 있는 계약을 하곤 있지만, 신뢰성 유지를 위해 여러 보조장치가 필요하고 이러한 보조장치를 유지하기 위한 비용이 들어갑니다.

블록체인과 스마트 컨트랙트

블록체인은 디지털 데이터를 신뢰할 수 있게 만들어 주는 기술입니다. (블록체인이란? 참고) 다수의 노드가 같은 데이터를 공유하고 검증하는 방식을 통해 디지털 상에 신뢰관계를 형성하고 있습니다. 블록체인은 각 블록들을 공유함으로써 데이터의 변조가 거의 불가능합니다. 한 마디로 블록체인은 스마트 컨트랙트를 구현할 수 있는 최상의 환경인 셈입니다.

예시

스마트 컨트랙트의 예시는 현재 활발히 진행중인 이더리움 기반의 ICO를 생각할 수 있습니다.

예를 들어, A라는 코인이 ICO를 진행해 '1이더리움을 주면 300A를 드립니다.' 라고 모집을 했다고 가정합니다. 이와 같이 계약서를 작성하고 이더리움을 받고자 하는 주소를 알려줍니다. 이때 계약서는 A코인에서 제공하는 주소입니다. 단순하게 이더리움을 받는 주소가 아닌 컨트랙트 주소로 계약서의 역할까지 수행하게 됩니다.

https://etherscan.io/address/0x4957295167dfa9aec2ca40c377d0f8cc4732c7af#code에서 확인해보면, Contract라 붙어있는 주소가 컨트랙트 주소입니다. (일반주소는 Contract가 붙어있지 않습니다!) 위 주소를 들어가보면 아래에 코드가 존재하는데 대개 코드에는 몇몇 특정 사람이 독점하는 것을 막기 위해 일정 수수료를 초과하면 거절되도록 하는 코딩이 되어 있습니다.

한계점

이러한 계약서는 예시처럼 간단한 것도 있지만, 복잡한 계약서도 존재합니다. 어떻게 사용하냐에 따라 현실의 계약서를 대체할 수도 있습니다. 그러나 현실에서 사용할 때는 문제점이 존재합니다. 만약 개인간 거래에 스마트 컨트랙트를 도입했다고 가정합니다. A라는 사람이 '갤럭시 S8을 10만원에 팝니다.' 라는 계약서를 올리고 B라는 사람이 갤럭시S8을 사기위해 10만원을 입금했다면 A는 갤럭시 S8을 배송시켜줘야 합니다. 그러나 A가 갤럭시 S8을 배송시키지 않고 신문지 더미만 들은 상자를 배송한다고 해도 이를 막을 수 없습니다. (이런 문제는 지금도 존재하지만..)

또한 위 예시에서 이더리움 기반의 ico에 많은 사람들이 몰리면 부하가 커져 상당히 느려지게 됩니다.