solana에서 account란?

김병훈·2022년 6월 22일
0

blockchain

목록 보기
8/13

1.1 클라이언트가 솔라나와 상호작용하는 방식은 다음의 그림으로 설명할 수 있습니다.

  • 위 그림을 설명 드리기 앞서 먼저 Account가 무엇인지 알면 편합니다.

1.2 Account란 무엇인가

  • 솔라나에서 상태(값)을 저장하는 공간. SHA256 함수로 생성한 256bit Hash 값으로 표현한다고 합니다.
  • 주소, 계좌, 계정과 혼용해서 지칭합니다.
  • 상태(값) 을 저장하는 공간이기 때문에 space에 대한 지불 = rent fee 를 내서 원하는 만큼의 공간을 sol로 지불해야합니다.
    - get_minimum_balance_for_rent_exemption(165)["result"] 의 값이 TOKEN_PROGRAM_ID
    가 직접 책정한 rent fee 입니다. 0.00203928 SOL

Account Field

  • 아래와 같이 program 저장용일 때는 owner가 프로그램의 주소 (컨트랙트의주소)
  • 만약 Account가 Data 저장용 일 때는 owner가 지갑의 주소가 되는 것으로 파악
    - 토큰 전송을 하면서 owner를 지갑주소로 값을 넣어줬기 때문

Account Type

  • Program 저장용 (컨트랙트 저장용)
    • System(Native) Program → 기본적으로 빌트인 되어있는 것
    • Program → 유저가 만드는 컨트랙트들은 모두 프로그램입니다.
  • Data 저장용 (10MB)
    • System owned → 똑같이 기본적으로 빌트인 되어있는 것
    • Program owned

1.3 솔라나와 이더리움의 차이점

  1. 첫번째 솔라나 컨트랙트 작성은 solidity가 아닌 Rust로 작성됩니다.
  2. 솔라나에서는 컨트랙트를 프로그램이라고 지칭합니다.
  3. 이더리움은 컨트랙트를 만들 때 컨트랙트 안에 필요한 데이터들도 같이 있지만, 솔라나는 컨트랙트 안에 데이터가 없습니다.
  4. 위의 그림처럼 밖에있는 데이터를 참고하기 때문에 밖에 있는 어떤 데이터를 account로 만들고 이 account 에 적혀있는 데이터를 program이 읽는 방식으로 접근을 합니다.
  5. 만약 프로그램이 해당 account에 대해서 권한이 없으면 데이터를 읽거나 쓸수가 없습니다. 그래서 프로그램들은 필드에 owner 필드를 꼭 가지고 있습니다. 이 owner가 되게 중요한 의미를 갖는데, system이 가지고 있는 프로그램들이 있고 유저가 가지고 있는 프로그램들이 있는데 유저가 가지고 있는 프로그램들은 오너가 유저로 바뀌는 것 입니다. 필드에 데이터 필드는 실제로 데이터가 저장되는 주소를 뜻합니다.
profile
블록체인 개발자의 꿈을 위하여

0개의 댓글