블록체인과 스마트 컨트랙트
블록체인
블록체인은 각 데이터 간의 연결고리를 만들어 데이터의 외부 개입에 의한 위변조를 방지하는 기술이다.
외부에서 임의로 기존 데이터 사이에 새로운 데이터를 삽입하거나 기존 데이터를 변조하면 블록체인 규칙에 의해 저장된 검증 데이터가 모두 바뀌기 때문에 검증 시점에서 위변조를 탐지할 수 있다.
작업증명
블록체인의 연결고리 방식 중 작업증명이 있다.
작업증명 방식은 높은 부하를 가진 연산을 통해 작업의 위변조를 증명할 수 있는 노드를 선정하는 방식이다.
위변조를 증명하기 위한 후보 노드들은 증명 대상 데이터를 모아서 해시 알고리즘을 연산한다.
다만, 데이터를 단순히 해시로 변환하는게 아닌 일종의 검증 문자인 ‘nonce’를 추가해서 연산한다.
nonce는 임의의 숫자이며 해시 알고리즘의 특성 상 데이터의 극히 일부가 변경되어도 해시 문자열 전체가 바뀌기 때문에 nonce의 규칙을 이용해서 검증하는게 아닌, 생성된 해시 문자열이 규칙에 부합하는 경우가 연산의 성공이며 증명 노드가 되는 방식이다.
nonce를 계속 변경하며 규칙에 맞는 해시를 생성해야 하는 특성으로 인해 작업증명 방식은 증명 노드에 요구하는 연산량이 매우 높고, 변조를 위해서는 네트워크에 기여하는 모든 노드보다 높은 연산량을 가져야 하는 자본적 해자를 가진다.
지분증명
블록체인의 연결고리 방식 중 지분증명도 있다.
지분증명 방식은 작업증명과 달리 연산을 통해 위변조 증명 노드를 선정하지 않는다.
해당 네트워크에 자산을 예치하고, 네트워크에 대한 지분을 이용해 위변조 증명 노드를 선정한다.
지분이 큰 노드가 증명 노드가 될 확률이 높고, 증명 노드는 해시 블록 생성 대가로 추가로 자산을 배분받아 자산이 점점 늘어난다.
작업증명 방식과 달리 증명 연산의 부하가 작아 블록 생성에 필요한 시간이 적은 편이다.
스마트 컨트랙트
스마트 컨트랙트는 블록체인 안에서 실행되는 함수와 같다.
특정 조건이 충족되면 사전 정의된 작업을 실행하는 방식으로, 작업이 미리 정의된 상태로 블록체인에 저장되어 조건 변경이 불가능하다.
사람 사이의 계약은 당사자 간의 의견 차이나 계약 위반을 대비해서 공증 과정이 필요하지만, 스마트 컨트랙트는 생성 시점에 조건을 설정하고 조건 충족 시 자동으로 작업이 실행되어 공증 없는 P2P 계약이 가능하다.
스마트 컨트랙트의 투명성과 작업 실행을 이용하면 여러 기능을 구현할 수 있다.
가스비 대납
가스비 대납은 트랜잭션 생성 시 발생하는 네트워크 가스비를 트랜잭션 생성자 외의 제3자가 지불하는 방식을 말한다.
이 방식은 특정 서비스 안에서 발생하는 트랜잭션 비용을 서비스가 대신 납부하기 위해 사용한다.
사용자는 가스비를 직접 낼 필요가 없기 때문에 트랜잭션 생성에 대한 확인을 마치면 바로 전송하며, 해당 트랜잭션은 가스비 대납 스마트 컨트랙트에서 서비스 계정에 가스비를 청구한 뒤 네트워크에 기록한다.
자동 토큰 발행
자동 토큰 발행 방식으로도 스마트 컨트랙트를 활용할 수 있다.
기본적인 구조가 A 충족, B 실행 이므로 조건으로 자산 입금, 실행으로 토큰 반환을 설정하면 내가 생성한 토큰을 다른 자산과 일정 비율로 자동 교환할 수 있다.
이 방식은 거래소의 Convert 기능 등으로 이용할 수 있다.
거래소는 예비로 보유중인 토큰을 사용자가 제출하는 토큰과 시장가 또는 자체적인 기준으로 교환하여 반환하는 스마트 컨트랙트를 이용하여 빠른 속도로 사용자가 요청한 토큰을 전달한다.
사용자는 스마트 컨트랙트가 실행되어 조건 충족 시 자동으로 교환 대상 토큰이 반환될 것을 기대할 수 있기 때문에 거래소의 신뢰도 영향을 줄이며 거래할 수 있다.