시가총액: $2.1813T 0.86%
거래량(24시간): $66.5988B -12.41%
공포와 탐욕 지수:

18 - 극도의 공포

  • 시가총액: $2.1813T 0.86%
  • 거래량(24시간): $66.5988B -12.41%
  • 공포와 탐욕 지수:
  • 시가총액: $2.1813T 0.86%
암호화
주제
암호화
소식
cryptostopics
비디오
최고 암호화

언어 선택

언어 선택

통화 선택

암호화
주제
암호화
소식
cryptostopics
비디오

스마트 계약 ABI (Application Binary Interface) 란 무엇입니까?

The ABI acts as a bridge between high-level smart contract code and the EVM, enabling seamless interaction with deployed contracts through structured function definitions.

2025/07/07 10:36

스마트 계약 ABI의 기본 이해

스마트 계약 의 세계, 특히 이더 리움 및 기타 EVM 호환 블록 체인 내에서 ABI (Application Binary Interface)라는 용어는 중요한 역할을합니다. ABI 는 본질적으로 이진 수준에서 스마트 계약과 상호 작용하는 방법을 정의하는 사양입니다. Solidity 또는 Vyper와 같은 고급 프로그래밍 언어와 EVM (Ethereum Virtual Machine)에서 실행되는 저수준 바이트 코드 사이의 다리 역할을합니다. ABI가 없으면 외부 응용 프로그램은 기능을 호출하거나 배포 된 스마트 계약에서 데이터를 읽을 수 없습니다.

ABI에는 이름, 입력 매개 변수, 출력 유형을 포함하여 계약의 각 기능에 대한 자세한 정보가 포함되어 있습니다. 이 구조화 된 형식은 개발자와 분산 응용 프로그램이 블록 체인 기반 계약과 원활하게 통신 할 수 있도록합니다.

스마트 계약 ABI의 구조 및 구성 요소

일반적인 ABI 정의는 각 요소가 스마트 계약의 함수 또는 이벤트에 해당하는 JSON 배열로 표시됩니다. 각 항목에는 여러 주요 필드가 포함됩니다.

  • 이름 : 함수 또는 이벤트의 이름.
  • 유형 : '기능', '이벤트'또는 '오류'가 될 수 있습니다.
  • 입력 : 입력 매개 변수 (함수의 경우) 또는 인덱스 된 주제 (이벤트)를 설명하는 객체 배열.
  • 출력 : 함수의 경우 반환되는 값을 설명합니다.
  • 법정 : 함수가 상태 ( '지불 할 수없는', '지불 가능')가 변경되는지 또는 변경하지 않는지 ( '보기', '순수한')를 나타냅니다.

예를 들어 간단한 기능을 고려하십시오.

 function add(uint a, uint b) public pure returns (uint)

해당 ABI 항목 에는 이름 add , 유형 function , 유형 uint256ab 에 대한 입력 및 단일 uint256 반환하는 출력이 포함됩니다.

개발자가 실제로 ABI를 사용하는 방법

스마트 계약을 배포하거나 상호 작용할 때 개발자는 일반적으로 SOLC 또는 Remix IDE 와 같은 도구를 사용하여 Solidity 코드를 컴파일합니다. 이 도구는 바이트 코드 (블록 체인에 배포 됨)와 ABI 파일 (상호 작용에 오프 체인)의 두 가지 주요 파일을 생성합니다.

웹 응용 프로그램에서 배포 된 계약에서 함수를 호출하려면 개발자는 ethers.js 또는 web3.js 와 같은 라이브러리를 사용합니다. 이 라이브러리에는 계약 ABI계약 주소가 인터페이스 객체를 생성해야합니다. 일단 생성되면 개발자는 기능을 호출하거나 계약에 의해 방출 된 이벤트를들을 수 있습니다.

ethers.js를 사용하는 단순화 된 워크 플로입니다.

  • ABI를 JavaScript 환경에로드하십시오.
  • 이더 리움 제공 업체 (Infura 또는 Alchemy)에 연결하십시오.
  • ABI 및 계약 주소를 사용하여 계약 인스턴스를 만듭니다.
  • 인스턴스를 사용하여 계약 방법으로 거래를 호출하거나 보냅니다.

이 프로세스를 사용하면 분산 응용 프로그램과 블록 체인 로직 간의 원활한 통합이 가능합니다.

ABI 파일 생성 및 추출

ABI를 생성하기 위해 개발자는 종종 견고성 컴파일러 또는 개발 프레임 워크에 의존합니다. 다음은 SOLC를 사용하여 수동으로 ABI를 추출하는 단계입니다.

  • NPM ( npm install -g solc )을 통해 Solidity 컴파일러를 설치하십시오.
  • .sol 파일로 견고성 계약을 저장하십시오.
  • 컴파일 명령 실행 :
     solcjs --abi YourContract.sol
  • 결과 파일의 이름은 YourContract_sol_YourContract.abi 로 명명됩니다.

Hardhat 또는 Truffle을 사용하여 npx hardhat compile 실행 한 후 ABI는 artifacts 디렉토리 내부에서 자동으로 생성됩니다. 아래에서 찾을 수 있습니다.

 artifacts/contracts/YourContract.sol/YourContract.json

이 JSON 파일에는 ABI바이트 코드가 모두 포함되어있어 프로그래밍 방식으로 계약을 쉽게 배포하고 상호 작용할 수 있습니다.

ABI와 함께 일할 때 일반적인 실수

개발자가 직면 한 가장 일반적인 문제 중 하나는 일치하지 않는 ABI 입니다. 프론트 엔드에 사용 된 ABI가 배포 된 계약과 일치하지 않으면 함수 호출이 실패하거나 예기치 않은 결과를 반환 할 수 있습니다. 이것은 다음과 같은 경우에 일어날 수 있습니다.

  • ABI를 업데이트하지 않고 새 버전의 계약을 배포합니다.
  • 잘림 또는 불완전한 ABI 파일 사용.
  • ABI를 수동으로 복사하고 JSON 구조의 부품이 누락됩니다.

또 다른 빈번한 문제는 ABI 에서 튜플 유형 또는 어레이를 잘못 처리하는 것입니다. 개발자는 계약 대응을 읽을 때 복잡한 반환 유형이 올바르게 디코딩되도록해야합니다. Ethers.js 와 같은 라이브러리는 내장 디코딩 메커니즘을 제공하지만 부적절한 사용으로 인해 런타임 오류가 발생할 수 있습니다.

또한 이벤트와 로그는 ABI 에 의존하여 적절한 디코딩을 위해 의존합니다. 이벤트의 ABI가 누락되거나 잘못된 경우 블록 체인에서 검색된 로그 데이터를 의미있게 구문 분석 할 수 없습니다.

ABI 인코딩 및 디코딩이 설명되었습니다

스마트 계약에서 함수가 호출되면 거래의 일부로 전송되기 전에 ABI 사양 에 따라 인수를 인코딩해야합니다. 마찬가지로 함수가 값을 반환하면 응답을 다시 읽을 수있는 데이터로 다시 디코딩해야합니다.

인코딩은 데이터 유형을 기반으로 특정 규칙을 따릅니다. 예를 들어:

  • UINT256 값은 32 바이트로 패딩됩니다.
  • 문자열바이트는 길이와 실제 데이터로 인코딩됩니다.
  • 배열스트러크는 엄격한 정렬 규칙에 따라 재귀 적으로 인코딩됩니다.

디코딩은 반대로 작동합니다. 트랜잭션 영수증 또는 호출 결과가 수신되면 ABI 디코더는 기능 서명 및 반환 유형을 사용하여 원시 바이트를 의미있는 값으로 구문 분석합니다. 블록 체인 데이터를 정확하게 해석 해야하는 오프 체인 시스템 으로 작업 할 때 특히 중요합니다.

ethers.utils.abicoder 와 같은 라이브러리는 데이터를 수동으로 인코딩하고 디코딩하는 유틸리티를 제공합니다. 이는 사용자 정의 서명 또는 배치 트랜잭션과 같은 고급 사용 사례에 유용합니다.


자주 묻는 질문 (FAQ)

다른 버전의 계약에 동일한 ABI를 사용할 수 있습니까? 아니요, 계약의 각 버전에는 고유 한 ABI가 있어야합니다. 기능 이름, 매개 변수 또는 반환 유형의 변경 사항 ABI가 변경되며 구식 ABI를 사용하면 잘못된 상호 작용이나 실패가 발생할 수 있습니다.

이더 리움에서 배치 된 계약의 ABI는 어디에서 찾을 수 있습니까? Etherscan과 같은 블록 탐색기에서 ABI를 검색 할 수 있습니다. 계약 주소로 이동하여 계약 탭을 클릭하고 계약 읽기 또는 계약 섹션을 찾으십시오. 일부 계약은 또한 API 또는 문서를 통해 공개적으로 ABI를 게시합니다.

계약 배치에 ABI가 필요합니까? 아니요, 배포 중에 ABI가 필요하지 않습니다. 배포는 바이트 코드 만 필요합니다. 그러나 ABI는 외부 애플리케이션에서 배포 된 계약과 상호 작용하는 데 필수적이됩니다.

계약의 ABI를 잃으면 어떻게됩니까? ABI 에 액세스 할 수없는 경우 표준 도구를 사용하여 계약과 상호 작용할 수 없습니다. 경우에 따라 계약 소스 코드를 검사하거나 디 컴파일러를 사용하여 ABI를 재구성 할 수 있지만 항상 신뢰할 수있는 것은 아닙니다.

부인 성명:info@kdj.com

제공된 정보는 거래 조언이 아닙니다. kdj.com은 이 기사에 제공된 정보를 기반으로 이루어진 투자에 대해 어떠한 책임도 지지 않습니다. 암호화폐는 변동성이 매우 높으므로 철저한 조사 후 신중하게 투자하는 것이 좋습니다!

본 웹사이트에 사용된 내용이 귀하의 저작권을 침해한다고 판단되는 경우, 즉시 당사(info@kdj.com)로 연락주시면 즉시 삭제하도록 하겠습니다.

관련 지식

암호화 위험 관리란 무엇입니까? 승자와 패자를 구분하는 규칙은 무엇입니까?

암호화 위험 관리란 무엇입니까? 승자와 패자를 구분하는 규칙은 무엇입니까?

2026-06-12 11:59:57

암호화폐 위험 관리의 핵심 원칙 1. 모든 포지션은 총 자본의 고정 비율(일반적으로 거래당 1.5% 이하)에 따라 규모가 조정되어야 합니다. 2. 개인 키와 시드 문구는 인터넷에 연결된 장치에 디지털 방식으로 저장되지 않습니다. 물리적 백업은 유일하게 허용되는 표준으로...

작업 증명(PoW)이란 무엇입니까? Bitcoin이(가) 아직도 사용하는 이유는 무엇인가요?

작업 증명(PoW)이란 무엇입니까? Bitcoin이(가) 아직도 사용하는 이유는 무엇인가요?

2026-06-13 04:03:54

PoW의 핵심 메커니즘 1. 작업 증명에서는 광부가 변수 nonce와 결합된 블록 헤더 데이터에 대해 반복적인 SHA-256 해시 계산을 수행해야 합니다. 2. 대상 조건에서는 결과 해시가 일정한 수의 선행 0으로 시작하고 일관된 블록 간격을 유지하도록 동적으로 조정되...

ICO란 무엇입니까? ICO 붐 동안 왜 그렇게 많은 투자자들이 돈을 잃었습니까?

ICO란 무엇입니까? ICO 붐 동안 왜 그렇게 많은 투자자들이 돈을 잃었습니까?

2026-06-13 05:00:12

시장 변동성 패턴 1. Bitcoin의 가격 변동은 종종 거시경제 데이터 발표, 특히 미국 CPI 및 비농업 급여 보고서와 상관관계가 있습니다. 2. Ethereum은 Shanghai 또는 Dencun 포크와 같은 주요 프로토콜 업그레이드 중에 높은 변동성을 나타내는 ...

실제 자산(RWA) 토큰화란 무엇입니까? 왜 핫 트렌드인가?

실제 자산(RWA) 토큰화란 무엇입니까? 왜 핫 트렌드인가?

2026-06-14 03:29:36

정의 및 핵심 메커니즘 1. RWA 토큰화는 물리적 또는 전통적인 금융 자산의 소유권이나 경제적 권리를 블록체인의 디지털 토큰으로 표현하는 프로세스를 의미합니다. 2. 각 토큰은 부동산, 국채, 지적 재산권 로열티 또는 상품 준비금과 같은 기본 자산에 대한 검증 가능하...

알트코인 시즌이란 무엇입니까? 언제 시작되었는지 어떻게 알 수 있나요?

알트코인 시즌이란 무엇입니까? 언제 시작되었는지 어떻게 알 수 있나요?

2026-06-13 03:57:51

정의와 역사적 맥락 1. 알트코인 시즌은 Bitcoin이 아닌 디지털 자산이 BTC에 비해 지속적으로 뛰어난 성과를 경험하는 광범위한 암호화폐 시장 주기 내에서 뚜렷한 단계를 나타냅니다. 2. 이 현상은 2017~2018년 상승장에서 두드러지게 나타났습니다. 이때 Bi...

유동성 풀이란 무엇입니까? 분산형 거래소에 어떻게 힘을 실어주나요?

유동성 풀이란 무엇입니까? 분산형 거래소에 어떻게 힘을 실어주나요?

2026-06-14 01:14:22

정의 및 핵심 기능 1. 유동성 풀은 전통적인 주문서에 의존하지 않고 거래를 촉진하기 위해 블록체인에 고정된 쌍을 이루는 디지털 자산의 스마트 계약 기반 저장소입니다. 2. 각 풀은 일반적으로 x × y = k라는 일정한 곱 공식을 유지합니다. 여기서 x와 y는 두 토...

암호화 위험 관리란 무엇입니까? 승자와 패자를 구분하는 규칙은 무엇입니까?

암호화 위험 관리란 무엇입니까? 승자와 패자를 구분하는 규칙은 무엇입니까?

2026-06-12 11:59:57

암호화폐 위험 관리의 핵심 원칙 1. 모든 포지션은 총 자본의 고정 비율(일반적으로 거래당 1.5% 이하)에 따라 규모가 조정되어야 합니다. 2. 개인 키와 시드 문구는 인터넷에 연결된 장치에 디지털 방식으로 저장되지 않습니다. 물리적 백업은 유일하게 허용되는 표준으로...

작업 증명(PoW)이란 무엇입니까? Bitcoin이(가) 아직도 사용하는 이유는 무엇인가요?

작업 증명(PoW)이란 무엇입니까? Bitcoin이(가) 아직도 사용하는 이유는 무엇인가요?

2026-06-13 04:03:54

PoW의 핵심 메커니즘 1. 작업 증명에서는 광부가 변수 nonce와 결합된 블록 헤더 데이터에 대해 반복적인 SHA-256 해시 계산을 수행해야 합니다. 2. 대상 조건에서는 결과 해시가 일정한 수의 선행 0으로 시작하고 일관된 블록 간격을 유지하도록 동적으로 조정되...

ICO란 무엇입니까? ICO 붐 동안 왜 그렇게 많은 투자자들이 돈을 잃었습니까?

ICO란 무엇입니까? ICO 붐 동안 왜 그렇게 많은 투자자들이 돈을 잃었습니까?

2026-06-13 05:00:12

시장 변동성 패턴 1. Bitcoin의 가격 변동은 종종 거시경제 데이터 발표, 특히 미국 CPI 및 비농업 급여 보고서와 상관관계가 있습니다. 2. Ethereum은 Shanghai 또는 Dencun 포크와 같은 주요 프로토콜 업그레이드 중에 높은 변동성을 나타내는 ...

실제 자산(RWA) 토큰화란 무엇입니까? 왜 핫 트렌드인가?

실제 자산(RWA) 토큰화란 무엇입니까? 왜 핫 트렌드인가?

2026-06-14 03:29:36

정의 및 핵심 메커니즘 1. RWA 토큰화는 물리적 또는 전통적인 금융 자산의 소유권이나 경제적 권리를 블록체인의 디지털 토큰으로 표현하는 프로세스를 의미합니다. 2. 각 토큰은 부동산, 국채, 지적 재산권 로열티 또는 상품 준비금과 같은 기본 자산에 대한 검증 가능하...

알트코인 시즌이란 무엇입니까? 언제 시작되었는지 어떻게 알 수 있나요?

알트코인 시즌이란 무엇입니까? 언제 시작되었는지 어떻게 알 수 있나요?

2026-06-13 03:57:51

정의와 역사적 맥락 1. 알트코인 시즌은 Bitcoin이 아닌 디지털 자산이 BTC에 비해 지속적으로 뛰어난 성과를 경험하는 광범위한 암호화폐 시장 주기 내에서 뚜렷한 단계를 나타냅니다. 2. 이 현상은 2017~2018년 상승장에서 두드러지게 나타났습니다. 이때 Bi...

유동성 풀이란 무엇입니까? 분산형 거래소에 어떻게 힘을 실어주나요?

유동성 풀이란 무엇입니까? 분산형 거래소에 어떻게 힘을 실어주나요?

2026-06-14 01:14:22

정의 및 핵심 기능 1. 유동성 풀은 전통적인 주문서에 의존하지 않고 거래를 촉진하기 위해 블록체인에 고정된 쌍을 이루는 디지털 자산의 스마트 계약 기반 저장소입니다. 2. 각 풀은 일반적으로 x × y = k라는 일정한 곱 공식을 유지합니다. 여기서 x와 y는 두 토...

모든 기사 보기

User not found or password invalid

Your input is correct