Repository navigation
Add owned BIP-322 signing and block unsafe VSS - #26
Merged
Merged
Conversation
Jainakin
force-pushed
the
feat/bip322-message-signing
branch
from
October 18, 2026 13:54
f9bb029 to
ebe816e
Compare
Jainakin
marked this pull request as ready for review
October 19, 2026 05:43
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add Bitcoin-address BIP-322 simple signing alongside the existing Lightning node-identity API. An unlocked node with its matching native signer can prove control of its canonical first vanilla BIP86 Taproot address. Exact UTF-8, including empty messages, whitespace and NUL, is preserved. Signing emits finalized
smpproofs; offline verification supports strict P2TR key-path and P2WPKH simple forms.Native changes live entirely in this binding's checksum-pinned overlay against RLN v0.17.0-beta.3. Each proof checks the live unlocked wallet identity and persisted bootstrap against the attached native signer. Shutdown drains active calls and revokes the added address key across retained clones. No upstream repository or published version changes. The maintained adapter also refuses unsafe VSS configuration and backup/fence operations before native runtime, filesystem or transport creation.
API:
getMessageSigningAddress(),signMessageBip322(message, address), nodeverifyMessageBip322(message, address, signature), and pure moduleverifyMessageBip322(message, address, signature, network). The compiled capability isbip322-simple-v1; legacysignMessage()retains its existing semantics. See BIP322.md for supported scripts, fixed-address scope, custody boundaries and pinned primary specification/vector sources.VSS safety boundary
Any supplied VSS URL string, including empty/malformed values, fails with sanitized
ERR_VSS_UNSAFE_UPSTREAMbefore storage or networking. Instance, raw and compatibility-global paths share the same native guard. Backup and fence clearing reject on existing local-only handles without mutating storage. Omitted/null native configuration retains local-only operation. Compiledvss-safety-policy-v1metadata explicitly reports unsupported; no unsafe override, scheduler, new credential protocol or automatic fence deletion exists. This contains the unsafe integration and does not repair remote archives or upstream backup/recovery defects. See VSS-SAFETY.md.Exact source and validation
Shared adapter:
d8b5be9809b12acd48fa5958014b4655ff94598c99800a2fafb9e3e81809aebf. RLNecc69f2, rgb-lib1b951afand LDK79b9eb5remain unchanged.c1994daf1d14a4dfd37846f9f91915f357aa7b4band passed full source/hash/symbol admission together: Darwin ARM64, iOS ARM64 device, iOS ARM64 simulator and iOS x64 simulator. Existing main split-distribution and Android staging contracts are preserved.These are local containment and signing checks; they do not establish funded transfer, physical-device, Android runtime, public VSS, remote recovery/erasure or arbitrary crash-recovery qualification. Existing registry beta.4 artifacts do not contain this source extension. This PR remains draft; no merge or publication.