‘마스터링 이더리움’ 세미나 5-2 – 8장. 스마트 컨트랙트와 바이퍼

이번 세미나에서는 ‘8장. 스마트 컨트랙트와 바이퍼’를 다룹니다. 솔리디티가 대세인 상황에서 바이퍼가 ‘왜 등장했는지, 솔리디티와 비교해서 어떤 특장점이 있는지’ 정도만 파악하는 것을 목표로 합니다.

 

아래 요약한 내용을 다시 한 번 확인합니다.

  • 파이썬 문법과 유사합니다.
  • Vyper is designed to make it easier to write secure code, or equally to make it more difficult to accidentally write misleading or vulnerable code.
  • One of the ways in which Vyper tries to make unsafe code harder to write is by deliberately omitting some of Solidity’s features.
    • 바이퍼는 현재 작성하고 있는 코드(함수)에 부수적인 효과를 일으킬 수 있거나 해당 코드를 작성하는데 있어 집중도를 떨어뜨릴 수 있는 요소들(추가적으로 기억해야 하고 확인해야 할 것들을 만드는 요소들)을 제거합니다. 바이퍼는 솔리디티가 제공하는 다음과 같은 요소들을 제거했습니다.
      • Modifier
      • 클래스 상속
      • 인라인 어셈블리
      • 함수 오버로딩
      • 변수 형변환(명시적, 암시적)
        • 명시적으로 형변환을 하려면 convert 함수를 사용해야 한다.
          • 형변환으로 정보 손실이 발생하지 않음을 보장한다. 손실이 일어나는 경우는 예외를 발생시킨다.

 

바이퍼는 Design By Contract 개념을 중요시 합니다. 아래 인용한 본문 내용을 분명하게 이해하도록 합니다.

Vyper handles preconditions, postconditions, and state changes explicitly. When writing a smart contract in Vyper, a developer should observe the following three points:

  • Condition
    • What is the current state/condition of the Ethereum state variables?
  • Effects
    • What effects will this smart contract code have on the condition of the state variables upon execution? That is, what will be affected, and what will not be affected? Are these effects congruent with the smart contract’s intentions?
  • Interaction
    • After the first two considerations have been exhaustively dealt with, it is time to run the code. Before deployment, logically step through the code and consider all of the possible permanent outcomes, consequences, and scenarios of executing the code, including interactions with other contracts.

 

아래 요약한 내용을 확인합니다.

  • decorator 지원 – 함수 시작 부분에 사용할 수 있다.
    • @private, @public, @constant, @payable
  • 하나의 스마트 컨트랙트는 하나의 바이퍼 파일(.vy)로 구성 – 모든 함수, 변수 등을 포함하여 모든 바이퍼 스마트 컨트랙트 코드가 한곳에 존재한다.
  • 바이퍼는 변수 및 함수 선언을 특정 순서에 맞게 작성해야 한다.
  • 온라인 코드 편집기와 컴파일러 지원한다.
  • 컴파일러 수준에서 오버플로 오류를 방지한다.
About the Author
(주)뉴테크프라임 대표 김현남입니다. 저에 대해 좀 더 알기를 원하시는 분은 아래 링크를 참조하세요. http://www.umlcert.com/kimhn/

Leave a Reply

*