Browse Tag: 이더리움

[블록체인]스마트계약 2(geth 설치)

ether 개발 환경을 설정하는 과정에 대해 설명하는 글이다.

Geth를 사용하기 위해서는 “Go”가 먼저 설치 되어야 한다.

Go를 설치하는 과정은 편한 방법으로…

우선 우분투 환경(AWS 우분투 사용)에서

Go version 을 확인했으면 Go 설치완료

geth version 확인 했으면 geth 설치완료

 

이후 ether를 사설 테스트넷에서 사용해보기 위해서는 최초 블럭 정보가 필요하다. 최초 블록 정보가 포함된 파일을 ether에서는 genesis 파일이라고 부른다.

원하는 위치에 genesis.json 을 만들고 geth 에 genesis 파일의 위치를 알려주면 된다.

genesis.json 파일

이후 geth에 genesis.json 의 위치를 등록시켜 주자

그리고 geth을 console에서 실행시켜 주면 ether 개발 환경 준비 끝

 

 

출처 : 블록체인 애플리케이션 개발실전 입문@위키북스

[블록체인]스마트계약(1)

 

스마트계약 이라는 용어는 비트코인 이전에 나온 개념이다.

스마트 컨트랙트는 Nick Szabo가 1994년 최초 제안한 개념입니다. 기존 계약서(Contract)는 서면으로 되어있어 계약 조건을 이행하려면 실제 사람이 계약서 대로 수행을 해야 하지만 디지털 명령어로 계약을 작성하면 조건에 따라 계약 내용을 자동으로 실행할 수 있는 것입니다.

94년도에 나온 스마트계약이라는 개념이 블록체인과 결합되며 새로운 기술로 등장했다고 보면될거 같다.

일단 스마트계약은 블록체인 네트워크 상에서 블록이 생성될때 블록과 함께 작동하는 특정 프로그램을 같이 넣어두는 것을 말한다. 좀더 정확히 말하면 스마트 계약은 블록체인에서 동작하는 응용프로그램의 단위이다.

사실 스마트계약의 개발 흐름은 서버/클라이언트 구조와 유사하다. 결국 지갑과 같은 노드(클라이언트)가 이더리움 네트워크(서버)에 연결되어 서버의 프로그램을 실행하며 특정 로직이 수행되는 구조다.

기존으 서버/클라이언트 구조와 비슷하다면 왜 스마트계약이 많은 관심을 받고 있는지 생각해보면 결국 블록체인의 장점 때문이다. P2P 네트워크상에서 배포되는 프로그램은 믿을수 없다.(누가 악성 프로그램을 배포할지 알 수 없음) 하지만, 블록체인은 합의 알고리즘을 통해 블록이 생성 되기 때문에 생성된 블록에 포함된 프로그램은 믿을 수 있을만하다고 생각하는 것이다. (이더리움은 캐스퍼라는 지분증명 방식의 합의알고리즘을 사용한다.)

또한, 스마트 계약의 함수들은 입력값과 그 소스들이 공개되어 있고 ABI라는 계약 객체를 통해 함수 내용을 누구나 확인 할 수 있다. 이런 배경을 바탕으로 결국 이더리움 네트워크에는 믿을 수 있는 스마트계약(프로그램)이 돌아 다니고 그 프로그램을 사용하는 노드들은 의심 없이 스마트계약을 실행하면 되는것이다.

스마트 계약을 예시로 이해해보겠다.

가령 A라는 소비자가 마트에서 물건을 구매했을 때(이더리움으로 전송) 트랜잭션이 발생한다. 이 때 ,블록에 포함되어 있던 스마트계약에 의해 A가 지불한 구매대금의 0.3%는 적립금으로 다시 A의 지갑으로 돌아간다. 그리고 해당 내용(구매 대금이 A->마트로 이동, 0.3%의 적립금 마트 -> A로 이동, 스마트계약 이행 Gas fee)이 포함된 블록이 생성된다.

다음글에서 좀 더 디테일한 스마트 계약을 살펴 보겠지만 스마트 계약에 대해 성급한 결론을 내리자면,

중앙의 기관(정부 or 은행)이 없는 상태에서 Node와 Node간에 트랜잭션이 일어날때 미리 준비된 스마트계약 이라는 프로그램이 강제로 실행되고 이렇게 해서 계약을 공증하는 기관이 없더라도 계약은 이행 된다는 것이 스마트 계약이다.

출처 : 블록체인 애플리케이션 개발실전 입문@위키북스 , https://blog.theloop.co.kr/2017/03/28/스마트-컨트랙트smart-contract-개요-1/

Continue Reading