우선 스마트 컨트랙트가 조건을 달아서 그 조건이 맞으면 다음 행동을 하게 하는 계약이라고 간단히 이해하고 넘어가보겠습니다.
이더리움을 알게 되면서 제가 제일 궁금했던 것은 스마트 컨트랙트가 블록체인에서 어떻게 구현되는 가 하는 것이었습니다.
비트코인은 당사자끼리의 약속에 따라 거래가 이루어 집니다.
A와 B가 자동차 계약을 하면서 A가 그 자동차의 댓가로 5BTC를 주겠다고 하면 (그 차 비싸네요..) A는 자신이 보내는 5BTC에 관한 거래 트랜잭션을 블록에 포함시키고 B는 그 거래가 승인되는 순간 5BTC를 받을 수 있었습니다.
거래를 담은 블록 하나로 끝나는 것이었죠.
그런데 스마트 컨트랙트는 여러가지 조건을 담고 그 조건이 충족되면 실행되게 만든 것입니다.
위에 예를 가져와서 조건을 만들어 보면,
B가 A에게 계약금조로 1BTC를 요구합니다. A는 B에게 계약금 1BTC를 보내 자동차를 다른 사람에게 못 팔도록 계약을 하고 B에게 중고차가 아니라는 품질 보증이 안되면 계약을 파기한다는 조건을 달았습니다. 중고차가 아니라면 A가 나머지 4BTC의 잔금을 내고 자동차를 사게 되겠죠.
이 모든 내용을 하나의 블록에 담아 한번에 처리할 수는 없을 것입니다. 만나서 한꺼번에 처리하고 블록에 신고하는게 아니라면요.
블록체인이 시간순으로 쌓이는 것이니만큼 저 계약 내용도 하나씩 시간 순으로 쌓이게 됩니다.
차를 거래하기로 서로 합의를 하는 과정부터 시작할 수 있겠지만, 여기선 위에 조건만 이해해 보겠습니다.
우선 B는 A에게 계약금을 요구하는 메세지를 블록에 포함시킵니다.
A가 동의를 한다면, A는 자신이 가진 1BTC 보내면서 중고차가 아니라는 품질 보증을 요구하는 계약 내용을 다음 블록에 포함시켜 보내겠죠.
비트코인에서는 트랜잭션의 의미가 비트코인의 움직임만을 담는 것이었습니다. 그래서 TXID라고 하면 그 안에 비트코인 거래에 관한 내용을 담고 있었죠. 하지만 이더리움 블록체인에서는 트랜잭션 안에 메세지 자체만 보내거나 저 1BTC라는 화폐의 전송과 더불어 계약 내용을 담을 수 있습니다. 위에 경우에서 계약금을 요구하거나, 계약금을 주면 다른 사람에게 차를 팔지 못한다 등의 내용이 되겠죠.
비트코인의 지갑과 다르게 이더리움에는 Account라는 개념이 있습니다. 이 계정(Account)에는 비트코인의 지갑과 같이 화폐의 움직임을 다루는 계정(External Owned Account)과 계약 내용을 다루는 계정(Contract Account)이 따로 있는데, 이 두 계정에서 만든 내용이 트랜잭션에 같이 들어가게 됩니다.
이 계정의 개념이 비트코인과 차이가 나는 중요한 부분입니다. 우선 블록체인에 담기는 과정에 대해서 보고 있으니 이 계정(Account)에 대한 내용은 다음 포스트에서 다루겠습니다.
계약으로 돌아가서, B가 A가 보낸 계약 내용에 동의를 한다면 B는 품질 보증서를 보내는 트랜잭션을 다음 블록에 포함시킬 것입니다.
그리고 A가 그 내용에 만족한다면 나머지 잔금 4BTC를 보내는 트랜잭션을 만들어 블록에 담을 것입니다. 그러면 B가 4BTC를 받고 A는 자동차를 받아 계약이 끝나겠죠.
차를 받는 건? 하실지 모르겠지만.ㅎ 단순화 시켜서 블록의 담기는 과정을 살펴봤습니다.
위와 같이 블록에 담기기만 하면 계약이 안전하게 성사되는 게 아니겠죠. 중간에 계약을 어길 수도 있으니까요.
비트코인 블록체인에서도 봤듯이 블록체인은 전 블록의 해시를 연결하여 체인을 만드는 것이고 그 과정이 제 3자의 신뢰가 필요없게 만들어줍니다. 이더리움 블록체인도 마찬가지로 전 블록의 해시를 새로 생성하는 블록에 포함시킵니다. 여기서 다른 점이 있다면 비트코인은 비트코인의 이동 과정만을 담는다면, 이더리움은 계약의 내용과 진행과정이 담긴다는 것입니다. 위의 예와 같이 계약이 성사되어 가는 과정이 전 블록에 해시 형태로 담겨있으니 변경할 수 없는 계약이 되는 것이죠.
비트코인이 화폐의 흐름을 블록 해시로 연결하여 이중지불문제나 신뢰성 문제를 해결했다면, 이더리움은 계약의 내용까지 블록 해시로 연결하여 자동차 딜러와 같이 신뢰할 수 있는 제 3자가 필요없는 계약을 만든 것입니다.
처음 이더리움을 접하면서 Dapp(Decentralized Application)이라는 개념이 잡혀있지 않아 이 부분이 상당히 궁금했습니다.
제가 아는 앱은 애니팡 같은 거였거든요. 접속하면 제 핸드폰으로 즐길 수 있는.
그래서 스마트 컨트랙트를 Dapp에서 구동시키고 그 결과를 블록체인에 올리는 건가 했습니다. 댑이 블록체인 위에서 운용되는 것이니 만큼 결론적으로는 맞는 이야기인데, 제가 잘못 이해한 것은 Dapp을 내 핸드폰에서 구동시키는
게 아니라는 것과 계약 내용 하나하나가 트랜잭션이 된다는 것이었습니다.
*조금이라도 이해하시는데 도움이 되시길 바랍니다
첫댓글 감사합니다
감사합니다^^
감사합니다. 잘 보았습니다.
감사합니다
감사합니다
정보 감사합니다
설명 감사합니다. :)
설명 감사합니다~~~