스패로우 월렛으로 인스크립션과 오디널 수집하기

ord 지갑을 설정할 수 없거나 아직 설정하지 않은 사용자는 해당 지갑에서 지출하는 방식에 매우 주의를 기울인다면 대체 비트코인 지갑으로 인스크립션과 오디널을 받을 수 있다.

이 가이드는 ord와 호환되며 나중에 ord로 가져오기 할 수 있는 스패로우 월렛을 사용해 지갑을 어떻게 생성하는지에 기본 단계를 설명한다

⚠️⚠️ 경고!! ⚠️⚠️

일반적으로 이 방법을 사용하는 경우, 이 지갑을 스패로우 소프트웨어에 사용해 수신 전용(receive-only) 지갑으로 사용해야 한다.

어떻게 하는지 확실하지 않다면 이 지갑에서 사토시를 사용(spend) 하지 말자. 이 경고에 주의하지 않으면 실수로 오디널과 인스크립션 대한 액세스를 아주 쉽게 잃을 수 있다.

지갑 설정 및 수신하기

릴리즈 페이지에서 당신 운영체제의 맞는 스패로우 월렛을 다운로드한다.

File -> New Wallet을 선택하고 ord라는 새 지갑을 생성한다.

Script TypeTaproot (P2TR)로 변경하고 New or Imported Software Wallet 옵션을 선택한다.

Use 12 Words을 선택한 다음 Generate New를 클릭한다. 비밀번호는 비워둔다.

새로운 12단어 BIP39 시드 문구가 생성된다. 지갑에 액세스하기 위한 백업용이므로 안전한 곳에 적어두자. 절대로 이 시드 문구를 다른 사람에게 공유하거나 보여주지 말자.

시드 문구를 적었으면 Confirm Backup을 클릭한다.

적어둔 시드 문구를 다시 입력한 다음 Create Keystore을 클릭한다.

Import Keystore를 클릭한다.

Apply를 클릭한다. 원하는 경우 지갑의 비밀번호를 설정한다.

이제 ord와 호환되는 지갑을 갖게 되었으며, BIP39 시드 문구를 사용하여 ord로 가져오기 할 수 있다. 오디널 또는 인스크립션을 받으려면 Receive 탭을 클릭하고 새 주소를 복사한다.

수신을 원할 때마다 기존 주소를 재사용하지 말고 새 주소를 사용해야 한다.

비트코인은 다른 블록체인 지갑들과 달리 새 주소를 무제한으로 생성할 수 있다는 점을 유의하자. Get Next Address 버튼을 클릭하면 새 주소를 생성할 수 있다. 앱의 Addresses 탭에서 모든 주소를 확인할 수 있다.

각 주소에 레이블(label)을 추가하여 사용 용도를 추적할 수 있다.

수신된 인스크립션 확인하기/보기

인스크립션을 받으면 스패로우의 Transactions 탭에 새 트랜잭션이 표시되고, UTXOs 탭에 새 UTXO가 표시된다.

처음에 이 트랜잭션은 "미확인”(“Unconfirmed”) 상태일 수 있으며, 완전히 수신하려면 이 트랜잭션이 비트코인 블록으로 채굴될 때까지 기다려야 한다.

트랜잭션의 상태를 추적하려면 트랜잭션을 마우스 오른쪽 버튼으로 클릭하고 Copy Transaction ID를 선택한 다음 해당 트랜잭션 ID를 mempool.space에 붙여넣기 하면 된다.

트랜잭션이 확인되면 UTXOs 탭으로 이동하여 확인하려는 UTXO를 찾아 Output을 마우스 오른쪽 버튼으로 클릭하고 Copy Transaction Output를 선택하여 인스크립션의 유효성을 검사하고 확인할 수 있다. 그런 다음 이 트랜잭션 출력 ID를 ordinals.com 검색에 붙여넣을 수 있다.

UTXO 동결하기

위에서 설명한 것처럼, 각 인스크립션은 미사용 트랜잭션 출력값(UTXO)에 저장된다. 실수로 인스크립션을 사용하지 않도록 매우 주의해야 하며, 이런 일이 발생하지 않도록 하는 한 가지 방법은 UTXO를 동결(freeze)하는 것이다.

이렇게 하려면 UTXOs 탭으로 이동하여 동결하려는 UTXO를 찾은 다음 Output을 마우스 오른쪽 버튼으로 클릭하고 Freeze UTXO을 선택한다.

이 UTXO(인스크립션)는 이제 동결을 해제할 때까지 스패로우 지갑 내에서 사용할 수 없다.

ord 지갑으로 가져오기

For details on setting up Bitcoin Core and the ord wallet check out the Wallet Guide

ord를 설정할 때 ord wallet create을 실행하여 새로운 지갑을 생성하는 대신, 스패로우 월렛에서 생성한 시드 문구와 ord wallet restore “BIP39 SEED PHRASE”를 사용하여 기존 지갑을 가져오기 할 수 있다.

현재 가져오기 한 지갑이 블록체인에 대해 자동으로 재스캔되지 않는 버그가 있다. 이 문제를 해결하려면 bitcoin core cli(bitcoin-cli -rpcwallet=ord rescanblockchain 767430)를 사용하여 수동으로 재스캔을 트리거해야 한다

그런 다음 ord wallet inscriptions을 사용하여 지갑의 인스크립션을 확인할 수 있다

이전에 ord로 지갑을 생성한 적이 있다면 기본 이름의 지갑이 이미 있을 것이므로 가져오기 한 지갑에 다른 이름을 지정해야 한다. 모든 ord 명령에 --wallet 매개변수를 사용하여 다른 지갑을 참조할 수 있다. 예시:

ord wallet --name ord_from_sparrow wallet restore --from mnemonic

ord wallet --name ord_from_sparrow wallet inscriptions

bitcoin-cli -rpcwallet=ord_from_sparrow rescanblockchain 767430

스패로우 월렛으로 인스크립션 보내기

⚠️⚠️ 경고 ⚠️⚠️

Bitcoin Core 노드를 설정하고 ord 소프트웨어를 실행하는 것을 적극 권장하지만, 스패로우 월렛에서 안전한 방법으로 인스크립션을 전송할 수 있는 몇 가지 제한된 방법이 있다. 이 방법은 권장되지 않으며, 자신이 무엇을 하는지 완전히 이해하는 경우에만 이 방법을 사용해야 한다는 점에 유의하기 바란다.

ord 소프트웨어를 사용하면 인스크립션 전송을 자동으로 안전하게 처리할 수 있으므로 여기서 설명하는 복잡성을 상당 부분 제거할 수 있다.

⚠️⚠️ 추가 경고 ⚠️⚠️

스패로우 인스크립션 지갑을 사용해 인스크립션이 아닌 일반 비트코인을 송금하지 말자. 일반적인 비트코인 거래를 해야 하는 경우 스패로우에서 별도의 지갑을 설정하고 인스크립션 지갑을 따로 보관할 수 있다.

비트코인의 UTXO 모델

트랜잭션을 전송하기 전에 비트코인의 미사용 트랜잭션 출력값(UTXO) 시스템에 대한 올바른 멘털 모델을 갖추는 것이 중요하다. 비트코인의 작동 방식은 이더리움과 같은 다른 블록체인과 근본적으로 다르다. 이더리움에서는 일반적으로 이더를 저장하는 단일 주소가 있으며, 이더를 구분할 수 없으므로 이것은 단지 그 주소에 있는 총금액의 단일 값일 뿐이다. 비트코인은 매번 수신 때마다 지갑에 새 주소를 생성한다는 점에서 매우 다르게 작동하며, 지갑에 있는 주소로 SAT를 받을 때마다 새로운 UTXO를 생성하게 된다. 각 UTXO는 개별적으로 보고 관리할 수 있다. 사용하고자 하는 특정 UTXO를 선택할 수 있으며, 특정 UTXO를 사용하지 않도록 선택할 수도 있다.

일부 비트코인 지갑은 이러한 수준의 세부 정보를 노출하지 않으며, 지갑에 있는 모든 비트코인의 합산된 가치만 보여준다. 하지만 인스크립션을 전송할 때는 UTXO 제어가 가능한 스패로우와 같은 지갑을 사용하는 것이 중요하다.

보내기 전에 인스크립션 검사하기

앞서 설명한 것처럼 인스크립션은 SAT에 새겨지며, SAT는 UTXO 내에 저장된다. UTXO는 특정 값의 사토시 수(출력 값)를 가진 사토시의 모음이다. 일반적으로 (항상 그런 것은 아니지만) 인스크립션은 UTXO의 첫 번째 사토시에 새겨진다.

전송하기 전에 인스크립션을 검사할 때 가장 중요하게 확인해야 할 것은 UTXO의 사토시 중 인스크립션이 새겨진 사토시가 어느 것인지다.

이것을 하려면 위에서 설명한 수신된 인스크립션 확인하기/보기를 따라 ordinals.com에서 해당 인스크립션에 대한 인스크립션 페이지를 찾을 수 있다

여기에서 다음과 같은 해당 인스크립션에 대한 메타데이터를 찾을 수 있다:

여기서 확인해야 할 몇 가지 중요한 사항이 있다:

  • output 식별자가 전송하려는 UTXO의 식별자와 일치한
  • 인스크립션의 offset0이다 (이는 인스크립션이 UTXO의 첫 번째 SAT에 위치한다는 의미)
  • output_value에 트랜잭션 전송 수수료(우송료)를 충당할 수 있는 충분한 SAT가 있는지 확인한다. 필요한 정확한 금액은 트랜잭션에 대해 선택할 수수료율에 따라 다르다

위의 모든 사항이 당신 인스크립션에 해당하면 아래 방법을 사용하여 인스크립션을 보내도 안전할 것이다.

⚠️⚠️ 특히 offset 값이 0이 아닌 경우 인스크립션을 보낼 때 매우 주의하라. 이 경우 이 방법을 권장하지 않는다. 자신이 무엇을 하고 있는지 모르는 상태에서 이 방법을 사용하면 실수로 비트코인 채굴자에게 인스크립션을 전송할 수 있기 때문이다.

인스크립션 보내기

인스크립션을 보내려면 UTXOs 탭으로 이동하여 이전에 유효성을 확인한 인스크립션이 포함된 UTXO를 찾는다.

이전에 UXTO를 동결했다면 마우스 오른쪽 버튼으로 클릭한 후 동결 해제해야 한다.

전송하려는 UTXO를 선택하고, 이 UTXO 이 선택되어 있는지 확인한다. 인터페이스에 UTXO 1/1이 표시될 것이다. 이 것이 확인되면 Send Selected를 누르면 된다.

그러면 트랜잭션 생성(create transaction) 인터페이스가 표시된다. 안전한 송금인지 확인하기 위해 여기서 확인해야 할 몇 가지 사항이 있다:

  • 트랜잭션에는 입력(input)이 1개만 있어야 하며, 이 입력은 전송하려는 레이블이 있는 UTXO여야 한다
  • 트랜잭션에는 출력(output)이 1개만 있어야 하며 이는 인스크립션을 보낼 주소/레이블이다

예를 들어 입력이 여러 개이거나 출력이 여러 개인 등 거래가 조금이라도 다르게 보인다면 안전한 송금이 아닐 수 있으니, 더 많은 정보를 파악하거나 ord 지갑으로 가져오기 할 수 있을 때까지 전송을 중단해야 한다.

적절한 트랜잭션 수수료를 설정해야 하며, 보통 스패로우에서 합리적인 수수료를 추천해 주지만, 트랜잭션 전송에 대한 권장 수수료율을 확인하려면 mempool.space에서 확인할 수도 있다.

받는 사람 주소에 레이블을 추가해야 하는데, alice address for inscription #123와 같은 레이블이 이상적이다.

위의 확인사항을 통해 안전한 트랜잭션인지 확인하고 송금에 확신이 들면 Create Transaction을 클릭한다.

여기서도 거래가 안전한지 다시 한 번 확인할 수 있으며, 확신이 들면 Finalize Transaction for Signing을 클릭한다.

여기에서 Sign을 누르기 전에 모든 것을 다시 한 번 확인할 수 있다.

그리고 실제로 Broadcast Transaction을 누르기 전에 모든 것을 확인할 수 있는 마지막 기회가 주어진다. 트랜잭션을 브로드캐스트하면 비트코인 네트워크로 전송되고 멤풀로 전파되기 시작한다.

트랜잭션의 상태를 추적하려면 Transaction Id (Txid)를 복사하여 mempool.space에 붙여넣으면 된다

트랜잭션이 확인되면 ordinals.com에서 인스크립션 페이지를 확인하여 새 출력 위치(output location) 및 주소로 이동했는지 확인할 수 있다.

트러블 슈팅

스패로우 지갑에 트랜잭션/UTXO가 표시되지 않지만, 나는 mempool.space에서는 볼 수 있다!

지갑이 비트코인 노드에 연결되어 있는지 확인하자. 이를 확인하려면 Preferences-> Server 설정으로 이동하여 Edit Existing Connection을 클릭한다.

여기에서 노드를 선택하고 Test Connection를 클릭하여 스패로우가 성공적으로 연결할 수 있는지 확인할 수 있다.