자주 묻는 질문
이 섹션에서는 TON 블록체인에 관해 가장 자주 묻는 질문을 다룹니다.
개요
TON에 대해 간략하게 소개해 주시겠어요?
EVM 블록체인과의 주요 유사점과 차이점은 무엇인가요?
- [이더리움에서 톤으로](/배우기/소개#이더리움에서 톤으로)
- TON, 솔라나, 이더리움 2.0 비교
TON에 테스트 환경이 있나요?
- [테스트넷](/개발/스마트 컨트랙트/환경/테스트넷)
블록
블록 정보를 검색하는 데 사용되는 RPC 방식은 무엇인가요?
검증자가 생성한 블록. 라이트 서버를 통해 사용할 수 있는 기존 블록. 라이트 클라이언트를 통해 액세스할 수 있는 라이트 서버. 라이트 클라이언트는 지갑, 탐색기, 디앱 등과 같은 타사 도구를 구축했습니다.
- 라이트 클라이언트 코어에 액세스하려면 깃허브의 이 섹션을 확인하세요: 톤블록체인/톤라이브
또한 다음은 세 가지 수준 높은 타사 블록 탐색기입니다:
자세한 내용은 TON의 탐험가 문서에서 확인하세요.
블록 시간
2-5s
톤의 블록 시간 및 완료 시간 등 온체인 메트릭을 솔라나 및 이더리움과 비교하려면 ton.org/analysis에서 분석을 읽어보시기 바랍니다.
완료 시간
6초 미만
톤의 블록 시간 및 완료 시간 등 온체인 메트릭을 솔라나 및 이더리움과 비교하려면 ton.org/analysis에서 분석을 읽어보시기 바랍니다.
평균 블록 크기
max block size param 29
max_block_bytes:2097152
더 많은 실제 파라미터는 네트워크 설정에서 확인하세요.
TON의 블록 레이아웃은 어떻게 되나요?
레이아웃의 각 필드에 대한 자세한 설명입니다:
거래
트랜잭션 데이터를 가져오는 RPC 방법
- [위 답변 참조](/개발/방법/질문#거래에서 대체 가능한 토큰과 대체 불가능한 토큰을 발행하고 소각하고 전송하기 위한 표준화된 프로토콜이 있나요?)
TON 트랜잭션은 비동기식인가요 아니면 동기식인가요? 이 시스템의 작동 방식을 보여주는 문서에 액세스할 수 있나요?
TON 블록체인 메시지는 비동기식입니다:
- 발신자는 트랜잭션 본문(메시지 BOC)을 준비하여 Lite 클라이언트(또는 상위 툴)를 통해 브로드캐스트합니다.
- 라이트 클라이언트는 트랜잭션 실행 결과가 아닌 브로드캐스트 상태를 반환합니다.
- 발신자는 대상 계정(주소) 상태 또는 전체 블록체인 상태를 수신하여 원하는 결과를 확인합니다.
월렛 스마트 컨트랙트와 관련된 예시를 통해 TON 비동기 메시징이 어떻게 작동하는지 설명합니다:
지갑 컨트랙트 전송 예시(로우레벨):
트랜잭션이 100% 완료되었는지 확인할 수 있나요? 트랜잭션 레벨 데이터를 쿼리하는 것으로 이 정보를 얻을 수 있나요?
**짧은 답변: **거래가 완료되었는지 확인하려면 수취인의 계좌를 확인해야 합니다.
거래 인증에 대해 자세히 알아보려면 다음 예시를 참조하세요:
- 이동: 지갑 예시
- 파이썬: [TON으로 결제하는 스토어프론트 봇](/개발/앱/튜토리얼/텔레그램 봇에서 결제 허용)
- 자바스크립트: 만두 판매에 사용되는 봇
TON에서 트랜잭션의 레이아웃은 어떻게 되나요?
레이아웃의 각 필드에 대한 자세한 설명입니다:
- [트랜잭션 레이아웃](/개발/데이터-포맷/트랜잭션 레이아웃)
트랜잭션 일괄 처리가 가능한가요?
예, TON에서 트랜잭션 일괄 처리는 두 가지 방법으로 수행할 수 있습니다:
- TON의 비동기적 특성을 활용하여, 즉 독립적인 트랜잭션을 네트워크에 전송함으로써
- 작업을 수신하고 일괄적으로 실행하는 스마트 컨트랙트를 활용하면 다음과 같이 할 수 있습니다.
일괄 기능 컨트랙트(고부하 지갑) 사용 예시:
기본 지갑(v3/v4)은 한 번의 거래로 여러 개의 메시지(최대 4개) 전송도 지원합니다.
표준
TON에서 사용할 수 있는 통화 정확도는 어느 정도인가요?
9자리_ 9자리
메인넷에서 지원하는 소수점 이하 자릿수: 9자리.
거래에서 대체 가능한 토큰과 대체 불가능한 토큰의 발행, 소각, 전송을 위한 표준화된 프로토콜이 있나요?
대체 불가능한 토큰(NFT):
제톤(토큰):
기타 표준:
제톤(토큰)과 NFT로 이벤트를 파싱하는 예제가 있나요?
TON에서는 모든 데이터가 boc 메시지로 전송됩니다. 즉, 트랜잭션에서 NFT를 사용하는 것은 예외적인 이벤트가 아닙니다. 오히려 표준 지갑과 관련된 트랜잭션과 마찬가지로 (NFT 또는 지갑) 컨트랙트와 주고받는 일반적인 메시지입니다.
그러나 특정 인덱싱된 API를 사용하면 계약과 주고받는 모든 메시지를 보고 특정 요구 사항에 따라 필터링할 수 있습니다.
이 프로세스가 어떻게 진행되는지 더 자세히 알아보려면 [결제 처리](/개발/앱/자산 처리/) 섹션을 참조하세요.
계정 구조
주소 형식은 무엇인가요?
ENS와 유사한 네임드 계정을 가질 수 있나요?
예, TON DNS를 사용합니다:
일반 계정과 스마트 컨트랙트를 어떻게 구분하나요?
주소가 토큰 주소인지 어떻게 알 수 있나요?
제톤** 컨트랙트는 표준 인터페이스를 구현하고 get_wallet_data() 또는 get_jetton_data() 메서드에서 데이터를 반환해야 합니다.
다른 계정과 다른 규칙이나 방식이 적용되는 특별한 계정(예: 네트워크 소유 계정)이 있나요?
TON 내부에는 마스터체인이라는 특별한 마스터 블록체인이 있습니다. 이는 네트워크 구성, 검증자 관련 계약 등 네트워크 전반의 계약으로 구성됩니다:
마스터체인, 워크체인, 샤드체인에 대한 자세한 내용은 톤 블록체인 개요 문서를 참조하세요: 블록체인의 블록체인.
좋은 예로 마스터체인의 일부인 스마트 거버넌스 컨트랙트를 들 수 있습니다:
스마트 계약
TON에서 계약 배포 이벤트를 감지할 수 있나요?
계정 주소는 초기 코드와 초기 데이터를 포함하는 초기 상태_에서 결정론적으로 생성됩니다(지갑의 경우 초기 데이터에는 다른 매개변수 중 공개 키가 포함됩니다). 구성 요소가 변경되면 주소도 그에 따라 변경됩니다.
스마트 컨트랙트는 초기화되지 않은 상태로 존재할 수 있으며, 이는 블록체인에서 해당 상태를 사용할 수 없지만 컨트랙트의 잔액이 0이 아닌 상태를 의미합니다. 초기 상태 자체는 나중에 내부 또는 외부 메시지와 함께 네트워크에 전송될 수 있으므로, 이를 모니터링하여 컨트랙트 배포를 감지할 수 있습니다.
존재하지 않는 컨트랙트에서 메시지 체인이 중단되는 것을 방지하기 위해 TON은 "바운스" 기능을 사용합니다. 이 문서에서 자세히 알아보세요:
스마트 컨트랙트의 업그레이드 가능성이 사용자에게 위협이 되나요?
현재 스마트 컨트랙트를 업데이트하는 기능은 일반적인 관행이며 대부분의 최신 프로토콜에서 널리 사용되고 있습니다. 업데이트 기능을 통해 버그를 수정하고 새로운 기능을 추가하며 보안을 개선할 수 있기 때문입니다.
위험을 완화하는 방법
- 평판이 좋고 잘 알려진 개발팀이 있는 프로젝트에 주목하세요.
- 평판이 좋은 프로젝트는 항상 독립적인 코드 감사를 실시하여 코드가 안전하고 신뢰할 수 있는지 확인합니다. 평판이 좋은 감사 회사에서 여러 차례 감사를 완료한 프로젝트를 찾아보세요.
- 활발한 커뮤니티와 긍정적인 피드백은 프로젝트의 신뢰성을 나타내는 추가적인 지표가 될 수 있습니다.
- 프로젝트가 업데이트 프로세스를 어떻게 구현하는지 정확히 살펴보세요. 프로세스가 투명하고 분산되어 있을수록 사용자에 대한 위험이 줄어듭니다.
사용자가 계약 소유자가 업데이트를 통해 특정 조건을 변경하지 않는다는 것을 어떻게 확신할 수 있나요?
컨트랙트를 확인해야 소스 코드를 확인하고 변경되지 않도록 하는 업데이트 로직이 없는지 확인할 수 있습니다. 컨트랙트에 실제로 코드를 변경하는 메커니즘이 없는 경우, 배포 후에도 컨트랙트 조건은 변경되지 않습니다.
때로는 업데이트 로직이 존재하지만 코드를 변경할 수 있는 권한이 '빈' 주소로 이동되어 변경이 불가능할 수도 있습니다.
코드를 기존 주소에 다시 배포할 수 있나요, 아니면 새 컨트랙트로 배포해야 하나요?
예, 가능합니다. 스마트 컨트랙트가 특정 명령어(set_code()
)를 수행하면 코드가 업데이트될 수 있으며 주소는 동일하게 유지됩니다.
컨트랙트가 처음에 set_code()
를 실행할 수 없다면(자체 코드 또는 외부에서 오는 다른 코드의 실행을 통해), 해당 코드는 절대 변경할 수 없습니다. 누구도 동일한 주소에서 다른 코드로 컨트랙트를 다시 배포할 수 없습니다.
스마트 컨트랙트를 삭제할 수 있나요?
예, 스토리지 요금 누적(계약이 삭제되려면 잔액이 -1톤에 도달해야 함) 또는 모드 160으로 메시지를 보내면 됩니다.
스마트 컨트랙트 주소는 대소문자를 구분하나요?
예, 스마트 컨트랙트 주소는 base64 알고리즘을 사용하여 생성되므로 대소문자를 구분합니다. 스마트 컨트랙트 주소에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
톤 가상 머신(TVM)은 EVM과 호환되나요?
TON은 완전히 다른 아키텍처를 활용하기 때문에 TVM은 이더리움 가상 머신(EVM)과 호환되지 않습니다(TON은 비동기식인 반면 이더리움은 동기식입니다).
솔리디티에서 TON에 글을 쓸 수 있나요?
이와 관련하여, TON 생태계는 이더리움의 솔리디티 프로그래밍 언어로 개발을 지원하지 않습니다.
하지만 솔리디티 구문에 비동기 메시지를 추가하고 낮은 수준에서 데이터와 상호 작용할 수 있는 기능을 추가하면 FunC가 탄생합니다. FunC는 대부분의 최신 프로그래밍 언어에 공통된 구문을 사용하며, TON에서 개발하기 위해 특별히 설계되었습니다.
원격 프로시저 호출(RPC)
데이터 추출에 권장되는 노드 공급자는 다음과 같습니다:
API 유형:
- 다양한 API 유형에 대해 자세히 알아보세요(인덱싱, HTTP, ADNL).
노드 공급자 파트너:
- https://toncenter.com/api/v2/
- getblock.io
- https://www.orbs.com/ton-access/
- 톤센터/톤-http-api
- nownodes.io
- https://dton.io/graphql
TON 커뮤니티의 프로젝트가 있는 TON 디렉터리입니다:
아래는 TON 블록체인의 퍼블릭 노드 엔드포인트와 관련된 정보를 얻는 데 사용되는 두 가지 주요 리소스입니다(TON 메인넷과 TON 테스트넷 모두 해당).
- [네트워크 설정](/개발/하우투/네트워크 설정)
- 예제 및 튜토리얼