스텔라 키 생성 방법

6464 단어

키 페어란 무엇입니까?



스텔라 키는 네트워크에서 사용자를 인증하고 식별하는 데 사용됩니다. Stellar 계정은 공개 키(계정 ID라고도 함)로 고유하게 식별됩니다. Stellar 계정 ID는 문자G로 시작하는 문자열이며 이 키는 다른 사람과 공유해도 안전합니다. 계정은 S 로 시작하는 문자열인 비밀 키 시드를 사용하여 제어되며 다른 사람이나 애플리케이션과 공유해서는 안 됩니다. 비밀 키 시드는 개인 키를 파생시키는 데 사용됩니다. 개인 키와 공개 키를 함께 키 쌍이라고 합니다. 개인 키는 원장의 Stellar 계정 상태를 수정하는 작업에 서명하는 데 사용됩니다.

SDK 중 하나를 사용하여 키 쌍 생성



이제 키 쌍이 무엇이고 용도가 무엇인지 알았으므로 4개의 서로 다른 SDK를 사용하여 키 쌍을 생성하는 방법을 확인할 수 있습니다.

자바스크립트


stellar-base 패키지는 Stellar Development Foundation 및 is available on npm에서 공식적으로 관리합니다.

import { Keypair } from "stellar-base";

// Generate random key pair
Keypair.random();

// Generate key pair from secret
Keypair.fromSecret("SA6KO...PRET");

// Generate key pair from account id
Keypair.fromPublicKey("GBMZ...ZPJK");



stellar-base 상자는 키 쌍을 포함하여 낮은 수준의 스텔라 유형을 제공합니다. crates.io 에서 직접 가져올 수 있습니다. Rust SDK는 개인 키와 공개 키를 모두 포함하는 KeyPair 유형과 공개 키만 포함하는 PublicKey 유형을 제공합니다. 이 API 설계를 사용하면 실수로 공개 키로만 구성된 키 쌍으로 트랜잭션에 서명하는 것이 불가능합니다.

use stellar_base::crypto::{KeyPair, PublicKey};

// Generate random key pair
KeyPair::random()?;

// Generate key pair from secret
KeyPair.from_secret_seed("SA6KO...PRET")?;

// Generate public key from account id
PublicKey::from_account_id("GBMZ...ZPJK")?;



dotnet-stellar-sdk는 Stellar 생태계와 상호 작용하는 C# 라이브러리입니다. .NET Standard 2.0 이상을 대상으로 하는 모든 언어에서 사용할 수 있습니다.

using stellar_dotnet_sdk;

// Generate random key pair
KeyPair.Random();

// Generate key pair from secret
KeyPair.FromSecretSeed("SA6KO...PRET");

// Generate key pair from account id
KeyPair.FromAccountId("GBMZ...ZPJK");


파이썬



Pythonstellar-sdkPyPi에서 사용할 수 있으며 pip와 함께 설치할 수 있습니다.

from stellar_sdk import Keypair

# Generate random key pair
Keypair.random();

# Generate key pair from secret
Keypair.from_secret("SA6KO...PRET");

# Generate key pair from account id
Keypair.from_public_key("GBMZ...ZPJK");


무대 뒤에서 무슨 일이 일어나고 있습니까?



Stellar는 트랜잭션에 EdDSA 서명 체계를 사용합니다. 개인 키는 개인 키 자체를 생성하는 데 사용되는 32바이트 시드로 수명을 시작합니다. 공개 키는 개인 키에서 파생되거나 32바이트 버퍼에서 직접 생성될 수 있습니다. 개인 키와 공개 키가 어떻게 파생되는지 자세히 설명하지는 않겠습니다. 관심이 있는 경우 this excellent blog post by Brian Warner에서 자세한 내용을 찾을 수 있습니다.

Stellar 계정 ID에서 공개 키로 이동하는 것은 매우 간단합니다. 계정 ID(G 로 시작하는 문자열)를 base32로 디코딩하고 35바이트의 버퍼를 얻는 것으로 시작합니다. 첫 번째 바이트에는 키 유형(비밀 시드, 계정 ID, 사전 승인된 트랜잭션 또는 hash(x))에 대한 정보가 포함되고, 다음 32바이트에는 키 자체(또는 비밀 키 시드)가 포함되며, 마지막 2바이트에는 키 체크섬. Stellar는 바이트 1에서 32까지의 체크섬에 CRC-16 XMODEM을 사용합니다.



공개 키에서 Stellar 계정 ID를 계산하는 프로세스는 비슷합니다. 버전 바이트를 공개 키 바이트와 연결하여 33바이트 길이의 페이로드를 얻습니다. 그런 다음 페이로드의 16비트 CRC를 계산합니다. 마지막으로 페이로드와 체크섬을 연결하고 base32를 사용하여 인코딩합니다.

좋은 웹페이지 즐겨찾기