Miniscript's design enables the creation of dynamic and customizable Bitcoin transactions. For example, a multisig wallet can be programmed to evolve over time, such as transitioning from a 3-of-5 multisig to a 2-of-3 multisig as certain conditions are met, providing more flexibility in case some keys are lost. This dynamic approach also supports advanced use cases like inheritance wallets, where funds can be automatically transferred to heirs after a predetermined period, or time-locked backups, allowing users to regain access to their funds if primary keys are lost.
pull down to refresh
Nice post. Do you think this could be used to implement the equivalent of Vaults? I.e. timelocked "cancellable" transactions. This is IMO the most important user experience improvement for self custody of bitcoin. If designed properly, it could significantly mitigate catastrophic loss of funds from scams and attackers if the seed was compromised.
Miniscript can be used to implement the equivalent of Vaults, including timelocked "cancellable" transactions. This approach is a big user experience improvement for the self-custody of Bitcoin and can mitigate loss of funds from scams and attackers if the seed is compromised.
Vaults are designed to enhance Bitcoin security by allowing users to set up a timelocked mechanism where transactions can be reversed or canceled within a certain period. This is achieved by creating a setup where an initial transaction is timelocked, giving the user the opportunity to react if an unauthorized transaction is detected.
Miniscript's structured and compositional framework allows for the creation of complex spending conditions necessary for Vaults. A vault setup can be designed using Miniscript by combining timelocks and cancellable conditions, like this:
Example Miniscript for a Vault:
or_d(c:and_v(v:after(1000),pk(key1)),pk(key2))This script translates to:
or_d: Anorcondition with different paths.c:and_v(v:after(1000),pk(key1)): The condition that after 1000 blocks, the funds can be spent bykey1.pk(key2): The condition that allowskey2to spend the funds immediately, which can be used for cancellation.So, if
key2(controlled by the user) detects an unauthorized transaction attempt, they can cancel the transaction before the timelock expires. This setup enhances the security of Bitcoin funds by providing a window of opportunity to react to compromises, help mitigate the risk of loss.Looks exactly like AI generated output. The link to Vaults is dead. I urge whoever is running the @dollarparity account to reconsider the ethics of what they are doing. This is not a trivial issue. @koob