첫 번째 스마트 계약을 작성하고 배포하는 방법은 무엇입니까?

게시 됨: 2020-02-13

스마트 계약은 오늘날 블록체인 기술의 주요 트렌드입니다. 현장에서 경력을 쌓을 생각이라면 이 기사가 첫 번째 스마트 계약을 작성 하는 데 필요한 모든 정보를 제공하는 데 도움이 될 것입니다 !

세계 최고의 대학에서 온라인 소프트웨어 과정을 배우십시오. 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

목차

첫 번째 스마트 계약을 작성하는 방법?

오늘날의 디지털 시대에서는 두 당사자가 제3자의 개입 없이 계약을 체결할 수 있습니다. 이러한 디지털 계약은 블록체인에 의해 처리되고 공개 데이터베이스에 저장됩니다. 따라서 거래는 추적 가능하고 되돌릴 수 없습니다.

첫 번째 스마트 계약 을 작성하고 싶다면 아래에 정리된 리소스가 올바른 길을 안내할 것입니다.

읽기: 2020년을 위한 10가지 블록체인 동향 및 예측

스마트 계약 정의

'스마트 계약'이라는 용어는 1996년 미국 컴퓨터 과학자 Nick Szabo에 의해 처음 제안되었습니다. 이는 계약의 이행을 촉진, 검증 및 시행하는 컴퓨터 또는 디지털 프로토콜입니다. 범용 계산으로서 스마트 계약은 블록체인 또는 분산 원장에 있습니다.

즉, 계약은 컴퓨터 프로그램의 형태로 코드에 구축됩니다. 그리고 지정된 액터는 프로그램의 기능을 실행할 수 있는 권한을 받습니다. 스마트 계약을 성공적으로 실행하려면 미리 정의된 규칙을 충족해야 합니다.

예를 들어 구매 주문(PO)이 있습니다. 구매자와 판매자 간의 간단한 계약입니다. PO를 수행하려면 특정 조건이 충족되어야 합니다. 이러한 사양에는 구매자의 성공적인 지불, 구매 시 동의한 조건에 따른 공급자의 상품 배송, 반품 조건 등이 포함됩니다.

따라서 구매자는 주문을 할 수 있고 공급자는 디지털 형식으로 주문을 이행할 수 있습니다. 컴퓨팅 네트워크에서 모든 작업을 트랜잭션이라고 합니다. 그리고 모든 거래는 네트워크에 의해 확인되고 시행됩니다. 확인된 거래는 되돌릴 수 없습니다.

읽기: 블록체인을 배우기 위한 전제 조건. 그것은 당신이 생각하는 것이 아닙니다

스마트 계약 설정을 위한 요구 사항

스마트 계약을 구축하기 위해 다양한 프로그래밍 언어를 사용할 수 있습니다. 언어 선택은 주로 블록체인 플랫폼에 따라 다릅니다. 예를 들어 Solidity, Vyper, eWASM 및 Ethereum 바이트코드는 Ethereum 블록체인 플랫폼에서 가장 널리 사용되는 스마트 계약 언어입니다.

스마트 계약 개발 환경

첫 번째 스마트 계약 을 작성하기 전에 개발을 위한 놀이터를 설정하십시오. 개발 환경에 대한 지식 없이 블록체인 세계로 더 깊이 들어가는 것은 까다로울 것입니다. 다음 대안 중에서 선택할 수 있습니다.

  • Remix IDE: 스마트 계약을 구축하고 테스트하기 위한 통합 개발 환경입니다. 이 완전한 온라인 옵션은 설치가 필요하지 않으므로 초보자에게 적극 권장됩니다. 또한 스마트 계약의 프로토타이핑 및 빠른 검증에 대한 문제가 적습니다.
  • 로컬 설정: 로컬 시스템은 스마트 계약 개발을 위한 또 다른 리소스를 제공합니다. 이 도구는 엔터프라이즈급 애플리케이션에 더 큰 유연성을 제공합니다. 그리고 이 환경을 설정하는 데 시간이 걸리기는 하지만 분산 애플리케이션 또는 DApp을 위한 도구 선택은 상당히 간단한 프로세스입니다.

스마트 계약의 구조

Solidity 프로그래밍 언어를 사용하여 개발된 구매 주문 계약을 살펴보겠습니다.

Solidity 스마트 계약은 '데이터'와 '기능'으로 구성된 표준 구조를 따릅니다. 데이터가 스마트 계약의 현재 상태를 유지하는 동안 함수는 이 상태를 전환하는 논리를 적용합니다.

계약은 ' pragma 지시문 '이라는 문장으로 시작됩니다 . 키워드 "pragma"는 컴파일러 검사 또는 기능을 활성화합니다. 아래 진술을 고려하십시오.

프라그마 견고성 >=0.4.0 <=0.6.0

선언은 스마트 계약이 0.40 이전 및 0.60 이후의 컴파일러 버전으로 컴파일되지 않도록 하기 위한 것입니다.

다음은 ' 계약 선언 '입니다. 다음 명령문은 "contract" 키워드를 사용하고 "Purchase Order"라는 이름으로 빈 계약을 식별합니다.

계약 구매 주문{}

데이터 저장

모든 계약이나 컴퓨터 프로그램에는 데이터가 저장되어 있습니다. 변수는 데이터를 저장, 레이블 지정, 검색 및 조작하는 방법을 제공합니다. Solidity에는 Value와 Reference의 두 가지 유형의 변수가 있습니다. 값 유형 변수는 부울, 정수 등과 같은 함수 인수로 사용될 때 항상 복사됩니다.

반면 참조 유형 변수는 데이터 위치를 저장합니다. 한 참조 변수의 변경은 다른 변수에 영향을 줍니다. 따라서 신중하게 관리해야 합니다. 예에는 배열 및 구조체가 포함됩니다.

데이터 추가

구매 주문서에는 일반적으로 연관된 제품 수량이 있습니다. 이제 스마트 계약에 데이터 변수를 추가해 보겠습니다. 양수 값만 가질 것이라는 가정 하에 product_quantity 변수를 추가합니다.

먼저 uint256으로 표시되는 부호 없는 정수를 소개합니다. 여기서 unsigned(u)는 양의 정수만 표현할 수 있는 변수의 종류를 의미하고, 256은 256비트의 저장을 의미한다.

계약 구매 주문{uint256 product_quantity;}

건설자

생성자는 계약이 배포될 때 일부 값으로 스마트 계약을 초기화합니다. 제품 수량이 100으로 설정되어 있다고 가정합니다.

생성자() 공개{product_quantity = 100;}

키워드 또는 액세스 수정자 "public"은 기능이 제한되지 않음을 지정합니다. 따라서 누구나 액세스할 수 있습니다.

기능 추가

기능을 추가하면 프로그램이 대화형이 됩니다. 이는 "기능"이라는 키워드가 앞에 오는 제어된 기능입니다. 선언에는 함수 이름, 액세스 수정자, 상태 변경자 및 반환 값이 포함됩니다.

저장된 값을 읽기 위해 "get function"을 추가합니다. "get_quantity"를 사용하여 이 함수는 저장된 데이터를 검색하거나 읽을 수 있는 기능을 가져옵니다. 아래에 주어진 진술을 보십시오.

함수 get_quantity() 공개 보기 반환(uint256){return product_quantity;}

더 세분화하면 다음을 알 수 있습니다.

  • 함수 이름: get_quantity("()"는 매개변수가 전달되지 않음을 의미합니다)
  • 액세스 수정자: 공개(액세스가 제한되지 않음)
  • State Mutator: view(함수가 계약의 상태를 변경하지 않고 읽기만 함을 나타냄)
  • 반환값: 함수에 의해 반환되는 것을 정의합니다. 즉, uint256 유형의 변수입니다.

세터 기능

setter 기능은 데이터를 쓰거나 업데이트하려고 할 때 그림으로 나타납니다. 이 함수는 "product_quantity" 변수의 값을 업데이트하는 데 기반하여 사용자로부터 입력 매개변수를 받습니다. 설정 기능(update_quantity)은 다음과 같이 연결됩니다.

update_quantity(uint256 값) 공개 {product_quantity = product_quantity + 값;}

이제 위에 주어진 모든 명령문을 연결 하여 첫 번째 스마트 계약을 작성하십시오 .

스마트 계약 배포

앞에서 언급한 단계를 완료했으면 스마트 계약을 테스트할 시간입니다. 온라인에서 스마트 계약을 생성, 테스트 및 검증할 수 있는 Solidity 컴파일러 기능을 제공하는 Remix IDE를 사용하여 동일한 작업을 수행할 수 있습니다.

다음은 Remix Online IDE로 스마트 계약을 설계하고 배포하는 단계별 지침입니다.

  1. 더하기 아이콘을 클릭하여 새(빈) 파일을 만듭니다.
  2. 빈 파일을 열려면 클릭하십시오.
  3. 이 파일에 계약서 붙여넣기
  4. 왼쪽 메뉴로 이동하여 파일 아이콘 바로 아래에 있는 두 번째 아이콘을 클릭합니다. 이를 통해 solidity 컴파일러 옵션이 나타납니다.
  5. 컴파일러 레이블로 이동하여 컴파일러 버전 선택
  6. 스마트 계약을 컴파일하려면 파일을 클릭하십시오.
  7. 컴파일 후 컴파일러 세부 정보 버튼을 클릭하여 바이트 코드 및 애플리케이션 바이너리 인터페이스를 이해합니다. Bytecode는 변환 및 컴파일 후 Ethereum의 운영 코드와 스마트 계약 로직을 포함합니다.
  8. 왼쪽 메뉴에서 컴파일 아이콘 아래에 있는 아이콘을 클릭하여 스마트 계약을 배포합니다.

배포된 계약과 상호 작용

계약에 언급된 공개 메서드는 배포된 계약과 상호 작용하는 방법을 제공합니다. 구매 주문의 컨텍스트에서 "update_quantity" 및 "get_quantity"는 사용 가능한 두 가지 상호 작용 방법입니다. 입력 상자를 사용하여 매개변수를 입력할 수도 있습니다. 계약 변수를 변경하는 모든 작업은 트랜잭션으로 이어집니다.

이를 통해 첫 번째 스마트 계약을 작성 하는 방법과 온라인 개발 환경에서 Solidity 프로그래밍 언어를 사용하여 이를 테스트하고 배포하는 방법에 대한 기본 사항을 다뤘습니다 . 우리는 또한 스마트 계약과 상호 작용하고 거래를 시작하는 프로세스를 이해했습니다. 따라서 오늘 배운 내용을 적용하고 스마트 계약을 작성하십시오. 결국, 연습이 완벽을 만듭니다!

마무리

블록체인 기술 분야의 경력이 증가하고 있으며 블록체인은 기술 산업의 면모를 영원히 바꿔 놓았습니다. 블록체인 개발자가 되어 스마트 계약 및 체인 코드를 구축하는 데 관심이 있다면 IIIT-B & upGrad의 블록체인 기술 고급 인증 프로그램을 확인 하십시오.

스마트 계약의 가능한 응용 프로그램은 무엇입니까?

스마트 계약은 계약 조건을 자동으로 수행하는 컴퓨터 프로그램입니다. 그들은 안전하고 투명하며 변조 방지 트랜잭션을 가능하게 하는 분산 데이터베이스인 블록체인 기술을 사용합니다. 자동차 렌탈, 호텔 예약 및 이벤트 티켓은 스마트 계약이 어떻게 사용될 수 있는지 보여주는 몇 가지 예일 뿐입니다.

스마트 계약이 일반 계약보다 더 안전한 것으로 간주되는 이유는 무엇입니까?

스마트 계약은 블록체인 네트워크에서 구현되기 때문에 기존 계약보다 더 안전한 것으로 간주됩니다. 블록체인은 암호화된 보안 분산 데이터베이스입니다. 이는 블록체인의 정보를 변조하거나 해킹할 수 없음을 의미합니다. 결과적으로 스마트 계약의 실행은 정확하고 신뢰할 수 있습니다. 또한 공개되고 감사할 수 있습니다. 즉, 블록체인의 모든 사람이 계약 조건을 보고 수행되고 있는지 확인할 수 있습니다. 반면에 스마트 계약은 사기와 갈등의 위험을 낮추는 데 도움이 될 수 있습니다. 결론은 기능이 많고 사용하기 쉽다는 것입니다.

스마트 계약이 인기를 얻는 이유는 무엇입니까?

스마트 계약의 가장 중요한 이점 중 하나는 절차를 자동화하고 비용을 낮추는 데 조직을 지원할 수 있다는 것입니다. 예를 들어, 회사는 스마트 계약을 활용하여 배송이 이루어진 직후 공급업체에 지불할 수 있습니다. 이렇게 하면 회사에서 수동으로 지불을 처리할 필요가 줄어들어 시간과 비용이 모두 절약됩니다. 또한 기업과 고객 간의 신뢰를 구축하는 데 사용할 수 있습니다. 예를 들어 스마트 계약을 사용하여 안전한 온라인 지불 시스템을 구축할 수 있습니다. 이를 통해 고객은 개인 정보가 손상될 염려 없이 결제할 수 있습니다. 마지막으로 중요한 것은 사람과 기업 모두를 위한 디지털 ID를 구성하는 데 사용할 수 있다는 것입니다. 기업은 고객의 신원을 인증하고 이로 인해 사기로부터 고객을 보호할 수 있습니다.