κ³μ
μ΄ μ±ν°μμλ XRP Ledgerμ κ³μ κ³Ό μ§κ°μ μμ±νκ³ κ΄λ¦¬νλ λ°©λ²μ μκ°ν©λλ€.
XRP Ledger μνΈν λ°©μβ
XRP Ledgerμ κ³μ μ λ€λ₯Έ λΈλ‘체μΈμμμ λ§μ°¬κ°μ§λ‘ μνΈνμ μ리λ₯Ό κΈ°λ°μΌλ‘ ν©λλ€. μ΄λ κ³μ μ μ£Όμλ₯Ό μμ±νκ³ , νΈλμμ μ μλͺ νκ³ , κ³μ μ μμ κΆμ μ¦λͺ νλ λ±μ μμ μ μ¬μ©λ©λλ€. μ΄λ¬ν μμ μ λͺ¨λ μνΈν μκ³ λ¦¬μ¦μ ν΅ν΄ μ΄λ£¨μ΄μ§λ©°, μ΄ μκ³ λ¦¬μ¦μ λμΉ ν€ μνΈνμ λΉλμΉ ν€ μνΈν λ κ°μ§λ‘ ꡬλΆλ©λλ€. XRP Ledgerμμλ λΉλμΉ ν€ μνΈνλ₯Ό μ¬μ©ν©λλ€.
λμΉ ν€ μκ³ λ¦¬μ¦β
λμΉ ν€ μκ³ λ¦¬μ¦μ μνΈνμ 볡νΈνμ κ°μ ν€λ₯Ό μ¬μ©νλ μνΈν λ°©μμ λλ€. μ΄ ν€λ μνΈνλ λ°μ΄ν°λ₯Ό 볡νΈννλ λ° μ¬μ©λλ©°, μ΄ ν€λ₯Ό μμ§ λͺ»νλ μ¬λμ μνΈνλ λ°μ΄ν°λ₯Ό 볡νΈνν μ μμ΅λλ€. λμΉ ν€ μνΈνμ κ°μ₯ ν° λ¬Έμ μ μ ν€ κ΅ν λ¬Έμ μ λλ€. μνΈνμ 볡νΈνμ κ°μ ν€λ₯Ό μ¬μ©νλ―λ‘, μ΄ ν€λ₯Ό μμ νκ² κ΅νν΄μΌ νλ λ¬Έμ κ° μμ΅λλ€.
λΉλμΉ ν€ μκ³ λ¦¬μ¦β
λΉλμΉ ν€ μκ³ λ¦¬μ¦, λλ νΌλΈλ¦ ν€ μνΈνλ μνΈνμ 볡νΈνμ μ¬μ©λλ λ κ°μ ν€κ° μλ‘ λ€λ₯Έ μνΈν λ°©μμ λλ€. μ΄ λ ν€ μ€ νλλ κ³΅κ° ν€(public key), λ€λ₯Έ νλλ λΉλ° ν€(private key) λλ κ°μΈ ν€λΌκ³ ν©λλ€. μ΄λ€ ν€λ μμΌλ‘ μλνλ©°, ν ν€λ‘ μνΈνλ λ°μ΄ν°λ μ€μ§ κ·Έμ μμνλ λ€λ₯Έ ν€λ‘λ§ λ³΅νΈνν μ μμ΅λλ€.
λΉλμΉ ν€ μνΈνμ κ°μ₯ ν° μ₯μ μ ν€ κ΅ν λ¬Έμ λ₯Ό ν΄κ²°νλ€λ κ²μ λλ€. λμΉ ν€ μνΈνμμλ μνΈνμ 볡νΈνμ κ°μ ν€λ₯Ό μ¬μ©νλ―λ‘, μ΄ ν€λ₯Ό μμ νκ² κ΅νν΄μΌ νλ λ¬Έμ κ° μμ΅λλ€. νμ§λ§ λΉλμΉ ν€ μνΈνμμλ κ³΅κ° ν€λ₯Ό μμ λ‘κ² λ°°ν¬ν μ μμΌλ―λ‘, μ΄λ¬ν λ¬Έμ κ° λ°μνμ§ μμ΅λλ€.
μλ₯Ό λ€μ΄, Aκ° Bμκ² μνΈνλ λ©μμ§λ₯Ό 보λ΄λ € ν λ, Aλ Bμ κ³΅κ° ν€λ₯Ό μ¬μ©νμ¬ λ©μμ§λ₯Ό μνΈνν©λλ€. μ΄λ κ² μνΈνλ λ©μμ§λ Bμ λΉλ° ν€λ‘λ§ λ³΅νΈνν μ μμΌλ―λ‘, λ©μμ§μ μμ μ±μ΄ 보μ₯λ©λλ€.
XRP Ledger κ³μ μμ± μ리β
XRP Ledgerμ λΉλμΉ ν€ μμ±μ Elliptic Curve Cryptography(ECC) κΈ°λ°μ λλ€. μ΄λ λ§€μ° ν° λ κ°μ μμμ κ³±μ μΈμλΆν΄νλ κ²μ΄ μ¬μ€μ λΆκ°λ₯νκΈ° λλ¬Έμ κ°λ ₯ν 보μμ μ 곡ν©λλ€.
XRP Ledgerμμμ ν€ μμ±μ λ€μκ³Ό κ°μ μλ¦¬λ‘ μ΄λ£¨μ΄μ§λλ€.
μ¬κΈ°μμ μλ, λΉκ³΅κ° ν€λ νμΈμκ² λ ΈμΆλμ΄μλ μλκ³ λ³΄μμ μν΄ μμ νκ² λ³΄κ΄λμ΄μΌ ν©λλ€. κ·Έμ λ°ν΄ κ³΅κ° ν€, κ³μ ID, μ£Όμλ νμΈμκ² λ ΈμΆλμ΄λ μμ ν©λλ€.
ν€ μμ± κ³Όμ β
μλ μμ±
μ¬μ©μλ μμμ μλλ₯Ό μ ννκ±°λ μμ±ν©λλ€. XRP Ledgerμμλ μνΈνμ μΌλ‘ μμ ν λμ μμ±κΈ°λ₯Ό μ¬μ©ν΄ 16λ°μ΄νΈμ μμμ λ°μ΄ν°λ₯Ό μμ±ν΄μ μμ μλλ‘ μ¬μ©ν©λλ€. μμ μλλ Base58Check μΈμ½λ©μ ν΅ν΄ λ€μ sλ‘ μμνλ 29μ리μ λ¬Έμμ΄λ‘ λ³νλ©λλ€.
from xrpl.core.keypairs import generate_seed
# Generate a seed
seed = generate_seed()
# Print seed
print(f"seed: {seed}")seed: sEdTAmewybtGPwEqGaCGC2KBBJN77gV
λΉκ³΅κ° ν€ μμ±
μμμ μμ±ν μμ μλλ₯Ό μ¬μ©νμ¬ νμ곑μ DSA (Elliptic Curve Digital Signature Algorithm, ECDSA)λ₯Ό ν΅ν΄ λΉκ³΅κ° ν€λ₯Ό μμ±ν©λλ€. λΉκ³΅κ° ν€λ₯Ό μμ±νλ κ³Όμ μ νμ곑μ μ κΈ°λ³Έ μ (G)μ μμ μλ(s)λ² κ³±νλ κ²μΌλ‘, μ΄ μ°μ°μ ν΅ν΄ νμ곑μ μμ μλ‘μ΄ μ (P)μ΄ μ»μ΄μ§κ² λ©λλ€. μ¦, λΉκ³΅κ° ν€λ κΈ°λ³Έμ μΌλ‘ νμ곑μ μμ ν μ μ λλ€.
κ³΅κ° ν€ μμ±
λΉκ³΅κ° ν€λ₯Ό μ¬μ©νμ¬ κ³΅κ° ν€λ₯Ό μμ±ν©λλ€. κ³΅κ° ν€λ λΉκ³΅κ° ν€(νμ곑μ μμ μ )μ νμ곑μ μ κΈ°λ³Έ μ μ κ³±νμ¬ μ»μ΄μ§λλ€. μ΄λ κ² μμ±λ κ³΅κ° ν€λ λΉλ° ν€λ₯Ό μμ§ λͺ»νλ λ€λ₯Έ μ¬λλ€μ΄ λ©μμ§λ₯Ό μνΈννκ±°λ λμ§νΈ μλͺ μ κ²μ¦νλ λ° μ¬μ©λ μ μμ΅λλ€.
from xrpl.core.keypairs import derive_keypair
# Derive a keypair from a seed
public_key, private_key = derive_keypair("sEdTAmewybtGPwEqGaCGC2KBBJN77gV")
print(f"public key: {public_key}\nprivate key: {private_key}")public key: EDBB2431197ECED939BE4552A583A5D060F5BC0AF9BD5D480A34BFD6787FAE83B1
private key: EDD3FDF904528CC68CABB645BE19BFB34FE1854D8DD52214AE516338354E3A7F53κ³μ ID μμ±
κ³΅κ° ν€λ λ€μ κ³μ IDλ‘ ν΄μλ©λλ€. μ΄ κ³μ IDλ κ³΅κ° ν€μ SHA-256 ν΄μμ΄λ©°, μ΄ ν΄μμ 첫 20λ°μ΄νΈλ§ μ¬μ©λ©λλ€.
XRP Ledger μ£Όμ μμ±
κ³μ IDλ μ΅μ’ μ μΌλ‘ XRP Ledger μ£Όμλ‘ λ³νλ©λλ€. μ΄ λ³νμ Base58Check μΈμ½λ©μ μ¬μ©νλ©°, μ΄λ μ£Όμμ 첫 κΈμκ° 'r'λ‘ μμνκ² λ§λλλ€. μ΄ μΈμ½λ© λ°©μμ μ€λ₯ κ°μ§ κΈ°λ₯μ λ΄μ₯νκ³ μμ΄, μ£Όμλ₯Ό μλͺ» μ λ ₯νμ λ μ΄λ₯Ό κ°μ§ν μ μκ² ν©λλ€.
from xrpl.core.keypairs import derive_classic_address
address = derive_classic_address(
public_key="EDBB2431197ECED939BE4552A583A5D060F5BC0AF9BD5D480A34BFD6787FAE83B1"
)
print(f"address: {address}")address: rpifos5x2NQXRW1fxc2uK5WuuZtoWdDh4L
μ΄λ¬ν κ³Όμ μ ν΅ν΄ XRP Ledgerμμ μ¬μ©ν μ μλ μ§κ°μ΄ μμ±λ©λλ€. νμ§λ§ μ€μ μ§κ° μμ± μμλ μ§μ μ΄ κ³Όμ μ λ°λΌν νμλ μκ³ , λͺ¨λ κ³Όμ μ΄ μλμΌλ‘ μ¬μ©μμ κΈ°κΈ°μμ μμ νκ² μ΄λ£¨μ΄μ§κ² λ©λλ€.
μ§κ° νμ±νβ
μμμ λΉκ³΅κ° ν€μ κ³΅κ° ν€, κ³μ ID, μ£Όμλ₯Ό μμ±νμ΅λλ€. νμ§λ§ κ·Έκ²λ€μ μμ±ν κ²λ§μΌλ‘ μμ§μ XRP Ledgerμμ κ±°λλ₯Ό ν μ μμ΅λλ€. XRP Ledgerμμ κ±°λλ₯Ό ν μ μλλ‘ μ§κ°(μ£Όμ)λ₯Ό νμ±ν μν€λ €λ©΄, ν΄λΉ μ§κ°μ μ£Όμλ‘ μ΅μ 10 XRPλ₯Ό μ μ‘ν΄μΌ ν©λλ€. μ΄κ²μ XRP Ledgerμ ReservesλΌλ μ μ± μΌλ‘ κ³μ μ΄ μ΅μ 10 XRP μ΄μμ 보μ νκ³ μμ΄μΌλ§ κ³μ μ΄ νμ±νλμ΄ κ±°λλ₯Ό ν μ μμ΅λλ€. μ΄λ μ€νΈ κ³μ μ΄λ μ μμ μΈ κ³μ μ΄μ©μΌλ‘ μΈν κ³ΌλΆνλ₯Ό λ°©μ§νκΈ° μν λͺ©μ μ λλ€.
Destination Tagμ X-addressβ
XRP Ledgerλ λΆμ°ν λμ§νΈ μμ° λ€νΈμν¬λ‘, Rippleμ λμ§νΈ ν ν°μΈ XRPλ₯Ό νμ©νλ λ§μ κΈ°κ΄κ³Ό κ°μΈμ΄ νλ«νΌμ μ¬μ©ν©λλ€. κ·Έλ¬λ, μ΄λ¬ν λͺ¨λ μ¬μ©μμκ² κ³ μ ν μ£Όμλ₯Ό μ 곡νλ κ²μ λ§€μ° λΉν¨μ¨μ μΌ μ μμ΅λλ€. λ°λΌμ XRP Ledgerλ Destination TagλΌλ νΉλ³ν κ°λ μ λμ νμ΅λλ€.
Destination Tagλ μ ννκ² λ§νλ©΄ κ³ μ μ μ«μ μλ³μλ‘, νΉμ μ¬μ©μλ₯Ό μλ³νκ³ κ±°λλ₯Ό μΆμ νλ λ° μ¬μ©λ©λλ€. μ΄λ νΉν λν κ±°λμλ μλ μλΉμ€μ κ°μ΄ μ¬λ¬ μ¬μ©μκ° λμΌν XRP μ£Όμλ₯Ό 곡μ νλ κ²½μ°μ μ μ©ν©λλ€. Destination Tagλ₯Ό ν΅ν΄, μλΉμ€ μ 곡μλ μ¬μ©μ κ°μ κ±°λλ₯Ό λμ± μ ννκ² κ΅¬λΆνκ³ κ΄λ¦¬ν μ μμ΅λλ€.
μλ₯Ό λ€μ΄, κ±°λμ Xκ° λ¨μΌ XRP μ£Όμλ₯Ό μ¬μ©νμ¬ λͺ¨λ μ¬μ©μμ μκΈμ κ΄λ¦¬νλ€κ³ κ°μ ν΄λ³΄κ² μ΅λλ€. μ΄μ μ¬μ©μ Aμ μ¬μ©μ Bκ° λͺ¨λ μ΄ κ±°λμλ‘ XRPλ₯Ό μ κΈνλ €κ³ ν©λλ€. λ μ¬μ©μμ μ κΈμ μ΄λ»κ² ꡬλΆν κΉμ? μ¬κΈ°μ Destination Tagκ° μ€μν μν μ ν©λλ€. μ¬μ©μ Aλ Destination Tag 12345λ₯Ό λ°κ³ , μ¬μ©μ Bλ 67890μ λ°μ΅λλ€. μ΄μ λ μ¬μ©μκ° λμΌν μ£Όμλ‘ μ κΈν λ, κ±°λμλ Destination Tagλ₯Ό ν΅ν΄ λκ° μ κΈνλμ§ μ μ μμ΅λλ€.
μ΄μ κ°μ΄, Destination Tagλ XRP Ledgerμ ν¨μ¨μ±κ³Ό μ νμ±μ ν₯μμν€λ μ€μν μν μ ν©λλ€. μ΄λ μ¬μ©μκ° μμ μ κ±°λλ₯Ό μ½κ² μΆμ νκ³ , μ¬μ©μκ°μ κ±°λκ° νΌλμ€λ½κ² μ½νλ κ²μ λ°©μ§νλ©°, κ±°λμλ μλ μλΉμ€κ° ν¨κ³Όμ μΌλ‘ μκΈμ κ΄λ¦¬νκ² λμ΅λλ€.
X-addressλ XRP Ledgerμ μ£Όμ 체κ³μ ν λΆλΆμΌλ‘, μ£Όμμ Destination Tagλ₯Ό ν©μΉ μλ‘μ΄ νμμ μ£Όμμ λλ€. μ΄ μ£Όμ νμμ Destination Tagλ₯Ό λ΄μ₯νκ³ μμ΄, μ¬μ©μκ° μ£Όμμ Destination Tagλ₯Ό λ³λλ‘ μ λ ₯ν νμκ° μμ΅λλ€. μ΄λ‘ μΈν΄ μ¬μ©μμ μ€μλ₯Ό μ€μΌ μ μμΌλ©°, νΈλ¦¬νκ³ μμ ν XRP Ledger μ¬μ© κ²½νμ μ 곡ν©λλ€.
μνΈν ν€ νμ© λ°©μβ
μμμ μΈκΈλ κ³Όμ μ ν΅ν΄ μμ±λ μνΈν ν€λ€μ XRP Ledgerμμ λ§€μ° λ€μνκ² νμ©λ©λλ€. μ΄λ¬ν ν€λ€μ μ£Όμ νμ© λ°©μμ μλμ κ°μ΅λλ€.
λμ§νΈ μλͺ (Digital Signature Algorithm, DSA)
λΉκ³΅κ° ν€λ₯Ό μ¬μ©ν΄ λ©μμ§λ₯Ό 'μλͺ 'νκ³ , κ³΅κ° ν€λ₯Ό μ¬μ©ν΄ μλͺ μ κ²μ¦ν©λλ€. μ΄ κ³Όμ μ λ€μκ³Ό κ°μ΄ μ§νλ©λλ€.
μλͺ μμ±: κ±°λλ₯Ό μμ±ν ν, ν΄λΉ κ±°λλ₯Ό λΉκ³΅κ° ν€λ‘ μλͺ ν©λλ€. μ΄λ μΌμ’ μ μνΈν μμ μΌλ‘ λ³Ό μ μμΌλ©°, μ΄ μμ μ κ±°μΉλ©΄ μλͺ λ κ±°λκ° μμ±λ©λλ€. λΉκ³΅κ° ν€λ μλͺ νλ‘μΈμ€μμ μ¬μ©λλ©°, μ΄ ν€λ κ±°λλ₯Ό μμ±ν μ¬μ©μλ§μ΄ μκ³ μμ΅λλ€. μ΄λ κ² νλ©΄ κ±°λμ 무결μ±μ΄ 보μ₯λλ©°, κ±°λκ° λ³κ²½λμ§ μμμμ νμΈν μ μμ΅λλ€.
μλͺ κ²μ¦: κ±°λλ₯Ό μμ ν μΈ‘μ κ³΅κ° ν€λ₯Ό μ¬μ©νμ¬ μλͺ μ κ²μ¦ν©λλ€. μ΄ κ³Όμ μμλ κ±°λμ ν¨κ» μ λ¬λ λμ§νΈ μλͺ κ³Ό μλ κ±°λλ₯Ό λΉκ΅ν©λλ€. κ³΅κ° ν€λ₯Ό μ¬μ©νμ¬ λμ§νΈ μλͺ μ '볡νΈν'νκ³ , 볡νΈνλ λ΄μ©μ΄ μλμ κ±°λ λ΄μ©κ³Ό μΌμΉνλμ§ νμΈν©λλ€. λ§μ½ μΌμΉνλ€λ©΄, μ΄λ κ±°λκ° μ€κ°μ λ³κ²½λμ§ μμμΌλ©°, ν΄λΉ λΉκ³΅κ° ν€μ μμ μκ° κ±°λλ₯Ό μμ±νμμμ μλ―Έν©λλ€.
μ΄λ κ² λΉκ³΅κ° ν€μ κ³΅κ° ν€λ₯Ό νμ©ν λμ§νΈ μλͺ μμ€ν μ μ μ κ±°λμμμ μ¬κΈ°λ₯Ό λ°©μ§νκ³ , μ 보μ 무결μ±μ 보μ₯νλ©°, λμ§νΈ μΈκ³μμμ μ λ’°λ₯Ό ꡬμΆνλλ° λ§€μ° μ€μν μν μ ν©λλ€. XRP Ledgerμμλ μ΄λ¬ν μλ¦¬κ° μ μ©λμ΄, κ±°λμ μμ μ±κ³Ό 보μμ 보μ₯νκ³ μμ΅λλ€.
κ³μ μμ κΆ μ¦λͺ
μνΈν ν€λ κ³μ μ μμ κΆμ μ¦λͺ νλ λ°μλ μ¬μ©λ©λλ€. κ° XRP Ledger κ³μ μ κ³΅κ° ν€μ κ·Έμ μ°κ²°λ λΉκ³΅κ° ν€λ‘ μμ±λ©λλ€. μ΄ λΉκ³΅κ° ν€λ κ³μ μ μμ μλ§μ΄ μκ³ μμ΄μΌ ν©λλ€. μ΄ λΉκ³΅κ° ν€λ‘ μμ±λ λμ§νΈ μλͺ μ κ³΅κ° ν€λ₯Ό ν΅ν΄ κ²μ¦ κ°λ₯νλ©°, μ΄λ₯Ό ν΅ν΄ νΉμ κ³μ μ μμ κΆμ μ¦λͺ ν μ μμ΅λλ€. μ¦, λ§μ½ μ¬μ©μκ° κ³μ μ λΉκ³΅κ° ν€λ‘ κ±°λλ₯Ό μλͺ ν μ μλ€λ©΄, κ·Έ μ¬μ©μλ ν΄λΉ κ³μ μ ν©λ²μ μμ μμμ μ¦λͺ ν κ²μ΄ λ©λλ€. μ΄λ κ² μνΈν ν€λ₯Ό μ¬μ©νλ κ²μ κ³μ μ μμ κΆμ μ μμ μ¦λͺ νλ κ°λ ₯ν λκ΅¬κ° λ©λλ€.
μμ ν μ§κ° 보κ΄β
μμ ν μ¨λΌμΈ μ§κ° μ¬μ©
XUMMμ XRP Ledger μ§κ°μ μμ±νκ³ κ΄λ¦¬νλ λͺ¨λ°μΌ μ§κ° μ±μ λλ€. XRPL Labs νμ μν΄ λμμΈλκ³ κ°λ°λμμ΅λλ€. XUMMμ ν€λ₯Ό μμ νκ² λ³΄κ΄νκ³ , ν€λ₯Ό μ¬μ©νμ¬ κ±°λλ₯Ό μλͺ νκ³ , ν€λ₯Ό μ¬μ©νμ¬ κ³μ μ μ μ΄νλ λͺ¨λ κΈ°λ₯μ μ 곡ν©λλ€. μ±μ μ¬μ©μ μΉνμ μΈ μΈν°νμ΄μ€μ κ°λ ₯ν 보μ κΈ°λ₯μ κ²°ν©νμ¬ μ¬μ©μκ° μμ μ μμ°μ μμ νκ² κ΄λ¦¬ν μ μκ² ν΄μ€λλ€. λν λͺ¨λ°μΌ μ±μ΄μ§λ§, QR μ½λ μ€μΊ κΈ°λ₯μ λμ ν΄ νΈνκ³ μ½κ² λ°μ€ν¬ν±μμλ μ¬μ©ν μ μμ΅λλ€.
XUMMμ 보μ 체κ³λ λ€μκ³Ό κ°μ μ£Όμ μμλ€μ ν¬ν¨νκ³ μμ΅λλ€:
μνΈν: XUMMμ μ¬μ©μμ λΉκ³΅κ° ν€λ₯Ό μνΈννμ¬ λ‘컬 μ€ν 리μ§μ μμ νκ² λ³΄κ΄ν©λλ€. μ΄ ν€λ μνΈνλμ΄ μμΌλ―λ‘, μ€μ ν€ κ°μ μ»μΌλ €λ©΄ μ¬μ©μμ λΉλ°λ²νΈλ PIN μ½λλ₯Ό μμμΌ ν©λλ€.
μ¬μ©μ μΈμ¦: XUMMμ μ¬μ©μκ° μμ μ μ§κ°μ μ κ·Όνκ±°λ νΈλμμ μ μλͺ ν λλ§λ€ λΉλ°λ²νΈλ PIN μ½λλ₯Ό μ λ ₯νλλ‘ μꡬν©λλ€. μ΄λ λΉκ³΅κ° ν€μ λν μ κ·Όμ 보νΈνκ³ , 무λ¨μΌλ‘ κ±°λκ° λ°μνλ κ²μ λ°©μ§νλ λ° μ€μν μν μ ν©λλ€.
κ°μΈμ 보 보νΈ: XUMMμ μ¬μ©μμ κ°μΈμ 보μ κΈμ΅ μ 보λ₯Ό μ‘΄μ€ν©λλ€. μ ν리μΌμ΄μ μ μ¬μ©μμ μ§κ° μ£Όμλ νΈλμμ μ 보λ₯Ό μμ§νμ§ μμΌλ©°, μλ²μ μ μ₯νμ§ μμ΅λλ€. λν, XUMMμ νμν μ΅μνμ λ°μ΄ν°λ§μ μμ§νκ³ , μ΄λ₯Ό μμ νκ² μνΈννμ¬ μ μ₯ν©λλ€.
λμ§νΈ μλͺ : XUMMμ μ¬μ©μμ λΉκ³΅κ° ν€λ₯Ό μ¬μ©νμ¬ XRP Ledgerμ νΈλμμ μ μλͺ ν©λλ€. μ΄ μλͺ κ³Όμ μ μ¬μ©μμ κΈ°κΈ°μμ μ§μ μ΄λ£¨μ΄μ§λ©°, λΉκ³΅κ° ν€κ° μ¬μ©μμ κΈ°κΈ°λ₯Ό λ²μ΄λμ§ μλλ‘ λ³΄μ₯ν©λλ€.
νλμ¨μ΄ μ§κ° μ¬μ©
νλμ¨μ΄ μ§κ°μ μνΈννλ₯Ό 보κ΄νλλ° κ°μ₯ μμ ν λ°©λ² μ€ νλμ λλ€. μ΄λ€μ μΈν°λ·μ μ°κ²°λμ§ μμ μνμμ ν€λ₯Ό μμ νκ² λ³΄κ΄νλ λ° μ¬μ©λλ 물리μ μΈ μ₯μΉμ λλ€. μ΄λ° λ°©μμΌλ‘, νλμ¨μ΄ μ§κ°μ μ¨λΌμΈ ν΄νΉ 곡격μΌλ‘λΆν° μ¬μ©μμ μμ°μ 보νΈν΄ μ€λλ€. νΈλ μ (Trezor)μ λ μ (Ledger)μ κ°μ λΈλλλ μ΄ λΆμΌμμ κ°μ₯ μ μλ €μ Έ μμ΅λλ€. μ΄λ€μ λͺ¨λ ν보λ νκ²½μμ κ°μΈ ν€λ₯Ό μμ±νκ³ , κ·Έ ν€κ° μ₯μΉ λ°μΌλ‘ λκ°μ§ μκ² νλ λ±μ 보μ κΈ°λ₯μ μ 곡ν©λλ€.
λΉλ°λ²νΈ κ΄λ¦¬μ μ¬μ©
λΉλ°λ²νΈ κ΄λ¦¬μλ μνΈνν μ¬μ©μμκ² λ§€μ° μ μ©ν λκ΅¬κ° λ μ μμ΅λλ€. μ΄λ¬ν μλΉμ€λ μ¬μ©μμ ν€λ₯Ό μμ νκ² λ³΄κ΄νλ©°, κ·Έκ²λ€μ μνΈννμ¬ μ μ₯ν©λλ€. λν μ¬μ©μκ° νμλ‘ ν λλ§λ€ μνΈνλ ν€λ₯Ό 볡νΈνν μ μκ² ν΄μ€λλ€. κ·Έ κ²°κ³Ό, μ¬μ©μλ 볡μ‘ν λΉλ°λ²νΈλ₯Ό κΈ°μ΅ν νμ μμ΄ λͺ¨λ μμ°μ λν μ κ·Όμ μ μ§ν μ μμ΅λλ€. λΉλ°λ²νΈ κ΄λ¦¬μλ κ°λ ₯ν μνΈν μκ³ λ¦¬μ¦μ μ¬μ©νμ¬ μ¬μ©μμ μ 보λ₯Ό 보νΈνλ―λ‘, ν΄μ»€κ° κ·Έ μ 보λ₯Ό μ΄μ©νλ κ²μ κ·Ήν μ΄λ ΅μ΅λλ€.
Regular keyμ Master keyβ
XRP Ledger (XRPL)μμ Master Keyμ Regular Keyλ λͺ¨λ κ±°λλ₯Ό μλͺ ν μ μλ κΆνμ κ°μ§μ§λ§, κ·Έ μ©λμ κ΄λ¦¬ λ°©μμλ μ°¨μ΄κ° μμ΅λλ€.
Master Key
Master Keyλ κ³μ μ μμ±ν λ μμ±λλ©°, κ³μ μ€μ λ³κ²½, κ±°λ μλͺ λ± κ³μ μ λͺ¨λ κΈ°λ₯μ ν΅μ ν μ μλ κΆνμ κ°μ§λλ€. λν, κ³μ μμ κΆμ μ¦λͺ νλ μ μΌν λ°©λ²μ΄λ―λ‘ λ§€μ° μ€μν©λλ€.
Regular Key
Regular Keyλ Master Keyλ₯Ό λ체νκ±°λ 보μμ κ°ννλ €λ λͺ©μ μΌλ‘ μ¬μ©λ μ μμ΅λλ€. Regular Keyλ Master Keyμ κ°μ κΆνμ κ°μ§λ, Regular Keyλ₯Ό λ³κ²½νκ±°λ μμ νλ κ²μ΄ Master Keyλ₯Ό λ³κ²½νκ±°λ μμ νλ κ²λ³΄λ€ λ μ½μ΅λλ€. λν, Regular Keyλ₯Ό μ¬μ©νμ¬ κ³μ μ μ μ΄νλ©΄, Master Keyλ₯Ό μμ νκ² λ³΄κ΄νλ©΄μλ μΌμμ μΈ κ±°λλ₯Ό μνν μ μμ΅λλ€.
κ·Έλ¬λ, XRPLμμ Regular Keyλ Master Keyκ° κ°μ§λ κ³μ μ€μ λ³κ²½ λ±μ μΌλΆ κΆνμ λ체νμ§ λͺ»ν©λλ€. Master Keyλ κ³μ μ μμ νκ±°λ, Regular Keyλ₯Ό μ€μ νκ±°λ λ³κ²½νλ λ±μ κΆνμ κ°μ§λλ€. λ°λΌμ Regular Keyλ μΌμμ μΈ κ±°λλ₯Ό μννκ³ , Master Keyλ λ μ€μνκ³ λ―Όκ°ν μμ μ μννλ λ° μ¬μ©λ©λλ€.
μ¦, Master Keyμ Regular Key λͺ¨λ κ³μ μ μ μ΄νλ κΆνμ κ°μ§μ§λ§, Master Keyλ λ λ§μ κΆνκ³Ό λ λμ 보μ μꡬ μ¬νμ κ°μ§κ³ μμ΅λλ€. Master Keyλ λν Regular Keyλ₯Ό μμ±νκ³ λ³κ²½νλ λ° μ¬μ©λλ©°, μ΄λ‘μ¨ Master Keyμ 보μμ κ°ννκ³ , μΌμμ μΈ κ±°λλ₯Ό λ³΄λ€ μμ νκ² μνν μ μμ΅λλ€.
Regular Key μ€μ β
λ€μμ Regular Keyλ₯Ό μμ±νκ³ , Master Keyλ₯Ό λΉνμ±ννλ κ³Όμ μ 보μ¬μ€λλ€.
Regular keyμ μμ±
Regular keyλ κ³΅κ° ν€μ λΉλ° ν€μ μμΌλ‘ ꡬμ±λ©λλ€. μ΄ ν€μ μμ±μ μ μ μλͺ μκ³ λ¦¬μ¦μ μν΄ μ΄λ£¨μ΄μ§λ©°, 보ν΅μ μνΈν λ°©λ²λ‘ μ μΌλΆμΈ elliptic-curve cryptography (ECC)λ₯Ό μ¬μ©ν©λλ€.
Regular keyμ μμ±μ 보μμ λ§€μ° μ€μν λ¨κ³μ λλ€. μΌλ°μ μΌλ‘ μ΄λ μμ ν λμ μμ±κΈ°λ₯Ό μ¬μ©νμ¬ μ΄λ£¨μ΄μ§λ©°, ν€ μμ± νλ‘μΈμ€μ λͺ¨λ λΆλΆμ΄ μ μ ν 보νΈλμ΄μΌ ν©λλ€. μμ±λ λΉλ° ν€λ μ λ λ ΈμΆλμ΄μλ μλλ©°, μμ νκ² μ μ₯λμ΄μΌ ν©λλ€.
μμ±λ Regular keyλ νΉμ κ³μ μ μλ‘μ΄ μΈμ¦ μλ¨μΌλ‘ μ¬μ©λ μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ κΈ°λ³Έμ μΈ κ³μ κ΄λ¦¬λ₯Ό μν Master keyμ μ¬μ©μ μ€μ΄κ³ , κ³μ μ 보μμ κ°νν μ μμ΅λλ€. μ΄λ νΉν λΈλ‘μ²΄μΈ κΈ°μ μμ μ€μνλ°, κ·Έ μ΄μ λ ν λ² μμ±λ ν€λ λ³κ²½μ΄ λΆκ°λ₯νλ©°, μλͺ» κ΄λ¦¬λκ±°λ λ ΈμΆλ κ²½μ° ν΄λΉ κ³μ μ μμ°μ΄ μνμ λ ΈμΆλκΈ° λλ¬Έμ λλ€.
Regular keyμ ν λΉ
μμ±λ Regular keyλ νΉμ κ³μ μ ν λΉλμ΄μΌ ν©λλ€. μ΄ λ¨κ³λ Regular keyλ₯Ό ν΄λΉ κ³μ μ μλ‘μ΄ μ κ·Ό ν€λ‘ μ€μ ν©λλ€. Regular keyμ ν λΉμ μ¬μ©μμ λͺ©νμ λ°λΌ μ§νλ μ μμΌλ©°, νΈλμμ μλͺ λλ κ³μ κ΄λ¦¬λ₯Ό μν μλ‘μ΄ λ°©λ²μ μ 곡ν©λλ€.
Master keyμ λΉνμ±ν
Regular keyκ° ν λΉλλ©΄ Master keyλ₯Ό λΉνμ±νν μ μμ΅λλ€. μ΄λ ν΄λΉ κ³μ μ λν λͺ¨λ κΆνμ΄ Regular keyλ‘ μ΄λν¨μ μλ―Έν©λλ€. μ΄ λ¨κ³λ Regular keyλ₯Ό μ£Όλ κ³μ ν€λ‘ μ€μ νκ³ , Master keyλ₯Ό λ μ΄μ μ¬μ©νμ§ μλλ‘ νμ¬ μΆκ°μ μΈ λ³΄μ λ 벨μ μ 곡ν©λλ€. μ΄λ νΉν Master keyκ° μνμ λ ΈμΆλμκ±°λ μμ€λμ κ²½μ° μ μ©ν©λλ€.
Regular keyμ μ λ°μ΄νΈ λ° Master keyμ μ¬νμ±ν
μ¬μ©μμ νμμ λ°λΌ, Regular keyλ μ λ°μ΄νΈ λ μ μμ΅λλ€. μ΄λ μλ‘μ΄ Regular keyλ₯Ό μμ±νκ³ κ³μ μ μ¬ν λΉνλ κ³Όμ μ ν¬ν¨ν©λλ€. λν, νμν κ²½μ° Master keyλ μΈμ λ μ§ μ¬νμ±ν λ μ μμ΅λλ€. μ΄λ Master keyκ° νμν νΉμ νΈλμμ μ μ§ννκ±°λ, Regular keyλ₯Ό λ체νκ±°λ μμ ν΄μΌ ν λ μ μ©ν©λλ€.
μ΄λ¬ν μ μ°¨λ κ³μ 보μμ κ°ννλ μ€μν λ°©λ²μ λλ€. Regular keyμ Master keyλ₯Ό μ μ ν κ΄λ¦¬νλ©΄, μνΈνν μ§κ°μ μμ μ±μ ν¬κ² ν₯μμν¬ μ μμ΅λλ€. ν€λ₯Ό κ΄λ¦¬νλ κ³Όμ μμλ νμ μμ νκ² λ³΄κ΄νκ³ , λ°±μ νλ λ±μ μ μ°¨λ₯Ό λ°λ₯΄λ κ²μ΄ μ€μν©λλ€.
μ€μ΅ νλ‘μ νΈβ
μ΄λ² μ€μ΅μμλ XRP Ledger μ§κ°μ μμ±νκ³ , κ³μ μ νμ±ν ν ν, Regular Keyλ₯Ό μμ± λ° μ€μ νλ κ³Όμ μ μ§νν©λλ€.
μ§κ° μμ±β
λ¨Όμ XRP Ledgerμμ μ§κ°μ μμ±ν΄λ³΄κ² μ΅λλ€.
xrpl-pyμ κ°μ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νμ¬ μ§μ λ§λ€ μλ μκ³ , XUMMκ³Ό κ°μ μ§κ° μ±μ μ¬μ©ν μλ μμ΅λλ€. XUMM μ΄μ© κ°μ΄λλ μ΄ λ§ν¬λ₯Ό μ°Έκ³ νμΈμ. μ΄λ² μ€μ΅μμλ xrpl-pyλ₯Ό μ¬μ©νμ¬ μ§κ°μ μμ±ν΄λ³΄κ² μ΅λλ€. μ¬κΈ°μ λ§λ μ§κ°μ λ€μ XUMMκ³Ό κ°μ μ§κ° μ±μ μ°κ²°ν μλ μμ΅λλ€.
ν
μ€νΈλ·μμ κ°λ¨νκ² μ΄μ©ν΄λ³΄λ €λ©΄ generate_faucet_wallet
ν¨μλ₯Ό μ΄μ©ν΄λ μ’μ΅λλ€. μ΄ ν¨μλ λ€μμ λμ€λ μ§κ° νμ±ν ννΈμμ λ€μ μ€λͺ
νκ² μ΅λλ€.
from xrpl.wallet import Wallet
from xrpl.constants import CryptoAlgorithm
wallet = Wallet.create()
Wallet.create()
λ©μλμλ algorithm=CryptoAlgorithm.ED25519
μ κ°μ΄ 맀κ°λ³μλ₯Ό μ£Όμ΄ μνΈν μκ³ λ¦¬μ¦μ μ§μ ν μλ μμ΅λλ€. κΈ°λ³Έκ°μ ED25519μ
λλ€. μνΈν μκ³ λ¦¬μ¦μ μ’
λ₯λ μ¬κΈ°μμ νμΈν μ μμ΅λλ€.
μ§κ° μ 보λ₯Ό νμΈνλ €λ©΄ λ€μκ³Ό κ°μ΄ μ λ ₯ν©λλ€.
print(wallet)
public_key: EDBD30AA72B8A968705D535B4C4B2843E692F68026D6D5AB44C9E06834FDB1310E
private_key: -HIDDEN-
classic_address: rGjfhcmVfrwW4DRcghhdR8ZXUViqFdpt83
λΉκ³΅κ° ν€λ₯Ό ν¬ν¨ν λͺ¨λ μ 보λ₯Ό νμΈνκ³ μΆλ€λ©΄ λ€μκ³Ό κ°μ΄ μ λ ₯ν©λλ€.
print(wallet.__dict__)
{'_address': 'rshhyEKHHeW2CUBryRdFpZ5LeSh4tdN4Cq',
'algorithm': <CryptoAlgorithm.ED25519: 'ed25519'>,
'private_key': 'ED0DDC86B79A55C1B8BEA8BB4D27187C1C731B55FA0417E0519CB31306AC78D373',
'public_key': 'ED8A9341F24320B8218D591A599D5B2C12D3EF750A32C0857061153AEC8E809C37',
'seed': 'sEdTjia3fsH9AtAnmYm1rUwTHazetY2'}
μ§κ° μ μ₯ λ° λΆλ¬μ€κΈ°β
μ§κ°μ μ§μ μ μ₯νκ³ λΆλ¬μ€λ €λ©΄ λ€μκ³Ό κ°μ λ°©λ²μ μ¬μ©ν μ μμ΅λλ€.
import json
with open(wallet_path, "w", encoding="UTF-8") as file:
json.dump(wallet.__dict__, file)
μ μ½λλ μ§κ°μ μ 보λ₯Ό JSON νμμΌλ‘ νμΌμ μ μ₯ν©λλ€. μ΄λ₯Ό λ€μ λΆλ¬μ€λ €λ©΄ λ€μκ³Ό κ°μ΄ μ λ ₯ν©λλ€.
import json
from xrpl.wallet import Wallet
with open(wallet_path, "r", encoding="UTF-8") as file:
wallet_info = json.load(file)
wallet = Wallet(
public_key=wallet_info["public_key"],
private_key=wallet_info["private_key"],
master_address=wallet_info["address"],
seed=wallet_info["seed"],
algorithm=wallet_info["algorithm"],
)
μ΄λ κ² νλ©΄ μ§κ°μ λ€μ λΆλ¬μ¬ μ μμ΅λλ€. μ΄ λ°©λ²μ μ§κ°μ μ§μ μ μ₯νκ³ λΆλ¬μ€λ λ°©λ² μ€ νλμ λλ€. νμ§λ§ μ΄ λ°©λ²μ μ§κ°μ μ 보λ₯Ό λͺ¨λ μ μ₯νλ―λ‘, 보μμ μ·¨μ½ν μ μμ΅λλ€. λ°λΌμ μ€μ μ§κ°μ μ μ₯ν λλ μνΈνλ₯Ό νκ±°λ λ€λ₯Έ μ§κ° μλΉμ€, νλμ¨μ΄ μ§κ° λ±μ μ¬μ©νλ κ²μ΄ μ’μ΅λλ€.
μ§κ° νμ±νβ
μ§κ°μ νμ±ν νλ €λ©΄ μ΅μ 10 XRPλ₯Ό 보μ ν΄μΌ ν©λλ€. ν μ€νΈλ·μμλ 무λ£λ‘ ν μ€νΈμ© XRPλ₯Ό μ 곡νλ 'Faucet' μλΉμ€λ₯Ό μ΄μ©ν μ μμ΅λλ€. μ΄ μλΉμ€λ₯Ό μ΄μ©νλ©΄, ν μ€νΈμ© XRPκ° λ€μ΄μλ μ§κ°μ μμ±νκ±°λ κΈ°μ‘΄ μ§κ°μ ν μ€νΈμ© XRPλ₯Ό μ μ‘ν μ μμ΅λλ€.
ν μ€νΈμ© XRPκ° λ€μ΄μλ μ§κ° μμ±
from xrpl.wallet import generate_faucet_wallet
wallet = generate_faucet_wallet(client=client)κΈ°μ‘΄ μ§κ°μ ν μ€νΈμ© XRP μ μ‘
from xrpl.wallet import generate_faucet_wallet
wallet = generate_faucet_wallet(client=client, wallet=wallet)
κ³μ μ 보 νμΈβ
κ³μ μ 보λ₯Ό νμΈνλ €λ©΄, XRP Ledgerλ‘ λΆν° κ³μ μ 보μ λ°μ΄ν°λ₯Ό μμ²ν΄μΌ ν©λλ€.
XRP Ledgerλ‘λΆν° λ μ μ λ°μ΄ν°λ₯Ό μμ²νλ λ°©λ²μ xrpl.models.requests
μμ μνλ μμ² ν΄λμ€λ₯Ό λΆλ¬μμ λ΄μ©μ μ±μ°κ³ , client.request
λ©μλμ λ£μ΄μ£Όλ©΄ λ©λλ€.
κ³μ μ 보λ AccountInfo
μμ² ν΄λμ€λ₯Ό μ¬μ©νμ¬ μμ²ν μ μμ΅λλ€.
from xrpl.models.requests import AccountInfo
response = client.request(request = AccountInfo(account=wallet.classic_address))
print(response.result)
{'account_data': {'Account': 'r9Y5orxqCmkHDPUEX9jG2zhadz8PwNA7sg',
'Balance': '10000000000',
'Flags': 0,
'LedgerEntryType': 'AccountRoot',
'OwnerCount': 0,
'PreviousTxnID': 'E3A3B7B1619A618261154A9468E8F93D28AC7B813F40741D494A0ED7B9794653',
'PreviousTxnLgrSeq': 39662860,
'Sequence': 39662860,
'index': '173F2F53EB166A75818F3D01D9CCB7ECEF83879B99C869ADF32F5A438A657BAF'},
'account_flags': {'defaultRipple': False,
'depositAuth': False,
'disableMasterKey': False,
'disallowIncomingCheck': False,
'disallowIncomingNFTokenOffer': False,
'disallowIncomingPayChan': False,
'disallowIncomingTrustline': False,
'disallowIncomingXRP': False,
'globalFreeze': False,
'noFreeze': False,
'passwordSpent': False,
'requireAuthorization': False,
'requireDestinationTag': False},
'ledger_current_index': 39662862,
'validated': False}
κ³μ μ 보μλ κ³μ μ μμ‘, μνμ€ λ²νΈ, νλκ·Έ λ±μ΄ ν¬ν¨λμ΄ μμ΅λλ€. μ΄ μ 보λ₯Ό ν΅ν΄ κ³μ μ μνλ₯Ό νμΈν μ μμ΅λλ€.
Regular Key μμ±β
Regular Keyλ₯Ό μμ±νκ³ , λ±λ‘νλ €λ©΄ Ledgerμ νΈλμμ μ μ μΆν΄μΌ ν©λλ€. νΈλμμ μ μ μΆνλ κ³Όμ μ transaction ννΈμμ λ μμΈνκ² λ€λ£¨κ³ μ΄λ² μ€μ΅μμλ ν΄λΉ λΆλΆμ λν μ€λͺ μ κ°λ¨νκ² νκ² μ΅λλ€.
from pprint import pprint
from xrpl.clients import JsonRpcClient
from xrpl.models.transactions import SetRegularKey
from xrpl.transaction import autofill_and_sign, submit_and_wait
from xrpl.wallet import generate_faucet_wallet, Wallet
# JsonRpcClient κ°μ²΄ μμ±
client = JsonRpcClient("https://s.altnet.rippletest.net:51234")
# master key μ§κ° (μλ μλ μ§κ°μ λΆλ¬μ€λ©΄ λ©λλ€. μ¬κΈ°μλ μμλ₯Ό μν΄ μλ‘μ΄ ν
μ€νΈ μ§κ°μ μμ±νμ΅λλ€)
my_wallet = generate_faucet_wallet(client=client)
# regular key μ§κ° μμ±
regular_key_wallet = Wallet.create()
# SetRegularKey νΈλμμ
κ°μ²΄ μμ±
set_regular_key_tx = SetRegularKey(
account=my_wallet.classic_address,
regular_key=regular_key_wallet.classic_address,
)
# νΈλμμ
νλ μλ μ±μ°κΈ° λ° μλͺ
signed_tx = autofill_and_sign(
transaction=set_regular_key_tx, client=client, wallet=my_wallet
)
# νΈλμμ
μ μΆ λ° μλ΅ λ°ν
response = submit_and_wait(transaction=signed_tx, client=client, wallet=my_wallet)
# κ²°κ³Ό μΆλ ₯
pprint(response.result)
μ μ½λλ Regular Keyλ₯Ό μμ±νκ³ , λ±λ‘νλ κ³Όμ μ 보μ¬μ€λλ€.
Regular Keyλ₯Ό λ±λ‘νλ €λ κ³μ μ μ§κ°μ my_wallet
μ΄λ©°, μ΄ μ§κ°μ 곡κ°μ λΉκ³΅κ° ν€ μμ΄ λ°λ‘ Master Key μ
λλ€.
λ¨Όμ , μλ‘μ΄ ν€ μμ ν©λλ€. μ΄λ₯Ό μν΄ μλ‘μ΄ μ§κ°(regular_key_wallet
)μ μμ±νλ©°, μ΄ μ§κ°μ ν€ μμ΄ Regular Keyκ° λ©λλ€. μ΄ μ§κ°μ μμ±μ μ΄μ μ μ€λͺ
ν μ§κ° μμ± λ°©λ²μ ν΅ν΄ μ§νν μ μμ΅λλ€.
λ€μμΌλ‘ SetRegularKey
νΈλμμ
κ°μ²΄λ₯Ό μμ±ν©λλ€. μ΄ λ, my_wallet
μ μ£Όμμ regular_key_wallet
μ κ³΅κ° ν€λ₯Ό νΈλμμ
μ ν¬ν¨μν΅λλ€.
νΈλμμ
μλͺ
μ μν΄ sign_and_autofill
ν¨μλ₯Ό μ¬μ©νλ©°, μ΄ ν¨μλ νΈλμμ
μ νμν μΈλΆ μ 보λ₯Ό μλμΌλ‘ μ±μλ£κ³ μλͺ
κ³Όμ μ μ§νν©λλ€.
λ§μ§λ§μΌλ‘, submit_and_wait
ν¨μλ₯Ό μ¬μ©νμ¬ μλͺ
λ νΈλμμ
μ XRPLμ μ μΆνκ³ , μ²λ¦¬ κ²°κ³Όλ₯Ό κΈ°λ€λ¦½λλ€.
μ μΆμ΄ μ±κ³΅μ μΌλ‘ μ΄λ£¨μ΄μ§ κ²½μ°, Regular Keyκ° μ±κ³΅μ μΌλ‘ λ±λ‘λμμμ μλ―Έν©λλ€. μ΄νλΆν°λ my_wallet
μ κ΄λ ¨λ νΈλμμ
μλͺ
μ, μλμ μ½λμ κ°μ΄ Master Key λμ μ΄ Regular Keyλ₯Ό μ¬μ©νμ¬ μλͺ
ν μ μκ² λ©λλ€. μ΄λ κ² ν¨μΌλ‘μ¨ Master Keyλ μμ νκ² λ³΄κ΄λλ©°, μΌμμ μΈ νΈλμμ
μλͺ
μ Regular Keyλ₯Ό ν΅ν΄ μ΄λ£¨μ΄μ§ μ μμ΅λλ€.
from xrpl.transaction import sign
# some_tx = Transaction(account=my_wallet.classic_address, ...)
signed_tx = sign(
transaction=some_tx, wallet=regular_key_wallet, client=client
)