본문으로 건너뛰기

Sui 주소 생성

주소는 블록체인 네트워크에서 고유하고 익명인 식별자이다. Sui에서 주소는 다음을 수행할 수 있는 온체인 위치를 나타낸다:

  • 토큰을 보유하고 전송한다.

  • NFT와 Move 패키지 같은 객체를 소유한다.

  • 트랜잭션을 제출하고 스마트 계약과 상호작용한다.

주소를 만들기 위해 개인 식별 정보를 제공할 필요는 없다. 한 사람이 여러 주소를 만들고 소유할 수 있다.

모든 Sui 주소는 고유한 32바이트 식별자이며, 별칭으로 참조하지 않는 한 0x 접두사가 붙은 16진수 인코딩으로 표시된다. 예:

0x02a212de6a9dfa3a69e22387acfbafbb1a9e591bd9d636e7895dcfc8de05f331

암호학적 해시 함수는 공개 키를 생성하고, 모든 주소는 이 공개 키에서 파생된다. 각 공개 키에는 주소와 주소가 소유한 객체에 접근하는 해당 개인 키가 있다. 주소와 관련 키 쌍을 합쳐 계정이라고 한다.

Sui 주소가 파생되는 방식과 암호학 관련 주제는 자세히 알아보기를 참조한다.

Sui 주소 얻기

주의

Sui 클라이언트 설정에서 이미 주소가 있거나 새 주소를 만들었다면 온보딩 단계를 계속하기 위해 Faucet에서 SUI 받기로 건너뛸 수 있다.

기본적으로 Sui 클라이언트가 처음 실행되면 클라이언트 설정을 요청한다. 이 초기 구성은 새 Sui 주소, 키 쌍, 관련 비밀 복구 구문을 생성한다.

초기 클라이언트 구성 밖에서 새 Sui 주소를 만들려면 다음을 실행한다:

$ sui client new-address ed25519

이 명령은 키 쌍 체계를 ed25519 타입으로 지정한다.

The options are:

  • ed25519: Small key size and compact signatures.

  • secp256k1: Provides security through generating and verifying keys using ECDSA.

  • secp256r1: Uses randomly generated curves to generate keys.

The client will return your new address and 12-word recovery phrase:

Generated new key pair for address with scheme "ed25519" [0xb9c83a8b40d3263c9ba40d551514fbac1f8c12e98a4005a0dac072d3549c2442]
Secret Recovery Phrase : [cap wheat many line human lazy few solid bored proud speed grocery]

복구 구문

모든 Sui 주소에는 복구 구문이 있다. 복구 구문은 주소의 키 쌍 접근 권한을 잃었을 때 주소를 복구하는 데 사용하는 무작위 12개 단어 시퀀스이다.

위험

Sui는 복구 구문을 한 번만 표시한다. 시스템은 이를 어디에도 자동으로 저장하지 않으며, 직접 저장하지 않으면 다시 가져올 수 없다.

복구 구문은 주소가 소유한 모든 객체와 토큰에 접근할 수 있게 하므로 안전하게 보관하고 누구와도 공유하지 않는다.

복구 구문으로 주소를 복구하려면 다음 명령을 사용한다:

$ sui keytool import '<RECOVERY_PHRASE>' <KEY_SCHEME>

<RECOVERY_PHRASE>를 12단어 복구 구문으로 바꾼다. 전체 복구 구문은 작은따옴표 '로 감싸야 한다. 단어는 올바른 순서로 입력해야 한다.

<KEY_SCHEME>을 주소를 처음 만들 때 사용한 암호화 타입(예: ed25519)으로 바꾼다.

성공하면 CLI가 주소를 복원하고 CLI 출력에 표시한다.

sui.keystore

Sui는 각 주소의 개인 키를 macOS/Linux 또는 Windows 시스템의 ~/.sui/sui_config/sui.keystore 또는 %USERPROFILE/.sui/sui_config/sui.keystore 파일에 저장한다.

이 파일에는 다음과 유사한 내용이 들어 있다:

[
"AK6q1/Yzz5qmTfHGLot4wkbRP5lP5NUQVDlf3FggLrKZ",
"ADAWAFS+J9KcDjFmAiVI/e9ZluG0id9AnI6a7Bk5tH+G",
"AJ42rQfCrPIfrQvzCgeHVDCcQZ4R1qAzKtob61VTw5k5",
"AHoKrY7DDnUOq2RgP7gXLPa86bFfzqEMvmOs7TmHtST+"
]

시스템에서 새 주소를 만들면 해당 주소의 개인 키로 구성된 새 줄이 이 파일에 추가된다. 다른 사람이 계정에 접근하는 데 사용할 수 있으므로 누구에게도 노출하지 않는다.

위험

sui.keystore 파일은 웹사이트 비밀번호, 지문 같은 생체 데이터 또는 다른 인증 자격 증명을 포함하는 머신의 로컬 keystore와 같지 않다. 머신의 로컬 keystore는 Sui에서 트랜잭션에 서명하고 제출할 수 없다. sui.keystore 파일에 포함된 관련 키가 있는 주소만 트랜잭션에 서명하고 제출할 수 있다.

주소 별칭

별칭은 Sui 주소의 전체 32바이트 16진수 문자열 대신 사용할 수 있는 사람이 읽기 쉬운 이름이다. 스크립트와 CLI 명령에서 주소를 더 쉽게 참조하기 위해 주소를 사용할 수 있는 모든 곳에서 별칭을 사용할 수 있다.

주소를 만들면 Sui는 기본적으로 무작위 별칭을 할당한다. 다음 명령으로 주소의 현재 별칭을 볼 수 있다:

$ sui client addresses

출력에는 주소, 별칭, 로컬 주소가 여러 개 있는 경우 활성 주소 표시가 포함된다:

╭───────────────────────┬────────────────────────────────────────────────────────────────────┬────────────────╮
│ alias │ address │ active address │
├───────────────────────┼────────────────────────────────────────────────────────────────────┼────────────────┤
│ vigorous-spinel │ 0x6ebb36a3c1ab2124c082d93f60f518f70494b82d8d13c5aabb3abad6ec8cd82d │ * │
╰───────────────────────┴────────────────────────────────────────────────────────────────────┴────────────────╯

그런 다음 별칭을 다른 값으로 업데이트하려면 다음 명령을 사용한다:

$ sui keytool update-alias <OLD-ALIAS> <NEW-ALIAS>

이제 명령에서 주소 대신 별칭을 사용할 수 있다. 예:

$ sui client objects <NEW-ALIAS>

모든 로컬 Sui 주소 보기

활성 주소는 Sui 클라이언트가 현재 사용하는 주소이다. 명령에서 --address 플래그로 달리 지정하지 않는 한 이 주소가 만든 객체와 제출한 트랜잭션을 소유한다.

현재 활성 주소를 보려면 다음 명령을 사용한다:

$ sui client active-address

로컬 머신의 모든 주소를 보려면 다음을 실행한다:

$ sui keytool list

이 명령은 모든 주소와 해당 별칭, 공개 키, 키 체계, peer ID를 반환한다.

╭────────────────────────────────────────────────────────────────────────────────────────────╮
│ ╭─────────────────┬──────────────────────────────────────────────────────────────────────╮ │
│ │ alias │ vigorous-spinel │ │
│ │ suiAddress │ 0x6ebb36a3c1ab2124c082d93f60f518f70494b82d8d13c5aabb3abad6ec8cd82d │ │
│ │ publicBase64Key │ AKDCajKN877Uc7o8NP2cQVJkSewhq1ZbWgw5LgpWVqbj │ │
│ │ keyScheme │ ed25519 │ │
│ │ flag │ 0 │ │
│ │ peerId │ a0c26a328df3bed473ba3c34fd9c41526449ec21ab565b5a0c392e0a5656a6e3 │ │
│ ╰─────────────────┴──────────────────────────────────────────────────────────────────────╯ │
╰────────────────────────────────────────────────────────────────────────────────────────────╯

keytool 명령에 관한 자세한 내용은 Sui Keytool CLI 문서를 참조한다.

활성 주소 변경

다른 주소로 전환하려면 먼저 활성 주소와 전환 가능한 주소를 확인한다:

$ sui client addresses

그런 다음 다른 주소로 전환하려면 다음 명령을 사용한다:

$ sui client switch --address <ADDRESS>

주소 정보 조회

Sui 네트워크 익스플로러로 주소, 토큰 잔액, 주소가 소유한 객체에 관한 자세한 정보를 찾을 수 있다. 많이 쓰이는 Sui 익스플로러는 다음과 같다:

위험

익스플로러에 표시되는 데이터는 주소를 만든 네트워크에 따라 다르다. 이전에 Sui 클라이언트 설정 페이지를 따라왔다면 Testnet을 사용하고 있을 가능성이 높다. Sui 익스플로러에서 Testnet을 선택하거나 https://testnet.suivision.xyz/ 같은 전용 URL을 사용해야 한다.

CLI에서 주소가 소유한 모든 객체를 보려면 다음 명령을 사용한다:

$ sui client objects <ADDRESS>

주소를 제공하지 않으면 이 명령은 활성 주소가 소유한 모든 객체를 반환한다.

다음 단계

Faucet에서 SUI 받기

Faucet에서 SUI를 받아 Testnet에 패키지를 배포한다.

Hello, World!

"Hello, World!" 프로젝트를 클론하고 빌드한다.