{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-products/wallet/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Key resharing","description":"User guides, API reference, and support resources.","siteUrl":"https://docs.ripple.com","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"key-resharing","__idx":0},"children":["Key resharing"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Key resharing"]}," in MPC is a process similar to secret rotation in software. It refreshes key shares without changing the underlying private key. This can enhance security while keeping the cryptographic identity unchanged."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"overview","__idx":1},"children":["Overview"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In Threshold Signature Schemes (TSS), key resharing involves generating ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["a new set of key shares"]}," among participants while keeping the original private key consistent. This process ensures that even if some key shares were previously compromised, they become obsolete after resharing, ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["mitigating long-term exposure risks"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Importantly, Ripple Custody (Wallet) performs key resharing in a fully distributed manner. The system ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["never reconstructs the private key"]}," at any point during the resharing process."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This process is also commonly referred to as:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Key share rotation"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Proactive secret sharing"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Key refresh"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Regardless of the terminology, the goal remains the same: to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["enhance breach resilience, adapt to changes in an organization's quorum structure, and refresh cryptographic material"]}," over time."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"security-benefits","__idx":2},"children":["Security benefits"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Key resharing provides several important security benefits:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Benefit"},"children":["Benefit"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Breach mitigation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Previously compromised key shares become obsolete"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Long-term security"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Reduces risk from persistent threats"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Key continuity"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Private key remains unchanged and wallet addresses stay the same"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Compliance"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Supports key rotation requirements"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-key-resharing-works","__idx":3},"children":["How key resharing works"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["During a coordinated reshare, the system refreshes each participant's key share into a new share. The mathematical relationship between shares changes, but the underlying private key remains the same."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"example-2-of-3-quorum","__idx":4},"children":["Example: 2-of-3 quorum"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Consider a 2-of-3 quorum with the following devices and shards:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Before resharing:"]}]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["CloudSign 1 holding shard ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Sa1"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["CloudSign 2 holding shard ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Sa2"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["CloudSign 3 holding shard ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Sa3"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["After resharing:"]}]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["CloudSign 1 now holds shard ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Sb1"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["CloudSign 2 now holds shard ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Sb2"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["CloudSign 3 now holds shard ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Sb3"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/key-refreshing.84c552b69c6e7eb3213fc38c3022d96d1c41e4dfa78b2d1cbe9236e844d1380c.9fccc40d.svg","alt":"Key resharing diagram"},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The old shards (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Sa1"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Sa2"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Sa3"]},") no longer sign transactions. Only the new shards (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Sb1"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Sb2"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Sb3"]},") can participate in signing."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"when-to-use-key-resharing","__idx":5},"children":["When to use key resharing"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Consider coordinating key resharing in these scenarios:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Security policy"]}," - Rotate key shares when your internal security policy requires it."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Suspected compromise"]}," - Invalidate potentially exposed shares."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Personnel changes"]}," - Review resharing needs when users with device access leave the organization."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Compliance requirements"]}," - Meet regulatory key rotation mandates."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Security incidents"]}," - Include resharing in your incident response plan when appropriate. If you suspect key shard exposure, contact Ripple immediately."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"coordinate-key-resharing","__idx":6},"children":["Coordinate key resharing"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ripple Custody (Wallet) doesn't currently expose a customer-initiated key resharing action in the console, and it doesn't run key resharing automatically on a schedule. If you need to reshare key shards, contact Ripple support or your account team."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Before a coordinated reshare:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Identify the quorum and wallets that require resharing."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Confirm the business reason, such as a security incident, personnel change, or compliance requirement."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Schedule a maintenance window with Ripple support and confirm the expected signing availability for affected wallets."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Make sure the required quorum devices are online if Ripple Custody (Wallet) requires device participation."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["After Ripple Custody (Wallet) confirms completion, take fresh backups of each CloudSign node's database. Don't restore any node snapshot that you took before the reshare. Key shard backups in S3 need no action (see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#critical-warning-backup-compatibility"},"children":["Backup compatibility"]},")."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Device availability"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ripple support confirms which devices must be available during a coordinated reshare. If a required device is unavailable, the resharing may fail or require manual intervention."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After a successful reshare, previous key shards no longer participate in signing. Treat devices that held previous key shards as containing obsolete sensitive material until you decommission them through your device lifecycle process."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"critical-warning-backup-compatibility","__idx":7},"children":["Critical warning: Backup compatibility"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ripple Custody (Wallet) has two kinds of backup, and resharing affects them differently."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Key shard backups in S3 stay valid"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Resharing and restructuring replace the key shards without changing the wallet's underlying key, so the encrypted key shard backups that Ripple Custody (Wallet) writes to S3 stay valid. Ripple Custody (Wallet) binds each backup file to the wallet's key ID and quorum ID, and neither of them changes. The backup file doesn't store the quorum ID, so keep it in your ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/signing-and-key-management/backup-and-recovery#prepare-for-disaster-recovery"},"children":["offline wallet inventory"]},". You don't need to do anything to them, and Ripple Custody (Wallet) can't regenerate a key shard backup for an existing key in any case."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["What does change is that the backup still holds the key shares of the devices that were in the quorum when you created the wallet. That doesn't affect recovery, because the recovery CLI reconstructs the private key from the backup itself rather than restoring shards to devices. It does mean that a backup isn't a record of your current quorum membership."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["CloudSign node database snapshots are the opposite case. A snapshot taken ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["before"]}," the reshare contains obsolete shards that mismatch the rest of the quorum."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"danger","name":"IMPORTANT: Backup compatibility"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["key resharing"]}," carefully with ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["CloudSign node database snapshots"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Restoring a node snapshot"]},"—created before the most recent resharing operation—on a single MPC node causes a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["mismatch between key shares"]}," across the quorum, ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["rendering the key unusable"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To prevent this:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Option 1:"]}," Avoid using local node snapshots with resharing"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Option 2:"]}," Take a new node snapshot ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["immediately after each resharing event"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Failure to follow these guidelines can result in ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["permanent loss of access to funds"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/signing-and-key-management/backup-and-recovery#maintain-your-backups"},"children":["Maintain your backups"]}," and the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/signing-and-key-management/backup-and-recovery/disaster-recovery#restore-a-cloudsign-node-database"},"children":["restore constraints"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"backup-best-practices-with-key-resharing","__idx":8},"children":["Backup best practices with key resharing"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you take CloudSign node snapshots:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Document resharing events"]}," – Keep a log of when resharing occurs"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Invalidate old node snapshots"]}," – Mark pre-resharing node snapshots as obsolete"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Take new node snapshots immediately"]}," – After Ripple Custody (Wallet) confirms a reshare, take fresh node backups"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Verify snapshot compatibility"]}," – Before restoring, confirm that you took the snapshot after the last resharing"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Consider a snapshot-free approach"]}," – For maximum safety, rely on quorum redundancy instead of node snapshots"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-topics","__idx":9},"children":["Related topics"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/signing-and-key-management/mpc-quorums/key-restructuring"},"children":["Key restructuring"]}," – Change quorum participants while preserving the key"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/signing-and-key-management/mpc-quorums"},"children":["MPC quorums"]}," – Create and manage quorums"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/overview/understanding-mpc-tss"},"children":["Understanding MPC-TSS"]}," – How MPC-TSS works"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/wallet/overview/mpc-terminology"},"children":["MPC terminology"]}," – Key terms and definitions"]}]}]},"headings":[{"value":"Key resharing","id":"key-resharing","depth":1},{"value":"Overview","id":"overview","depth":2},{"value":"Security benefits","id":"security-benefits","depth":2},{"value":"How key resharing works","id":"how-key-resharing-works","depth":2},{"value":"Example: 2-of-3 quorum","id":"example-2-of-3-quorum","depth":3},{"value":"When to use key resharing","id":"when-to-use-key-resharing","depth":2},{"value":"Coordinate key resharing","id":"coordinate-key-resharing","depth":2},{"value":"Critical warning: Backup compatibility","id":"critical-warning-backup-compatibility","depth":2},{"value":"Backup best practices with key resharing","id":"backup-best-practices-with-key-resharing","depth":3},{"value":"Related topics","id":"related-topics","depth":2}],"frontmatter":{"title":"Key resharing","seo":{"title":"Key resharing"}},"lastModified":"2026-10-08T12:52:04.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/wallet/signing-and-key-management/mpc-quorums/key-resharing","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}