Manage granularly which scripts are allowed to run in a transaction in order to avoid security issues, especially when a script is lazily fetched from the RPC and executed without the user explicitly trusting it.
The underlying concern (a malicious note creator pointing at a malicious script) always existed, but before lazy script fetching landed (#1456 / #1812), the client errored with "script not found" if the bytes weren't local, forcing the user to import the script manually. That friction is now gone: the client silently fetches whatever script the note references and runs it.
@igamigo explains the threat with an example here: #1456 (comment)
Manage granularly which scripts are allowed to run in a transaction in order to avoid security issues, especially when a script is lazily fetched from the RPC and executed without the user explicitly trusting it.
The underlying concern (a malicious note creator pointing at a malicious script) always existed, but before lazy script fetching landed (#1456 / #1812), the client errored with "script not found" if the bytes weren't local, forcing the user to import the script manually. That friction is now gone: the client silently fetches whatever script the note references and runs it.
@igamigo explains the threat with an example here: #1456 (comment)