๐Ÿ”ง HIP‑1217: Hedera /api/v1/contracts/call ์—”๋“œํฌ์ธํŠธ ์ฃผ์š” ์—…๋ฐ์ดํŠธ

 

HIP1217์€ Hedera ๋ฏธ๋Ÿฌ ๋…ธ๋“œ API ์—”๋“œํฌ์ธํŠธ /api/v1/contracts/call์— ๋Œ€ํ•œ ์ฃผ์š” ๊ฐœ์„ ์‚ฌํ•ญ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์—…๋ฐ์ดํŠธ๋Š” ๋ชจ๋“ˆํ™”๋œ ์‹คํ–‰ ํ๋ฆ„์„ ๋„์ž…ํ•˜์—ฌ Consensus ๋…ธ๋“œ์™€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋„๋ก ์กฐ์ •๋˜์–ด, ๋” ์ •ํ™•ํ•˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์Šค๋งˆํŠธ ๊ณ„์•ฝ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์™œ ๋ฐ”๋€Œ๋Š” ๊ฑธ๊นŒ์š”?

๊ธฐ์กด์—๋Š” Hedera EVM (์ด๋”๋ฆฌ์›€ ๊ฐ€์ƒ ๋จธ์‹ )์ด ๋‹จ์ผ(monolithic) ๊ตฌ์กฐ๋กœ ์šด์˜๋ผ ์™”์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ, ๋ฏธ๋Ÿฌ ๋…ธ๋“œ์—์„œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•œ ํ˜ธ์ถœ๊ณผ ์‹ค์ œ Consensus ๋…ธ๋“œ ๋™์ž‘ ๊ฐ„์— ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. HIP1217 ์ ์šฉ ์‹œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐœ์„ ์ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค:

  • ๊ฐ€์Šค ์˜ˆ์ธก ์ •ํ™•๋„ ํ–ฅ์ƒ
  • ๐Ÿ”„ Consensus ๋…ธ๋“œ์™€ ๋ฏธ๋Ÿฌ ๋…ธ๋“œ ๊ฐ„ ์ผ๊ด€๋œ ๋™์ž‘ ๋ณด์žฅ
  • ๐Ÿž ๋””๋ฒ„๊น… ๊ฐ„์†Œํ™” ๋ฐ ์ƒ์„ธ ์˜ค๋ฅ˜ ์ฝ”๋“œ ์ œ๊ณต

๐Ÿ›  ์ฃผ์š” ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  ์ 

 1. ์ฃผ์†Œ ํ•ด์„ (Address Resolution)

  • ๋ณ€๊ฒฝ ์˜ํ–ฅ:
    • ED25519 ๊ณ„์ •์€ Number Alias(0x0000) ์‚ฌ์šฉ
    • ECDSA ๊ณ„์ •์€ Keccak256 alias(0xc5b7…) ์‚ฌ์šฉ
    • Keccak alias๊ฐ€ ์—†๋Š” ECDSA ๊ณ„์ •์€ Number Alias ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ์กฐ์น˜:
    • Mirror ๋…ธ๋“œ API์˜ evm_address ๋˜๋Š” SDK์˜ contractAccountId ํ™œ์šฉ
    • ECDSA ๊ณ„์ •์€ Keccak256 alias ํ˜•์‹์„ ์‚ฌ์šฉ
  • ๋ฐฐํฌ์ผ: 2025๋…„ 12์›” 1์ผ

2. ์ง€๋ถˆ์ž ์ž”์•ก ํ™•์ธ (Payer Balance Validation)

  • ๋ณ€๊ฒฝ ์˜ํ–ฅ: ์ž”์•ก ๋ถ€์กฑ ์‹œ INSUFFICIENT_PAYER_BALANCE ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ
  • ์กฐ์น˜: ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ˜ธ์ถœ(eth_call) ์ „์—๋„ ์ถฉ๋ถ„ํ•œ ์ž”์•ก ํ™•๋ณด
  • ๋ฐฐํฌ์ผ: 2025๋…„ 12์›” 1์ผ

3. ์ž…๋ ฅ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ (Invalid Input Handling)

  • ๋ณ€๊ฒฝ ์˜ํ–ฅ: INVALID_CONTRACT_ID ๋“ฑ ๋” ๊ตฌ์ฒด์ ์ธ ์˜ค๋ฅ˜ ์ƒํƒœ ๋ฐ˜ํ™˜
  • ์กฐ์น˜: ํด๋ผ์ด์–ธํŠธ ๋กœ์ง์—์„œ ๋ณด๋‹ค ๋‹ค์–‘ํ•œ ์˜ค๋ฅ˜ ์ฝ”๋“œ์™€ HTTP 400 ์ฒ˜๋ฆฌ
  • ๋ฐฐํฌ์ผ: 2025๋…„ 9์›” 1์ผ

4. ๊ฐ€์Šค ์ถ”์ • (Gas Estimation)

  • ๋ณ€๊ฒฝ ์˜ํ–ฅ: ํŠนํžˆ ์ปจํŠธ๋ž™ํŠธ ๋ฐฐํฌ ์‹œ ๊ฐ€์Šค ์˜ˆ์ธก ์ˆ˜์น˜๊ฐ€ ๋ณด๋‹ค ์ •ํ™•ํ•˜๊ฒŒ ๋ณ€๊ฒฝ
  • ์กฐ์น˜: ํ…Œ์ŠคํŠธ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐ€์Šค ์˜ˆ์ƒ๊ฐ’ ์กฐ์ •
  • ๋ฐฐํฌ์ผ: 2025๋…„ 9์›” 1์ผ

5. ๊ธฐ๋ณธ KYC ์ƒํƒœ (Default KYC Status)

  • ๋ณ€๊ฒฝ ์˜ํ–ฅ: ์‹ค์ œ Consensus ์ƒํƒœ์— ๊ธฐ๋ฐ˜ํ•œ KYC ๋ฐ˜ํ™˜๊ฐ’ ๋ฐ˜์˜
  • ์กฐ์น˜: ๊ธฐ๋ณธ KYC ์ƒํƒœ์— ์˜์กดํ•˜๋Š” ๋กœ์ง ๊ฒ€ํ†  ๋ฐ ์ˆ˜์ •
  • ๋ฐฐํฌ์ผ: 2025๋…„ 9์›” 1์ผ

6. ๋ฐ˜ํ™˜๊ฐ’๊ณผ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ (Return Values vs Exceptions)

  • ๋ณ€๊ฒฝ ์˜ํ–ฅ: ๊ธฐ์กด์— ๊ธฐ๋ณธ๊ฐ’ ๋ฐ˜ํ™˜ํ•˜๋˜ ํ˜ธ์ถœ์€ ์—๋Ÿฌ๋กœ, ๋˜๋Š” ๊ทธ ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ ๋ฐœ์ƒ ๊ฐ€๋Šฅ
  • ์กฐ์น˜: ์˜ˆ์™ธ ๊ธฐ๋ฐ˜ ๋ฐ ๊ฐ’ ๊ธฐ๋ฐ˜ ์‘๋‹ต ๋ชจ๋‘ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•œ ํด๋ผ์ด์–ธํŠธ ๋กœ์ง ์ž‘์„ฑ
  • ๋ฐฐํฌ์ผ: 2025๋…„ 9์›” 1์ผ

7. ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ปจํŠธ๋ž™ํŠธ ํ˜ธ์ถœ (Call to Nonexistent Contracts)

  • ๋ณ€๊ฒฝ ์˜ํ–ฅ: ์ด์ „ INVALID_TRANSACTION ์ด์ œ๋Š” INVALID_CONTRACT_ID ๋ฐ˜ํ™˜
  • ์กฐ์น˜: ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋กœ์ง ์—…๋ฐ์ดํŠธ
  • ๋ฐฐํฌ์ผ: 2025๋…„ 9์›” 1์ผ

8. ๋ฆฌ๋””๋ ‰์…˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ํ†ต์ผ (Redirect Call Errors)

  • ๋ณ€๊ฒฝ ์˜ํ–ฅ: ํŠน์ • ์˜ค๋ฅ˜ ์ฝ”๋“œ(์˜ˆ: INVALID_TOKEN_ID) ๋Œ€์‹  CONTRACT_REVERT_EXECUTED ๊ณตํ†ต ๋ฐ˜ํ™˜
  • ์กฐ์น˜: ํ…Œ์ŠคํŠธ ๋ฐ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋กœ์ง ์ˆ˜์ •
  • ๋ฐฐํฌ์ผ: 2025๋…„ 9์›” 1์ผ

⚠️ ํ˜ธํ™˜์„ฑ ์•ˆ๋‚ด

์ด๋ฒˆ ๋ณ€๊ฒฝ์€ ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š์œผ๋ฉฐ, ๊ฐœ๋ฐœ์ž๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐ˜๋“œ์‹œ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์˜ค๋ฅ˜๋‚˜ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์‹คํŒจ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž„์‹œ ์šฐํšŒ ๋ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ง€์›

  • Address Resolution ๋ฐ Payer Balance Validation ๊ด€๋ จ ๋ณ€๊ฒฝ์€ 2025๋…„ 12์›” 1์ผ๊นŒ์ง€ ์œ ์˜ˆ๋ฉ๋‹ˆ๋‹ค.
  • ๋” ๊ธด ์œ ์˜ˆ ๊ธฐ๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค๋ฉด Discord์—์„œ reccetech (Keith Kowal) ์— ์š”์ฒญํ•˜์‹ค ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋งž์ถคํ˜• ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ผ์ •์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงฉ ๋ฏธ๋Ÿฌ ๋…ธ๋“œ ์šด์˜์ž์šฉ ์•ˆ๋‚ด

๋ฏธ๋Ÿฌ ๋…ธ๋“œ ์šด์˜์ž๋Š” ๋‹ค์Œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์—ฌ ์ธ์Šคํ„ด์Šค์— ๋ชจ๋“ˆํ™” ํ๋ฆ„์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌ ๊ณ„ํš์— ๋”ฐ๋ผ HEDERA_MIRROR_WEB3_EVM_MODULARIZEDTRAFFICPERCENT ๊ฐ’์„ ์กฐ์ •ํ•˜์‹ญ์‹œ์˜ค.

๐Ÿ“… ๋‹ค์Œ ๋‹จ๊ณ„ & ์ผ์ • ์š”์•ฝ

์ €ํฌ๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด Previewnet ๋ฐ Testnet์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ…Œ์ŠคํŠธํ•  ๊ฒƒ์„ ๊ฐ•๋ ฅํžˆ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ Previewnet ๋ฐ Testnet์—์„œ๋Š” ๋ชจ๋“ˆํ™”๋œ ํ๋ฆ„์ด ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ ์ „์ฒด ํŠธ๋ž˜ํ”ฝ์˜ 100%๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉ”์ธ๋„ท ์ถœ์‹œ ์ „ ์›ํ™œํ•œ ์ „ํ™˜์„ ๋ณด์žฅํ•˜๊ณ  ํ•„์š”ํ•œ ์กฐ์ • ์‚ฌํ•ญ์„ ์‚ฌ์ „์— ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ ์‚ฌํ•ญ 3~8์˜ ์ผ์ •:

  • ์ดˆ๊ธฐ ์›” (7์›” 1์ผ): ์ด ๊ธฐ๊ฐ„์€ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ๋ฉ”์ธ๋„ท ๋ฏธ๋Ÿฌ ๋…ธ๋“œ์— ์ƒˆ๋กœ์šด ๋กœ์ง์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์ด 0% ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
  • 1๊ฐœ์›” ์ข…๋ฃŒ ์‹œ์  (8์›” 1์ผ): ์ „์ฒด ํŠธ๋ž˜ํ”ฝ์˜ 10%๊ฐ€ ๋ฉ”์ธ๋„ท์˜ ์ƒˆ๋กœ์šด ๋…ผ๋ฆฌ๋กœ ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค.
  • 2๊ฐœ์›” ์ข…๋ฃŒ ์‹œ์  (9์›” 1์ผ): ์ „์ฒด ํŠธ๋ž˜ํ”ฝ์˜ 100%๊ฐ€ ๋ฉ”์ธ๋„ท์˜ ์ƒˆ๋กœ์šด ๋…ผ๋ฆฌ๋กœ ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ ์‚ฌํ•ญ 1 ๋ฐ 2์˜ ์ผ์ •:

  • 12์›” 1์ผ: ์ฃผ์†Œ ํ•ด๊ฒฐ ๋ฐ ๊ฒฐ์ œ์ž ์ž”์•ก ๊ฒ€์ฆ ๊ธฐ๋Šฅ์ด ๋ฉ”์ธ๋„ท์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ“š HIP1217 ๊ณต์‹ ๋ฌธ์„œ: https://hips.hedera.com/hip/hip-1217

๐Ÿ“š ํ—ค๋ฐ๋ผ์˜ ๋ชจ๋“  ๊ฒƒ, ํ•œ๊ณณ์—! “ํ—ค๋ฐ๋ผ ์ง€์‹์ฐฝ๊ณ  ํ—ค๋ฐ๋ผ๊น€์น˜์™€ ํ•จ๊ป˜ํ•˜์„ธ์š”!

๐Ÿ“บ https://www.youtube.com/@HederaKimchi

๐Ÿ’ฌ X: https://x.com/HederaKimchi

๐Ÿ“ฒ Telegram (KR): https://t.me/HashgraphKorea

๐ŸŸก ์นด์นด์˜ค (PIN: 0916): https://open.kakao.com/o/gmfIGP0

๋Œ“๊ธ€