> 웹3.0 > 본문

Uniswap V4부터 Artela 기본 프로토콜까지, DeFi Hooks 혁명의 진보된 여정

WBOY
풀어 주다: 2024-04-30 16:40:02
앞으로
1126명이 탐색했습니다.

Hooks란

Hooks, 즉 Hook 프로그래밍은 개발자가 미리 정의된 함수나 코드 블록인 Hooks를 사용하여 시스템이나 애플리케이션, 라이브러리의 실행 경로를 실행할 수 있게 해주는 프로그래밍 모델입니다. 원본 코드를 수정하지 않고 사용자 정의 코드를 삽입하세요. 후크는 운영 체제, 프레임워크 및 라이브러리, 웹 개발, 플러그인 시스템 등 다양한 프로그래밍 환경 및 프레임워크에서 자주 사용됩니다.

Hooks를 사용하면 개발자는 모든 변경 또는 확장 요구 사항에 대해 원본 코드를 수정하지 않고도 프로그램의 확장성과 사용자 정의 가능성을 높일 수 있으므로 코드를 깨끗하고 안정적으로 유지하는 데 도움이 됩니다. Hooks는 소프트웨어 확장을 위한 우아한 구현 방법을 제공하며 소프트웨어 설계에 매우 유용한 프로그래밍 모델입니다.

특히 AOP(Aspect-Oriented 프로그래밍)는 Hook 프로그래밍과 자주 비교됩니다. AOP는 교차 관심사를 구현하는 모듈식 프로그래밍 패러다임이며 목표는 비즈니스 로직 없이 주요 기능을 향상하거나 수정하는 것이 아닙니다. 여기서는 AOP를 자세히 설명하지 않겠습니다. 단순히 AOP를 HooK 프로그래밍의 상위 수준 추상화로 생각하면 됩니다.

Uniswap V4: Hooks Revolution

从Uniswap V4到Artela原生协议,DeFi Hooks 革命的进阶之旅

2023년 6월 Uniswap은 Uniswap V4 백서의 초안 버전을 발표하고 공개했습니다. Uniswap V4의 중요한 기능은 Hooks의 도입입니다.

사실 Hooks는 Web2 금융 시스템에서 널리 사용되었습니다. 왜냐하면 이러한 시스템은 일반적으로 높은 수준의 사용자 정의 및 확장성을 요구하기 때문입니다. 거래 처리 시 등의 맞춤형 시나리오에서는 Hooks를 사용해 거래 실행 전후에 2차 검증, 위험 통제 탐지, 자금세탁 방지(AML) 전략 등 추가 검증 로직을 삽입합니다. 확장성 시나리오에는 Hooks를 통해 외부 API 또는 마이크로서비스와 통합하여 신원 인증 서비스, 환율 변환, 결제 게이트웨이 등과 같은 금융 시스템의 새로운 기능을 확장하는 것이 포함됩니다. 그러나 Uniswap은 Hooks를 DeFi에 도입함으로써 선례를 세웠습니다.

Uniswap V4 Hooks는 본질적으로 개발자가 생성하고 정의한 외부 계약입니다. 유동성 풀이 생성되면 Hook 계약을 바인딩하도록 선택할 수 있습니다. 그 후 유동성 풀은 이전에 바인딩된 Hook 계약을 호출하여 라이프사이클의 여러 단계에서 지정된 작업을 수행하여 높은 수준의 맞춤화를 제공합니다. 개발자는 Uniswap의 Hooks를 기반으로 보다 개인화된 거래 시나리오를 충족하고 다음과 같은 보다 풍부한 기능을 갖춘 DApp을 구축할 수 있습니다.

  • 동적 수수료: Hooks를 통해 유동성 풀은 시장 변동성 또는 기타 입력 매개변수에 따라 수수료를 동적으로 조정하여 시장에 더 잘 적응할 수 있습니다.
  • 체인 내 지정가 주문: Hooks는 체인에서 지정가 주문을 생성하고 실행하여 사용자가 지정된 가격으로 거래할 수 있도록 합니다.
  • 시간 가중 평균 시장 조성자(TWAMM): Hooks 메커니즘을 사용하여 유동성 풀을 만듭니다. 일정 기간 동안 대량 주문 거래를 균등하게 분배하는 TWAMM 전략을 지원합니다.

현재 Uniswap V4는 4개의 Hook 콜백 그룹을 지원하며 각 그룹에는 한 쌍의 콜백이 포함되어 있습니다.

  • beforeInitialize/afterInitialize: 유동성 풀 초기화
  • beforeModifyPosition/afterModifyPosition: 유동성 추가/감소/제거
  • beforeS; 왑/ afterSwap: exchange;
  • beforeDonate/afterDonate: 기부(Uniswap V4에 도입된 새로운 기능, 거래 범위 내 팁 유동성 공급자).

아래 그림은 백서에 표시된 beforeSwap/afterSwap Hook의 과정입니다. 스왑 실행 전과 후에 먼저 유동성 풀의 해당 Hook에 해당 플래그가 켜져 있는지 확인하는 것을 볼 수 있습니다. 켜져 있으면 계약의 해당 기능이 호출됩니다.

从Uniswap V4到Artela原生协议,DeFi Hooks 革命的进阶之旅

이러한 후크는 거래 시작 전과 거래 종료 후에 실행될 수 있으므로 온체인 가격 주문과 유사한 기능을 수행할 수 있습니다. 사용자는 Hook 계약에 대한 지정가 주문을 한 다음 afterSwap 콜백에서 사용자 지정 또는 관리형 오라클을 사용하여 가격이 한도를 충족하는지 확인하고 그렇지 않은 경우 거래를 실행합니다. 취소됩니다.

Uniswap V4는 Hooks를 통해 DApp 자체 개발에 유동성을 깊게 결합하여 DApp 기능을 향상시키는 동시에 Uniswap의 네트워크 효과를 향상시켜 전체 DeFi 생태계의 기본 인프라로 만듭니다.

Uniswap V4 Hooks의 보안 문제

从Uniswap V4到Artela原生协议,DeFi Hooks 革命的进阶之旅

BlockSec 팀은 Uniswap V4 Hooks 메커니즘의 보안 위험을 조사했습니다. Hook 계약 자체가 악의적이라는 사실 외에도 양성 Hook 계약도 매우 취약합니다. 취약점. BlockSec 팀은 Awesome Uniswap v4 Hooks 저장소(커밋 해시 3a0a444922f26605ec27a41929f3ced924af6075)를 분석한 결과 저장소에 있는 프로젝트의 30% 이상이 취약하다는 사실을 발견했습니다. 이러한 취약점은 주로 Hook, PoolManager 및 외부 제3자 간의 위험 상호 작용에서 발생하며 주로 두 가지 범주로 나눌 수 있습니다.

  • 액세스 제어 문제: 주요 관심사는 Uniswap V4의 콜백 기능입니다. 이러한 기능은 PoolManager에서만 호출해야 하며 다른 주소(EOA 및 계약 포함)에서는 호출할 수 없습니다. 예를 들어, 풀 키로 보상을 분배하는 경우 해당 기능을 어떤 계정에서든 호출할 수 있는 경우 보상이 잘못 청구될 수 있습니다. 따라서 후크에 대한 강력한 액세스 제어 메커니즘을 구축하는 것이 중요합니다. 특히 풀 자체 외에 다른 당사자가 후크를 호출할 수 있기 때문입니다.
  • 입력 유효성 검사 문제: 일부 취약한 후크 구현으로 인해 부적절한 입력 유효성 검사로 인해 발생하는 다양한 유형의 공격; , 잘 알려진 재진입 공격을 포함합니다. 가장 일반적인 상황은 일부 주요 Hook 기능에서 신뢰할 수 없는 외부 계약이 호출되는 것입니다. 이러한 취약한 Hook을 공격하기 위해 공격자는 자신의 가짜 토큰에 대해 악의적인 자금 풀을 등록한 다음 Hook Pool을 호출하여 자금을 사용할 수 있습니다. 작업을 수행합니다. 풀과 상호 작용할 때 악의적인 토큰 논리는 바람직하지 않은 동작에 참여하기 위해 제어 흐름을 탈취합니다.

위의 두 가지 유형의 Hook과 관련된 보안 위험을 줄이기 위해 민감한 외부/공용 기능에 대한 필요한 액세스 제어가 올바르게 구현되고 입력 매개변수가 검증되더라도 계약 취약성 자체를 완전히 피할 수는 없습니다. 특히 Hook If의 경우에는 더욱 그렇습니다. 업그레이드 가능한 계약으로 구현되면 OpenZeppelin의 UUPSUpgradeable 취약점과 유사한 관련 문제가 발생할 수도 있습니다.

이유는 Hook 프로그래밍이 스마트 계약의 복잡성을 증가시켜 공격 벡터를 증가시키기 때문입니다. 일반적인 스마트 계약의 경우 OpenZeppelin은 이를 기반으로 계약을 안전하게 개발할 수 있도록 일련의 모범 사례 라이브러리를 보유하지만 본질적으로 개발자에게 "안전한 사용 제약"을 추가합니다. 일반 계약과 비교하여 Hook 계약은 보다 엄격한 "안전성 사용 제약"을 요구합니다. 따라서 Hook 프로그래밍이 널리 사용되기 위해서는 안전한 실행 환경, Hook에 적합한 프로그래밍 패러다임, 더욱 엄격한 사용 제한 등 포괄적인 프레임워크가 필요합니다.

Artela Aspect: 프로토콜 수준에서 Hook 프로그래밍 지원

从Uniswap V4到Artela原生协议,DeFi Hooks 革命的进阶之旅

Uniswap V4 Hooks는 스마트 계약을 통해 구현되며, 보안 문제도 프로토콜 수준에서 지원됩니까? 후크 프로그래밍 솔루션? Artela Aspect가 답을 드립니다!

Artela는 개발자가 모듈식, 기능이 풍부하고 확장 가능하며 사용자 정의 가능한 애플리케이션을 구축할 수 있도록 설계된 확장성이 뛰어난 고성능 EVM 호환 레이어 1 블록체인 네트워크입니다. Artela는 AOP를 블록체인 네트워크에 혁신적으로 도입하는 Aspect라는 기본 확장으로 새로운 프로그래밍 가능 모듈을 정의합니다. Aspect는 Hook의 콜백과 마찬가지로 전체 트랜잭션 처리 수명 주기에서 Aspect가 실행되는 위치를 지정해야 합니다. 연결 지점에는 다음이 포함됩니다.

  • Block Init: 블록 초기화 : 거래 확인;
  • Pre Execute: 실행 전
  • Post Execute: 실행 후
  • Block Finalize: 블록이 완료됩니다.
  • Aspect는 현재 코드가 WebAssembly(WASM) 바이트코드로 컴파일되어 Artela 네트워크에 배포되는 Typescript만 지원합니다. Aspect가 배포된 후 스마트 계약 소유자는 계약을 Aspect에 바인딩할 수 있습니다. 스마트 계약 소유자는 자신의 외부 계정(EOA) 주소가 스마트 계약 isOwner(주소) 반환(bool) 검사를 통과할 수 있음을 의미합니다.

스마트 계약을 호출하는 후속 트랜잭션은 아래 그림과 같이 Aspect에 의해 처리됩니다.

从Uniswap V4到Artela原生协议,DeFi Hooks 革命的进阶之旅Artela Aspects는 프로토콜 수준 Hooks 구현으로서 Uniswap V4 Hooks에 비해 매우 큰 장점이 있습니다.

먼저 Artela Aspects는 WASM을 사용하여 코드를 실행하면 실행 효율성이 EVM보다 몇 배 더 높습니다.

두 번째로 Artela Aspects는 DeFi의 핵심 논리뿐만 아니라 전체 트랜잭션 수명 주기를 연결할 수 있습니다.

마지막으로 가장 중요한 것은 Artela Aspects가 안전한 샌드박스 환경에서 독립적으로 실행된다는 것입니다. 이러한 격리는 Aspect 실행이 계약 실행 보안에 영향을 미치지 않도록 보장합니다.

Artela Aspects의 격리는 일반 계약인 Hook 계약과 기타 외부 계약 간의 상호 호출을 제한하여 Uniswap V4 Hooks 액세스 제어 및 입력 검증의 문제점을 해결합니다. Uniswap과 같은 DeFi 계약의 경우 Artela에 배포하여 더 빠르고 강력하며 안전한 Hook 경험을 누릴 수 있습니다.

요약

Uniswap은 DeFi 산업의 중요한 참가자이자 리더로서 산업 발전을 촉진하고 기능을 개선하는 데 중요한 역할을 해왔습니다. 이번에 Uniswap V4에 도입된 Hooks는 의심할 여지 없이 DEX의 발전을 이끌 것입니다. 후임자에 의해.

하지만 Uniswap V4 Hooks는 스마트 계약 자체의 한계로 인해 제한됩니다. 프로토콜 설계가 아무리 견고하고 도구 라이브러리가 완벽하더라도 Hook 계약과 기타 외부 계약 간의 상호 호출을 근본적으로 막을 수는 없습니다. 취약점.

고성능 EVM 호환 레이어 1 블록체인 네트워크인 Artela는 프로토콜 시작부터 WASM에서 독립적으로 실행되도록 Aspect를 설계하여 기본적으로 Hooks 프로그래밍을 지원하므로 보안이 크게 향상되었습니다. 이는 보안을 생명으로 여기는 DeFi 프로토콜을 위한 고급 솔루션을 제공합니다.

위 내용은 Uniswap V4부터 Artela 기본 프로토콜까지, DeFi Hooks 혁명의 진보된 여정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:panewslab.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿