Vyper.
#1.Summary.
아무래도 Ethereum 관련 개념 중에 요새 주목받고 있는 Vyper에 대해 알아야겠다는 생각을 했다. 일단 이 글에서는 Vyper의 이론적 요소들을 말하고 차후에 다른 글에서 프로그래밍적 요소들을 설명해보겠다. 나도 배우는 입장에서 많이 알고 있지는 않기에 참고 수준으로 봐주시면 될 거 같다.
#2.What is Vyper?
Ethereum에서 Vyper라는 새로운 프로그래밍 언어를 발표했다. 현재 출시된 버전은 Vyper v0.1.0-beta.1로 베타 버전이고, Solidity와 유사한 EVM(Ethereum Virtual Machine) 바이트 코드로 컴파일되고, 코딩의 구성이 Python과 비슷하다.
다시 말해 Vyper는 EVM-이더리움의 가상 머신 바이트 코드로 컴파일 된다는 것이 특징이다. 보다 더 전체 프로세스를 보다 쉽고 사용자에게 친숙한 환경이다. Vyper의 특징은 스마트 계약에 대한 이해를 단순화하는 것이다. Ethereum의 핵심인 스마트 계약이 완벽하고 효과적으로 실행되기 위해서 코드는 매우 효율적이어야 한다. 이 요구 사항을 충족시키지 못하면 여러 문제가 발생한다.
#3.Vyper's Goals.
1.보안 ==> Vyper에서 안전한 스마트 계약을 구축하는 것이 가능하다.
2.언어 및 컴파일러 간소화 ==> 언어 및 컴파일러 구현은 단순해지도록 노력해야 한다.
3.감사성 ==> Vyper 코드는 최대한 인간이 읽을 수 있어야 한다. 또한 코드를 작성하는 것은 어려워야 한다. 단순성은 중요하며 Vyper에 대한 이전의 경험이 적은 사용자에게는 단순함은 특히 중요하다.
#4.Features of Vyper.
Vyper의 v0.1.0-beta.1에 대해 많은 의견들이 존재한다. Vyper는 일단 단순하고 손쉬운 방법을 위해 클래스 상속과 함수 오버로딩을 중단.
왜냐하면 연산자 오버로딩과 재귀는 둘 다 제거되며 튜링 완성 언어를 실행하는데 필요없다고 여겨지기 때문이다.
1.범위 및 오버플로우 확인 ==> 배열 액세스는 물론 산술 수준에서도 가능.
2.부호있는 정수 및 십진수 고정 소수점 숫자 지원.
3.결정 가능성 ==> 모든 함수 호출의 가스 소비에 대한 정확한 상한을 계산할 수 있어야 한다.
4.강력한 타이핑 ==> 단위 지원.
5.작고 이해 가능한 컴파일러 코드.
6.순수 함수에 대한 제한된 지원 ==> 상수로 표시된 것은 상태를 변경할 수 없다.
cf) 수정자, 클래스 상속, 인라인 어셈블리, 함수 오버로딩, 연산자 오버로딩, 재귀 호출, 무한 길이 루프, 2진 고정 소수점 등을 제공하지 않는다.
#5.About Vyper.
Vyper는 가능한 파이썬과 비슷하게 만들었지만 Python 또는 Solidity를 대체하기 위한 시작 단계는 아니지만 최고 수준의 보안이 필요한 경우 사용할 언어다. 즉 Vyper는 단순성을 목표로하지만 보안을 위해 더 어려워 질 것 같다. Solidity보다 상대적으로 좋은 부분도 있다.물론 사용 목적에 따라 Vyper를 사용하거나 Solidity를 사용하면 될 것 같다. 아직인지 개발 목표인지는 모르겠지만 Solidity를 대체한다기 보다는 결국 같은 바이트코드를 사용하므로 Vyper와 병행해서 보안성을 더 높일 수 있다고 한다. 아직 Solidity도 보완할 부분이 많은 만큼 Vyper도 보완할 부분이 많을 것 같다. 확실한 건 Vyper는 최고 수준의 보안이 요구될 때 도움이 될 것이다. 스마트 컨트랙트에서 이더리움의 가독성과 보안에 중점을 둔 Vyper를 통해 이더리움은 더욱 더 발전할 것이다.
#6.Additional Explanation of Vyper.
https://github.com/ethereum/vyper
1.일단 Solidity 글에서도 말했지만 Vyper를 사용하는 방법에는 온라인과 오프라인 2가지가 존재한다. 일단 오프라인 방법으로 첨부한 주소로 들어간다.
위의 화면에 빨간색으로 표시했듯이 Clone or download를 누른 후 Download ZIP를 선택해서 코드를 다운받으면 된다. ZIP File을 원하는 폴더안에 저장하고 압축을 풀어주면 된다. 압축을 푼 후 index.html를 실행하면 된다.
https://vyper.readthedocs.io/en/latest/installing-vyper.html
2.그리고 위의 첨부한 주소로 들어가서 설치 가이드를 통해 환경을 설정하면 된다.
3.Solidity의 Remix처럼 Vyper도 온라인으로 사용할 수 있는 방법이 있다. ==> https://vyper.online/
4.들어가보면 알겠지만 뭔가 아직 베타 느낌이 확나긴 한다.
cf) https://vyper.readthedocs.io/en/latest/index.html <== Vyper에 대한 설명 대부분이 있고, 샘플 코드도 있어서 Vyper를 알아가는 데 좋다.
'#Virtual Currency & BlockChain' 카테고리의 다른 글
Mastering Bitcoin 2nd Edition. (0) | 2019.01.07 |
---|---|
Japan's Economic Outlook and Major Issues in 2019. (0) | 2019.01.05 |
Solidity. (0) | 2018.11.06 |
DASP Top 10. (0) | 2018.10.15 |
Bitcoin White Paper. (0) | 2018.09.27 |