닫기

이더리움 읽기

읽기

[이더리움] 블록과 계약의 연결(스마트 컨트랙트) [4]

작성자:     작성일시: 작성일2018-01-11 17:42:38    조회: 229회    댓글: 4
 

이더리움을 공부하기 시작하면서 스마트 컨트랙트를 어떻게 설명해야하는지 고민에 빠졌었습니다.

그냥 정말 쉽게 컴퓨터 프로그래밍으로 만든 계약이야 하고 끝낼 수는 없으니까요.

그래서 한마디를 붙이면? 조건이 맞으면 자동실행되고 강제로 되는 거라 무를 수 없어.

또 붙이면? 프로그래밍으로 모든 것을 구현할 수 있는 튜링 완전한 언어로 되어있어서 무슨 계약이든 만들 수 있어

이렇게 설명하면 안 하니만 못하겠죠. 어디에 사용하는지도 설명해야하고, 어떻게 굴러가는지도 설명해야하고, 어떻게 생겨먹은 놈인지도 설명해야하고.. 그러다 보니 이것 저것 찾아서 읽기만 하게 되고..흐음..

그러다 문득 생각이 났습니다. 튜링 완전한 언어를 설명하는데 예시로 자주 나오는 것이 스마트 폰 입니다. 거의 모든 것을 할 수 있다는 의미로 자주 거론되죠.

그럼 저희가 거의 손에서 떼지 못하는 스마트폰의 정의를 내리면??? 글쎄요... 전 못하겠네요.ㅎ

제가 너무 크게 생각한 거 아닌가 싶어서 적어봤습니다. 그냥 궁금했던 것부터 쉽게 가자 싶어서.ㅎ
조금씩 내용을 모아서 스마트 컨트랙트가 이런거다 말할 수 있음 좋겠네요.

그래두 시작은 해야하니 우선 스마트 컨트랙트가 조건을 달아서 그 조건이 맞으면 다음 행동을 하게 하는 계약이라고 간단히 이해하고 넘어가보겠습니다.

이더리움을 알게 되면서 제가 제일 궁금했던 것은 스마트 컨트랙트가 블록체인에서 어떻게 구현되는 가 하는 것이었습니다.

비트코인은 당사자끼리의 약속에 따라 거래가 이루어 집니다.

비트 거래.jpg

A와 B가 자동차 계약을 하면서 A가 그 자동차의 댓가로 5BTC를 주겠다고 하면 (그 차 비싸네요..) A는 자신이 보내는 5BTC에 관한 거래 트랜잭션을 블록에 포함시키고 B는 그 거래가 승인되는 순간 5BTC를 받을 수 있었습니다.
거래를 담은 블록 하나로 끝나는 것이었죠.

그런데 스마트 컨트랙트는 여러가지 조건을 담고 그 조건이 충족되면 실행되게 만든 것입니다.

위에 예를 가져와서 조건을 만들어 보면,
B가 A에게 계약금조로 1BTC를 요구합니다. A는 B에게 계약금 1BTC를 보내 자동차를 다른 사람에게 못 팔도록 계약을 하고 B에게 중고차가 아니라는 품질 보증이 안되면 계약을 파기한다는 조건을 달았습니다. 중고차가 아니라면 A가 나머지 4BTC의 잔금을 내고 자동차를 사게 되겠죠.

이 모든 내용을 하나의 블록에 담아 한번에 처리할 수는 없을 것입니다. 만나서 한꺼번에 처리하고 블록에 신고하는게 아니라면요.
블록체인이 시간순으로 쌓이는 것이니만큼 저 계약 내용도 하나씩 시간 순으로 쌓이게 됩니다.

차를 거래하기로 서로 합의를 하는 과정부터 시작할 수 있겠지만, 여기선 위에 조건만 이해해 보겠습니다.

우선 B는 A에게 계약금을 요구하는 메세지를 블록에 포함시킵니다.

블록201.jpg

A가 동의를 한다면, A는 자신이 가진 1BTC 보내면서 중고차가 아니라는 품질 보증을 요구하는 계약 내용을 다음 블록에 포함시켜 보내겠죠.

블록 202.jpg

비트코인에서는 트랜잭션의 의미가 비트코인의 움직임만을 담는 것이었습니다. 그래서 TXID라고 하면 그 안에 비트코인 거래에 관한 내용을 담고 있었죠. 하지만 이더리움 블록체인에서는 트랜잭션 안에 메세지 자체만 보내거나 저 1BTC라는 화폐의 전송과 더불어 계약 내용을 담을 수 있습니다. 위에 경우에서 계약금을 요구하거나, 계약금을 주면 다른 사람에게 차를 팔지 못한다 등의 내용이 되겠죠.

비트코인의 지갑과 다르게 이더리움에는 Account라는 개념이 있습니다. 이 계정(Account)에는 비트코인의 지갑과 같이 화폐의 움직임을 다루는 계정(External Owned Account)과 계약 내용을 다루는 계정(Contract Account)이 따로 있는데, 이 두 계정에서 만든 내용이 트랜잭션에 같이 들어가게 됩니다.
이 계정의 개념이 비트코인과 차이가 나는 중요한 부분입니다. 우선 블록체인에 담기는 과정에 대해서 보고 있으니 이 계정(Account)에 대한 내용은 다음 포스트에서 다루겠습니다.

계약으로 돌아가서, B가 A가 보낸 계약 내용에 동의를 한다면 B는 품질 보증서를 보내는 트랜잭션을 다음 블록에 포함시킬 것입니다.

블록 203.jpg

그리고 A가 그 내용에 만족한다면 나머지 잔금 4BTC를 보내는 트랜잭션을 만들어 블록에 담을 것입니다. 그러면 B가 4BTC를 받고 A는 자동차를 받아 계약이 끝나겠죠.

블록 204.jpg

차를 받는 건? 하실지 모르겠지만.ㅎ 단순화 시켜서 블록의 담기는 과정을 살펴봤습니다.

위와 같이 블록에 담기기만 하면 계약이 안전하게 성사되는 게 아니겠죠. 중간에 계약을 어길 수도 있으니까요.

비트코인 블록체인에서도 봤듯이 블록체인은 전 블록의 해시를 연결하여 체인을 만드는 것이고 그 과정이 제 3자의 신뢰가 필요없게 만들어줍니다. 이더리움 블록체인도 마찬가지로 전 블록의 해시를 새로 생성하는 블록에 포함시킵니다. 여기서 다른 점이 있다면 비트코인은 비트코인의 이동 과정만을 담는다면, 이더리움은 계약의 내용과 진행과정이 담긴다는 것입니다. 위의 예와 같이 계약이 성사되어 가는 과정이 전 블록에 해시 형태로 담겨있으니 변경할 수 없는 계약이 되는 것이죠.
비트코인이 화폐의 흐름을 블록 해시로 연결하여 이중지불문제나 신뢰성 문제를 해결했다면, 이더리움은 계약의 내용까지 블록 해시로 연결하여 자동차 딜러와 같이 신뢰할 수 있는 제 3자가 필요없는 계약을 만든 것입니다.

처음 이더리움을 접하면서 Dapp(Decentralized Application)이라는 개념이 잡혀있지 않아 이 부분이 상당히 궁금했습니다.
제가 아는 앱은 애니팡 같은 거였거든요. 접속하면 제 핸드폰으로 즐길 수 있는.
그래서 스마트 컨트랙트를 Dapp에서 구동시키고 그 결과를 블록체인에 올리는 건가 했습니다. 댑이 블록체인 위에서 운용되는 것이니 만큼 결론적으로는 맞는 이야기인데, 제가 잘못 이해한 것은 Dapp을 내 핸드폰에서 구동시키는
게 아니라는 것과 계약 내용 하나하나가 트랜잭션이 된다는 것이었습니다.

이렇게 모든 계약 내용이 하나의 트랜잭션을 이루고 그것을 블록에 다 담아야하는데 수많은 트랜잭션을 일으키는 댑들이 우후죽순 생기면 저걸 우찌 감당하지라는 생각이 드시죠? ㅎㅎ(또 저만 그런가요...)
댑 하나에 트랜잭션 문제가 생기던 이더리움의 스케일링 문제가 새삼 심각하게 느껴지네요.

[출처] https://steemit.com/kr/@feyee95/5v8uyy

  추천 1   비추천 0
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 밴드로 보내기

댓글목록

 

전체: 354개 (1/11페이지)
이더리움 목록
제목 글쓴이 조회 추천 비추천 날짜
  글 작성하고 후원을 받아보세요!! 124 0 0 03-23
이더리움 ethereumj(JAVA) v1.8.2 핫픽스 릴리즈 되었습니다 213 0 0 08-13
이더리움 Parity v1.11.7 릴리즈 되었습니다. 93 0 0 07-18
이더 보유하고 있다가 12월 불장에 못팔아서... 167 0 0 07-11
이더리움 네트워크 해시율이 292kGH/s로 사상 최고치를 경신하였습니다. 113 0 0 07-10
이더리움 게임이나하죠ㅋㅋㅋ 108 0 0 07-05
mew에서 에어드랍 받은것중 국내거래소에 상장한거 있나요? 95 0 0 07-05
이더리움 전고점 이제 안올까요 181 0 0 07-04
이더리움 백서(10편) 195 0 0 04-17
이더리움 오프체인 방식의 새로운 솔루션? Liquidity.network 292 0 0 03-12
이더리움 커뮤니티 펀드 조성 Ethereum Community Fund (2018.02.16) 223 0 0 02-22
우리 이더 그나마 잘버티고있네여 181 0 0 02-22
이더리움 커뮤니티 펀드 런칭 201 0 0 02-18
이더리움 가격 예측 : 이더리움 가치는 2018년에 3배로 증가할 수 있다 [3] 471 1 0 02-14
이더리움은 월스트리트를 대체할 수 있을까 202 0 0 02-09
이더리움 캐스퍼 Proof of Stake 도입: 아이스 에이지 (Ice Age)가 이더리움의 판도를 바꿀 … 618 0 0 02-05
개발자가 마이닝, 구매 없이 이더리움을 얻는 방법들 423 0 0 02-05
2018년은 이더리움의 해가 뜬다. [2] 607 0 0 01-30
이더리움 15% 상승의 배경 3가지 230 0 0 01-29
이더리움과 샤딩 (Ethereum And Sharding) 623 0 0 01-29
이더리움 호재 174 0 0 01-29
이더리움 샤딩(sharding) 로드맵의 첫 번째 파트가 거의 완성됨 190 0 0 01-29
[이더리움 블록체인 기반 음악플랫폼 Voise 출시] 187 0 0 01-26
이더리움 핵심 개요 정리 793 0 0 01-23
Hashed People: 이더리움 파운데이션의 경제학자, Jon Choi가 말하는 크립토 경제학의 세계 [1] 171 0 0 01-18
이더리움 ERC20 토큰 탈중앙화 개인간(P2P) 거래소 Paradex (0x 프로토콜 기반), 메인넷 베타… 220 0 0 01-13
>>  [이더리움] 블록과 계약의 연결(스마트 컨트랙트) [4] 230 1 0 01-11
[블록체인] 크립토키티가 가져올 영향 [2] 219 2 0 01-11
이더리움 와리가리 심하네....... 168 0 0 01-11
이더리움의 새로운 킬러앱 이더레이싱!! [1] 432 0 0 01-04
창시자 Vitalik Buterin, 이더리움 재단을 대표로 스케일링 솔루션에 대한 연구, 개발 자금 지원 … [1] 252 0 0 01-03
이더리움 하드포크 319 0 0 12-31
진짜 애즈으이 이더리움... 198 0 0 12-29
여러분이 생각하는 이더의 장점? 272 0 0 12-28
이더 다들 몇층이신지?? [5] 645 0 0 12-22