レギュラーキーペアの変更または削除
XRP Ledgerでは、アカウントはその後のトランザクションには レギュラーキーペア と呼ばれるセカンダリキーペアで署名することができます。アカウントのレギュラーキーペアが漏えいした場合、またはセキュリティ対策としてレギュラーキーペアを定期的に変更する必要がある場合は、SetRegularKeyトランザクションを使用してアカウントレギュラーキーペアを削除または変更します。
マスターキーペアとレギュラーキーペアの詳細は、暗号鍵を参照してください。
レギュラーキーペアの変更
既存のレギュラーキーペアを変更する手順は、初めてレギュラーキーを割り当てる手順とほぼ同じです。キーペアを生成し、レギュラーキーペアとしてアカウントに割り当てます。これにより既存のレギュラーキーペアが上書きされます。ただし大きく異なる点は、既存のレギュラーキーペアを変更するときには既存のレギュラー秘密鍵を使用して秘密鍵自体を置き換えることができますが、レギュラーキーペアをアカウントに初めて割り当てるときにはアカウントのマスター秘密鍵を使用する必要があることです。
マスターキーペアとレギュラーキーペアの詳細は、暗号鍵を参照してください。
レギュラーキーペアの削除
漏えいしたレギュラーキーペアを単にアカウントから削除する場合は、キーペアを最初に生成する必要はありません。RegularKey
フィールドを省略したSetRegularKeyトランザクションを使用します。アカウントの別の署名手段(マスターキーペアまたは署名者リスト)が現在有効になっていない場合は、トランザクションが失敗することに注意してください。
アカウントのレギュラーキーペアを削除する場合、SetRegularKey
トランザクションでは、アカウントのマスター秘密鍵(シークレット)または既存のレギュラーキーペアによる署名が必要です。マスター秘密鍵またはレギュラー秘密鍵の送信は危険であるため、トランザクションの署名とネットワークへのトランザクションの送信を切り離した2段階方式でこのトランザクションを実行します。
トランザクションの署名
The most secure way to sign a transaction is to do it locally with a signing library, such as RippleAPI. Alternatively, you can sign the transaction using the sign method, but this must be done through a trusted and encrypted connection, or through a local connection, and only to a server you control.
In all cases, note the signed transaction's identifying hash for later.
要求フィールドに以下の値を指定します。
要求フィールド | 値 |
---|---|
Account |
アカウントのアドレス。 |
secret |
アカウントのmaster_key 、master_seed 、またはmaster_seed_hex (マスター秘密鍵またはレギュラー秘密鍵) |
要求フォーマット
要求フォーマットの例:
{
"command":"sign",
"tx_json":{
"TransactionType":"SetRegularKey",
"Account":"r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8"
},
"secret":"snoPBrXtMeMyMHUVTgbuqAfg1SUTb"
}
{
"method":"sign",
"params":[
{
"secret" :"snoPBrXtMeMyMHUVTgbuqAfg1SUTb",
"tx_json" :{
"TransactionType" :"SetRegularKey",
"Account" :"r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8"
}
}
]
}
#Syntax: sign secret tx_json
rippled sign snoPBrXtMeMyMHUVTgbuqAfg1SUTb '{"TransactionType":"SetRegularKey", "Account":"rUAi7pipxGpYfPNg3LtPcf2ApiS8aw9A93"}'
応答フォーマット
処理が成功した応答の例:
{
"result":{
"tx_blob":"1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E",
"tx_json":{
"Account":"r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8",
"Fee":"10",
"Flags":2147483648,
"Sequence":2,
"SigningPubKey":"0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020",
"TransactionType":"SetRegularKey",
"TxnSignature":"3045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E83",
"hash":"59BCAB8E5B9D4597D6A7BFF22F6C555D0F41420599A2E126035B6AF19261AD97"
}
},
"status":"success",
"type":"response"
}
{NEWWWWWWWWWWWW
"result":{
"status":"success",
"tx_blob":"1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E",
"tx_json":{
"Account":"r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8",
"Fee":"10",
"Flags":2147483648,
"Sequence":2,
"SigningPubKey":"0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020",
"TransactionType":"SetRegularKey",
"TxnSignature":"3045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E83",
"hash":"59BCAB8E5B9D4597D6A7BFF22F6C555D0F41420599A2E126035B6AF19261AD97"
}
}
}
{
"result" :{
"status" :"success",
"tx_blob" :"1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E",
"tx_json" :{
"Account" :"r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8",
"Fee" :"10",
"Flags" :2147483648,
"Sequence" :2,
"SigningPubKey" :"0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020",
"TransactionType" :"SetRegularKey",
"TxnSignature" :"3045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E83",
"hash" :"59BCAB8E5B9D4597D6A7BFF22F6C555D0F41420599A2E126035B6AF19261AD97"
}
}
}
sign
コマンドの応答には上記のようなtx_blob
値が含まれています。オフライン署名応答にはsignedTransaction
値が含まれています。いずれもトランザクションの署名済みバイナリ表現(ブロブ)です。
次にsubmit
コマンドを使用して、トランザクションブロブ(tx_blob
またはsignedTransaction
)をネットワークに送信します。
トランザクションの送信
オフライン署名応答のsignedTransaction
値、またはsign
コマンド応答のtx_blob
値をとり、submitメソッドを使用してtx_blob
として送信します。
要求フォーマット
要求フォーマットの例:
{
"command":"submit",
"tx_blob":"1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E"
}
{
"method":"submit",
"params":[
{
"tx_blob":"1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E"
}
]
}
#Syntax: submit tx_blob
rippled submit 1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E
応答フォーマット
処理が成功した応答の例:
{
"result":{
"engine_result":"tesSUCCESS",
"engine_result_code":0,
"engine_result_message":"The transaction was applied.Only final in a validated ledger.",
"tx_blob":"1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E",
"tx_json":{
"Account":"r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8",
"Fee":"10",
"Flags":2147483648,
"Sequence":2,
"SigningPubKey":"0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020",
"TransactionType":"SetRegularKey",
"TxnSignature":"3045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E83",
"hash":"59BCAB8E5B9D4597D6A7BFF22F6C555D0F41420599A2E126035B6AF19261AD97"
}
},
"status":"success",
"type":"response"
}
{
"result":{
"engine_result":"tesSUCCESS",
"engine_result_code":0,
"engine_result_message":"The transaction was applied.Only final in a validated ledger.",
"status":"success",
"tx_blob":"1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E",
"tx_json":{
"Account":"r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8",
"Fee":"10",
"Flags":2147483648,
"Sequence":2,
"SigningPubKey":"0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020",
"TransactionType":"SetRegularKey",
"TxnSignature":"3045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E83",
"hash":"59BCAB8E5B9D4597D6A7BFF22F6C555D0F41420599A2E126035B6AF19261AD97"
}
}
}
{
"result" :{
"engine_result" :"tesSUCCESS",
"engine_result_code" :0,
"engine_result_message" :"The transaction was applied.Only final in a validated ledger.",
"status" :"success",
"tx_blob" :"1200052280000000240000000268400000000000000A73210330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD02074473045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E838114623B8DA4A0BFB3B61AB423391A182DC693DC159E",
"tx_json" :{
"Account" :"r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8",
"Fee" :"10",
"Flags" :2147483648,
"Sequence" :2,
"SigningPubKey" :"0330E7FC9D56BB25D6893BA3F317AE5BCF33B3291BD63DB32654A313222F7FD020",
"TransactionType" :"SetRegularKey",
"TxnSignature" :"3045022100CAB9A6F84026D57B05760D5E2395FB7BE86BF39F10DC6E2E69DC91238EE0970B022058EC36A8EF9EE65F5D0D8CAC4E88C8C19FEF39E40F53D4CCECBB59701D6D1E83",
"hash" :"59BCAB8E5B9D4597D6A7BFF22F6C555D0F41420599A2E126035B6AF19261AD97"
}
}
}
レギュラーキーペアの削除が成功したかどうかを確認するには、削除したレギュラー秘密鍵を使用してトランザクションを送信できないことを確認します。
前述のSetRegularKey
トランザクションにより削除されたレギュラー秘密鍵を使用してAccountSetトランザクションに署名した際のエラー応答の例を以下に示します。
応答フォーマット
処理が成功した応答の例:
{
"error":"badSecret",
"error_code":41,
"error_message":"Secret does not match account.",
"request":{
"command":"submit",
"secret":"snoPBrXtMeMyMHUVTgbuqAfg1SUTb",
"tx_json":{
"Account":"r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8",
"TransactionType":"AccountSet"
}
},
"status":"error",
"type":"response"
}
{NEWWWWWWWWWWWW
"result":{
"error":"badSecret",
"error_code":41,
"error_message":"Secret does not match account.",
"request":{
"command":"submit",
"secret":"snoPBrXtMeMyMHUVTgbuqAfg1SUTb",
"tx_json":{
"Account":"r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8",
"TransactionType":"AccountSet"
}
},
"status":"error"
}
}
{
"result" :{
"error" :"badSecret",
"error_code" :41,
"error_message" :"Secret does not match account.",
"request" :{
"command" :"submit",
"secret" :"snoPBrXtMeMyMHUVTgbuqAfg1SUTb",
"tx_json" :{
"Account" :"r9xQZdFGwbwTB3g9ncKByWZ3du6Skm7gQ8",
"TransactionType" :"AccountSet"
}
},
"status" :"error"
}
}
場合によっては、SetRegularKey
トランザクションを使用して、トランザクションコストを支払わずにKey Resetトランザクションを送信できます。FeeEscalation Amendmentを有効にすると、Key Resetトランザクションの名目トランザクションコストがゼロであっても、rippled
は他のトランザクションよりもKey Resetトランザクションを優先します。