-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
스마트 계약 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 , 유형 uint256 의 a 및 b 에 대한 입력 및 단일 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-02-03 09:55:01
- 트럼프, 암호화폐, 전례 없는 주장: 엠파이어 스테이트의 디지털 격차
- 2026-02-03 10:00:02
- 따뜻한 전망 속에 천연가스 가격 급락, 공급 반등
- 2026-02-03 09:50:01
- 마이클 세일러(Michael Saylor)의 540억 달러 규모 비트코인 도박, 암호화폐 환경 변화 속에서 성숙도 벽에 직면
- 2026-02-03 09:45:01
- MYX는 시장 약세 속에서 반등했지만 지속적인 모멘텀에 대한 우려는 여전히 남아 있습니다.
- 2026-02-03 06:55:02
- Kaspa의 $0.03 위기: 한 분석가는 펀더멘털에 $100,000를 베팅하거나 파산했습니다.
- 2026-02-03 07:00:01
관련 지식
암호화폐와 블록체인 기술의 미래는 어떻게 될까요?
2026-01-11 21:19:34
분산형 금융의 진화 1. DeFi 프로토콜은 단순한 대출 및 차용을 넘어 구조화된 상품, 보험 메커니즘 및 파생상품 거래를 포함하도록 확장되었습니다. 2. 이제 주요 프로토콜 출시에 대해 여러 회사의 검증 프로세스가 표준이 되면서 스마트 계약 감사가 더욱 엄격해졌습니다...
나카모토 사토시는 누구인가? (Bitcoin의 창작자)
2026-01-12 07:00:05
가명의 유래 1. 사토시 나카모토(Satoshi Nakamoto)는 Bitcoin을 개발하고 원본 백서를 작성하고 첫 번째 구현을 설계 및 배포한 개인 또는 그룹이 사용하는 이름입니다. 2. 이 이름은 2008년 “Bitcoin: P2P 전자 현금 시스템”이라는 제목의...
암호화폐 에어드랍은 무엇이며 어떻게 얻을 수 있나요?
2026-01-22 14:39:35
암호화폐 에어드롭 이해 1. 암호화폐 에어드롭은 무료 토큰이나 코인을 여러 지갑 주소에 배포하는 것입니다. 일반적으로 블록체인 프로젝트에서 인지도를 높이고 초기 지지자에게 보상을 제공하거나 토큰 소유권을 분산시키기 위해 시작됩니다. 2. 이러한 배포는 선불 비용 없이 ...
DeFi의 비영구적 손실은 무엇이며 이를 방지하는 방법은 무엇입니까?
2026-01-13 11:59:34
비영구 손실 이해 1. 자동 시장 조성자(AMM) 유동성 풀에 예치된 토큰의 가치가 외부에 보관된 경우의 가치와 다를 때 비영구적 손실이 발생합니다. 2. 이러한 현상은 풀 내부의 토큰 가격 비율이 외부 시장 가격과 일관되게 유지되어야 하는 대부분의 AMM에서 사용하는...
서로 다른 블록체인 간에 암호화 자산을 연결하는 방법은 무엇입니까?
2026-01-14 18:19:42
크로스체인 브릿지 메커니즘 1. 아토믹 스왑을 사용하면 중개자 없이 두 블록체인에서 자산을 P2P로 직접 교환할 수 있으며, 해시 시간 고정 계약을 사용하여 공정성과 최종성을 보장합니다. 2. 신뢰할 수 있는 브릿지는 대상 체인에 사용자 예금과 민트 포장 토큰을 보관하...
백서란 무엇이며 어떻게 읽나요?
2026-01-12 07:19:48
백서 구조 이해 1. 암호화폐 공간의 백서는 블록체인 프로젝트의 목적, 아키텍처 및 메커니즘을 설명하는 기초적인 기술 및 개념 문서로 기능합니다. 2. 일반적으로 프로젝트가 해결하려는 문제와 제안된 솔루션을 소개하는 요약 또는 요약으로 시작됩니다. 3. 서론 섹션에서는...
암호화폐와 블록체인 기술의 미래는 어떻게 될까요?
2026-01-11 21:19:34
분산형 금융의 진화 1. DeFi 프로토콜은 단순한 대출 및 차용을 넘어 구조화된 상품, 보험 메커니즘 및 파생상품 거래를 포함하도록 확장되었습니다. 2. 이제 주요 프로토콜 출시에 대해 여러 회사의 검증 프로세스가 표준이 되면서 스마트 계약 감사가 더욱 엄격해졌습니다...
나카모토 사토시는 누구인가? (Bitcoin의 창작자)
2026-01-12 07:00:05
가명의 유래 1. 사토시 나카모토(Satoshi Nakamoto)는 Bitcoin을 개발하고 원본 백서를 작성하고 첫 번째 구현을 설계 및 배포한 개인 또는 그룹이 사용하는 이름입니다. 2. 이 이름은 2008년 “Bitcoin: P2P 전자 현금 시스템”이라는 제목의...
암호화폐 에어드랍은 무엇이며 어떻게 얻을 수 있나요?
2026-01-22 14:39:35
암호화폐 에어드롭 이해 1. 암호화폐 에어드롭은 무료 토큰이나 코인을 여러 지갑 주소에 배포하는 것입니다. 일반적으로 블록체인 프로젝트에서 인지도를 높이고 초기 지지자에게 보상을 제공하거나 토큰 소유권을 분산시키기 위해 시작됩니다. 2. 이러한 배포는 선불 비용 없이 ...
DeFi의 비영구적 손실은 무엇이며 이를 방지하는 방법은 무엇입니까?
2026-01-13 11:59:34
비영구 손실 이해 1. 자동 시장 조성자(AMM) 유동성 풀에 예치된 토큰의 가치가 외부에 보관된 경우의 가치와 다를 때 비영구적 손실이 발생합니다. 2. 이러한 현상은 풀 내부의 토큰 가격 비율이 외부 시장 가격과 일관되게 유지되어야 하는 대부분의 AMM에서 사용하는...
서로 다른 블록체인 간에 암호화 자산을 연결하는 방법은 무엇입니까?
2026-01-14 18:19:42
크로스체인 브릿지 메커니즘 1. 아토믹 스왑을 사용하면 중개자 없이 두 블록체인에서 자산을 P2P로 직접 교환할 수 있으며, 해시 시간 고정 계약을 사용하여 공정성과 최종성을 보장합니다. 2. 신뢰할 수 있는 브릿지는 대상 체인에 사용자 예금과 민트 포장 토큰을 보관하...
백서란 무엇이며 어떻게 읽나요?
2026-01-12 07:19:48
백서 구조 이해 1. 암호화폐 공간의 백서는 블록체인 프로젝트의 목적, 아키텍처 및 메커니즘을 설명하는 기초적인 기술 및 개념 문서로 기능합니다. 2. 일반적으로 프로젝트가 해결하려는 문제와 제안된 솔루션을 소개하는 요약 또는 요약으로 시작됩니다. 3. 서론 섹션에서는...
모든 기사 보기














