Klaytn 네트워크에 연결되는 원리, 전송의 개념이 헷갈려서 질문드립니다

안녕하세요. 프론트엔드 쪽 개발을 목적으로 블록체인 공부하다가 조금 헷갈리는 개념이 있어서요. Ethereum이나 Klaytn 네트워크를 중심으로 질문을 드립니다.

  1. EOA가 메시지호출(혹은 컨트랙트 생성) 같은 트랙잭션을 블록체인 네트워크의 노드에 전달할 때, 어떻게 전달되나요? 절대로 특정노드에 직접연결되진 않을 거고, Klaytn SDK인 Caver같은 곳에서 RPC 통신시 전달할 주소를 DNS Seeding하는 함수가 있는 걸까요?

  2. EOA나 CA의 Storage 트리에는 어떤 정보들이 저장될까요? 방식과 예시가 궁금합니다…

  3. 만약 ERC-721이나 KIP-17 표준과 같은 NFT 스마트컨트랙트에서 토큰을 발행한다면 해당 CA의 Stoage에 저장되는 것일까요? 만약 그렇다면, CA에서 EOA로 해강 토큰을 전송한다는 것은 CA의 Storage에서 EOA의 Storage로 전송이 된다는 것일까요?

  4. NFT 스마트컨트랙트를 scope 페이지에서 조회하면 발행된 토큰들을 쉽게 조회할 수 있는데, 어떤 방식으로 추적이 되는 걸까요? 각 블록 헤더를 계속 읽어서 트랜잭션 트리에서 검색하는 방식 인걸까요? 아니면 CA의 Storage에 해당 정보가 뭉쳐서 있는 걸까요?

혼자서 공부하다보니 조금 이해하기 난해한 부분이 있어서 여쭤봅니다…해당 부분에 대해 참고할만한 글이 있을까요?

정확하지는 않을 수 있으나 제가 알고 있는 정보를 최대한 공유 드리겠습니다. 혹시라도 틀린 부분이 있다면 피드백 부탁 드릴게요~

  1. BApp 개발 시 caver 연동 과정에서 EN 주소를 알려줘야 합니다. Public EN 주소를 사용할 수도 있고, 개인적으로 운영하는 EN의 주소를 사용할 수도 있습니다.
    DNS Seeding은 노드를 설치하는 과정에서 사용되는 것이므로 메세지 호출 과정에서는 필요하지 않습니다(이더리움이나 클레이튼은 Boot Node를 활용).

  2. state DB에 대해서 학습해보시면 좋을 것 같습니다.

  3. CA의 storage에서 처리됩니다. KIP 17 표준 코드나 오픈소스로 공유된 실제 코드들을 확인해보시면 mapping 변수와 그 mapping 변수를 활용하여 특정 address에 minting하는 코드를 확인할 수 있습니다.

  4. 아마 function selector 기능을 활용하여 개발할 것으로 보입니다. 이 부분을 확인해보시면 좋을 것 같습니다.

2개의 좋아요