

저자: Frank, Foresight News
저자: Frank, Foresight News
어젯밤부터 Vyper 개별 버전의 재진입 잠금 실패로 인해 alETH/msETH/pETH 등 Curve의 스테이블 풀이 해킹되어 암호화폐계에 일련의 DeFi 2차 재난과 충격이 촉발되었으며, 오늘도 여전히 발효중이에요.
이는 DeFi 세계에서 스마트 계약의 언어 계층에 있는 버그를 직접적으로 표적으로 삼는 드문 사건이기도 합니다. 그러나 암호화계의 신문에서 흔히 볼 수 있는 Solidity 언어에 비하면 Vyper는 실제로 그다지 잘 알려져 있지 않습니다.
그렇다면 Vyper는 정확히 무엇이고, DeFi 세계에서 어떤 역할을 하며, Vyper의 버그가 업계의 관심을 끄는 이유는 무엇일까요? 이 기사에서 Foresight News는 현재 최첨단에 있는 Vyper 언어를 이해하도록 안내합니다.
Vyper: 두 번째로 인기 있는 스마트 계약 프로그래밍 언어
2017년 Vyper가 만들어지기 전에는 개발자가 스마트 계약을 작성하는 데 사용하는 가장 일반적인 언어는 Solidity였습니다. Solidity와 마찬가지로 Vyper는 Ethereum Virtual Machine(EVM)의 바이트 코드로 컴파일되어 EVM에서 실행될 수 있는 스마트 계약 지향 프로그래밍 언어입니다.
결과적으로 채택률 측면에서 현재 Vyper는 Solidity 다음으로 두 번째로 큰 EVM 호환 스마트 계약 프로그래밍 언어이기도 합니다. 공격 전 DeFiLlama의 최신 통계는 다음과 같습니다.
현재 DeFi 개발 패턴(TVL 비율 차원)에서 Solidity는 94.71%의 시장 점유율로 절대 독점 위치를 차지하고 있으며 Vyper는 3.04%의 시장 점유율로 2위를 차지하고 있습니다.
현재 DeFi 개발 패턴(TVL 비율 차원)에서 Solidity는 94.71%의 시장 점유율로 절대 독점 위치를 차지하고 있으며 Vyper는 3.04%의 시장 점유율로 2위를 차지하고 있습니다.
3위부터 출발한 러스트(0.9%), 카이로(0.53%), 하스켈(0.26%)은 벼랑에서 떨어졌다.
Python 기반 기능 외에도 Vyper는 객체 지향 패턴, 인라인 어셈블리를 사용하지 않으며 코드 재사용, 수정자, 상속, 함수 오버로딩, 재귀 호출, 무한 길이 루프 및 이진 고정 길이 부동 소수점을 지원하지 않습니다. .
또한 보안, 가독성, 감사 가능성 및 가스 효율성에 최적화되어 있습니다.
보안: Vyper에서 안전한 스마트 계약 구축을 지원합니다.
가독성: Vyper의 스마트 계약 언어 및 컴파일러 구현은 특히 Vyper에 대한 경험이 없고 일반적으로 프로그래밍 경험이 없는 사용자의 경우 코드 가독성을 향상시키기 위해 간단하게 노력합니다.
감사 가능성: Vyper 코드는 가능한 한 읽기 쉽고 간단한 아키텍처로 소프트웨어 오류를 줄이고 스마트 계약의 감사 가능성을 향상시킵니다.
Vyper의 창립자인 John Max Skaller는 Vyper가 두 가지 이유 때문에 만들어졌다고 말했습니다: 첫째, 저는 Python, 특히 단순성을 좋아하지만 모든 것이 진행되기 위해 많은 변경이 필요한 범위 결정론이 부족한 것은 마음에 들지 않습니다. 그래서 저는 훨씬 더 높은 수준의 프로그래밍 언어를 구축하고 그 안에 함수형 프로그래밍 언어의 일부 개념을 구축하는 동시에 Python과의 호환성을 유지함으로써 이러한 문제를 해결하기로 결정했습니다.
두 번째 이유는 성능입니다. 저는 Python의 구조가 부족하고 성능 문제가 있는 읽기 쓰기 프로그래밍 도구인 interscript라는 기본 Python 프로그램을 가지고 있습니다.
일반적으로 Vyper의 원래 설계 의도는 보안을 보장하기 위해 가독성과 감사 가능성에 중점을 두고 스마트 계약 참가자가 이해하기 쉬운 투명한 스마트 계약의 단순화된 프로세스를 만드는 것입니다.
바이퍼의 장점과 단점
본 장에서 언급되는 Vyper의 장점과 단점은 주로 Solidity 언어와 비교되는데, 결국 위에서 언급한 시장 점유율의 관점에서 볼 때 다른 스마트 계약 언어는 아직 큰 환경을 형성하지 못했습니다.
첫째, Solidity에 비해 Vyper의 가장 큰 장점 중 하나는 Python 기반 특성입니다. 따라서 Vyper는 Solidity만큼 강력하고 대중적이지는 않지만 Python에 익숙한 개발자가 선택하는 이상적인 언어입니다.
동시에 Vyper 컴파일러는 스택 대신 메모리에 지역 변수를 저장하도록 선택하여 계약을 더 간단하고 효율적으로 만들고 다른 고급 언어에서 흔히 발생하는 너무 깊은 스택 문제를 해결합니다.
Vyper는 또한 Solidity 및 Yul의 거의 모든 기능이 Vyper에서도 구현될 수 있도록 더 많은 내장 기능을 제공합니다. 개발자는 내장된 기능을 통해 하위 수준 비트 작업, 외부 호출 및 프록시 계약 작업에 액세스할 수 있으며, 컴파일 타임에 오버레이 파일을 제공하여 사용자 정의 스토리지 레이아웃을 구현할 수 있습니다.
Solidity와 비교할 때 Vyper는 명백한 단점이 있습니다. 주로 Solidity보다 새로운 언어이기 때문에 당연히 개발자 유지 관리 및 커뮤니티 도구의 단점이 가장 큰 타격을 입습니다.
Vyper는 여전히 Solidity가 제공하는 광범위한 커뮤니티 지원이 부족합니다. Solidity는 안전한 스마트 계약 개발을 위한 오픈 소스 라이브러리를 제공하는 OpenZeppelin, Remix 온라인 IDE 및 로컬 개발자 환경인 Hardhat이 제공하는 IDE와 같은 우수한 개발 도구를 많이 보유하고 있습니다. DApp을 쉽게 개발할 수 있는 도구와 기능을 제공합니다.
글을 쓰는 시점을 기준으로 GitHub 데이터에 따르면 Solidity의 기여자는 568명인 반면 Vyper의 기여자는 189명으로 3배의 차이가 있습니다.
Vyper에는 풍부한 개발 도구 모음이 없지만 보다 긴밀하게 통합된 도구가 있으며 EVM 및 Vyper와 관련된 많은 내장 도구가 있는 Titanaboa 인터프리터와 같은 Solidity 개발 도구에 연결할 수도 있습니다. 실험 및 개발에 사용됨 컴파일 타임 코드 실행 기능이 있는 Vyper 기반 Lisp인 Dasy.
또한 기술적인 세부 사항의 관점에서 볼 때 Vyper에는 수정자, 클래스 상속 및 재귀 호출이 부족하며 프로그래밍 언어는 Turing 완전하지 않습니다.
물론 이들 중 대부분은 계약을 보다 안전하고 감사하기 쉽게 만들기 위해 보안 및 감사 가능성을 향상시키는 것을 목표로 의도적으로 더 적은 수의 기능을 제공하는 Vyper이지만, 이는 또한 개발자가 이러한 제한 사항을 해결해야 한다는 것을 의미합니다. 인력 우위가 없기 때문에 개발 효율성이 낮을 수밖에 없습니다.
Vyper의 영향력은 어디에서 나오는가?
현재 Vyper 실패는 0.2.15, 0.2.16, 0.3.0 등 몇 가지 특정 버전에만 관련되어 있으며 위에서 Vyper가 작성한 헤드 DeFi 프로젝트의 볼륨이 크지 않다는 것을 알 수 있습니다. TVL 시장 점유율은 5% 미만입니다.
그렇다면 왜 Vyper의 실패가 그토록 큰 영향을 미쳤을까요?
요컨대 주류 DeFi 프로토콜 중에도 Vyper 언어를 개발에 적극적으로 사용하는 프로젝트는 많지 않으며, 이번에 문제는 몇 가지 특정 버전의 Vyper이지만 Vyper를 기반으로 개발된 대표적인 DeFi 프로젝트가 있습니다.
맞아요, Curve입니다. 주된 이유는 위에서 언급한 가스 최적화 기능과 관련된 것 같습니다 - Curve 계약이 더 복잡하기 때문에 Vyper는 이러한 복잡성을 관리하기 쉽게 만들고 가스를 추가로 절약합니다(다른 잘 알려진 Vyper 기반 개발에는 Uniswap v1 버전, 최초의 ETH 2.0 예금 계약 등과 같은 소수의 프로젝트입니다.
그러나 새로운 버전의 Vyper는 이 취약점을 수정했지만, 영향을 받은 Curve 안정 풀 계약을 업그레이드할 수 없기 때문에 배포 및 업그레이드가 불가능하므로 해당 계약을 폐기하고 자금을 인출할 수밖에 없습니다.
요약
요약
일반적으로 이번 보안 사건에 대해 모든 사람이 두려움을 갖고 있는 이유는 주로 스마트 계약의 언어 계층에 있는 버그의 위험이 DeFi 프로토콜 자체의 범위나 스마트 계약의 논리를 훨씬 초과했기 때문입니다.
상상해 보십시오. 이번에는 Vyper뿐만 아니라 Solidity에서도 같은 문제가 발생하면 체인의 모든 DeFi 프로토콜이 탈출하기 어려울 수 있으며 실제로 DeFi는 더 이상 존재하지 않습니다라는 위험에 직면하게 될 것입니다.
