Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[tapsend]: Enforce unique script keys #1181

Open
wants to merge 10 commits into
base: main
Choose a base branch
from
Open

Conversation

guggero
Copy link
Member

@guggero guggero commented Nov 8, 2024

Fixes #1168 (or at least prevents it from happening in the future).

This PR enforces script keys to be unique per top-level MS-SMT tree (assetID/groupKey) within a single transfer.

To be able to test this properly, we also make sure selected UTXOs are released by the freighter if the shipment of a parcel results in an error.
That change then impacts some assumptions in the integration tests, which requires additional commits to fix.

@coveralls
Copy link

coveralls commented Nov 8, 2024

Pull Request Test Coverage Report for Build 11838616455

Details

  • 57 of 119 (47.9%) changed or added relevant lines in 6 files are covered.
  • 26 unchanged lines in 6 files lost coverage.
  • Overall coverage increased (+0.02%) to 41.053%

Changes Missing Coverage Covered Lines Changed/Added Lines %
itest/assertions.go 0 4 0.0%
tapsend/send.go 39 46 84.78%
tapfreighter/wallet.go 0 18 0.0%
tapfreighter/chain_porter.go 0 33 0.0%
Files with Coverage Reduction New Missed Lines %
itest/assertions.go 1 0.0%
asset/asset.go 2 81.13%
asset/mock.go 3 92.2%
tapgarden/caretaker.go 4 68.5%
commitment/tap.go 4 83.91%
universe/interface.go 12 50.22%
Totals Coverage Status
Change from base Build 11829805032: 0.02%
Covered Lines: 25222
Relevant Lines: 61438

💛 - Coveralls

@guggero
Copy link
Member Author

guggero commented Nov 8, 2024

I'll look into the failed itest on Monday, looks like a test is using duplicate keys.

tapsend/send.go Show resolved Hide resolved
tapsend/send.go Outdated
for idx := range vPkt.Outputs {
vOut := vPkt.Outputs[idx]

// Check if the script key has already been used in this
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't it ok for us to have a script key duplicate across Bitcoin transaction outputs?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think a duplicate script key for the same asset would be an issue, even without those assets being children of an asset split. If that occurred, the exclusion proof would be a proof of inclusion, but for a different leaf vs. the existing model where the exclusion proof terminates in a nil leaf.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

exclusion proof terminates in a nil leaf.

Yes, exactly. The way our exclusion proofs currently work is that they expect no leaf to be present at the exclusion location (which is defined by the script key).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm yeh, I do wonder if there's a small change we can make the the exclusion proofs here to patch this portion.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would be optimal, yes. But not sure what you had in mind here? Prove that the exact asset leave isn't in another output? But how would you define equality here so that some trickery with a slight modification (e.g. just change the script version) isn't possible?

Also, while brainstorming on this with @jharveyb, the question came up if this restriction could ever be an issue for HTLCs? Since it's possible that multiple MPP shards have the same script key (since they use the same payment hash).

vPkt.SetInputAsset(0, &a)

for i, outputKey := range outputKeys {
vPkt.Outputs[i] = &tappsbt.VOutput{
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't the output index be considered here when determining uniqueness?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, that's kind of the point of this fix. See comment(s) above.

Copy link
Collaborator

@jharveyb jharveyb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks solid, thanks for catching this!

We may want to add similar checks earlier in the freighter eventually but this should address the root cause IMO.

tapsend/send.go Outdated Show resolved Hide resolved
},
},
{
name: "collision, same group packets, same keys",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would be good to test collision based on asset ID + script key in addition to group key + script key.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like to voice something similar. I think this test case should be added. It's a case that increased my understanding of the PR, and if IIUC it's also a edge case that should be tested.

{
	name: "no collision, multi asset packets, same keys",
	vPackets: []*tappsbt.VPacket{
		makeVPacket(
			assetID1, nil,
			[]asset.ScriptKey{
				scriptKey1,
			},
		),
		makeVPacket(
			assetID2, nil,
			[]asset.ScriptKey{
				scriptKey1,
			},
		),
	},
},

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, added two more test cases.

return c.AnchorPoint.String()
},
)
log.Infof("Identified %v eligible asset inputs for send of %d to %v: "+
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: this is counting anchor inputs and not asset inputs?

IIUC the anchor inputs may contain multiple eligible asset inputs, which we will select from later.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think if we have multiple eligible assets in the same anchor, we'd still get multiple *AnchoredCommitment structs returned. So IMO this is correct.

tapfreighter/chain_porter.go Show resolved Hide resolved
itest/send_test.go Show resolved Hide resolved
Copy link
Contributor

@gijswijs gijswijs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice!

I feel that the tapfreighter commits should be their own PR? They don't have anything to do with enforcing unique script keys. Same thing goes fee estimation itest.

Or maybe just mention it in the PR that a number of other fixes were implemented as well, just for future reference.

tapsend/send.go Outdated
// Check if the script key has already been used in this
// transaction.
scriptKey := asset.ToSerialized(vOut.ScriptKey.PubKey)
if _, ok := perAssetMap[scriptKey]; ok {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me see if I understand this:
In theory it would be ok to reuse scriptKeys over different tapCommitmentKeys?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, since those would have different paths in the anchored tapCommitment.

I think this statement is correct:

"For a given transfer, across all anchor outputs, assets can share a TapCommitmentKey(), or an AssetCommitmentKey(), but not both."

If both are shared, for any two assets, then we can't generate valid exclusion proofs.

@jharveyb jharveyb self-requested a review November 11, 2024 17:24
This test is very useful for debugging user-supplied proofs that failed
for some reason. We expand the test to also verify the inclusion and
exclusion proofs.
@guggero
Copy link
Member Author

guggero commented Nov 14, 2024

They don't have anything to do with enforcing unique script keys. Same thing goes fee estimation itest.

Actually, they kind of do. To be able to test the check introduced with the PR, we want to be able to try again. That's why we added the fix for releasing the leased inputs. Which then changes a bunch of assumptions in the itests.
Updated the PR body and commit messages to make that more clear.

This helper method returns the asset specifier for
the virtual packet.
Because a single virtual packet is only supposed to carry inputs and
outputs of a single asset ID, the TAP commitment key is valid for the
whole vPacket.
To avoid asset leaves colliding on the same asset ID and script key.
Previously we only released/unlocked the BTC level outputs we leased
from the lnd wallet when an error occurred.
But if we're still in a state where nothing has been written to disk and
the user can try again, we can safely release/unlock the asset level
UTXOs as well to avoid them being locked for 10 minutes.
This test demonstrates that we get the correct error when we attempt to
send to the same address twice in the same transaction. This also shows
that we can re-try normally if a send fails before it was written to
disk.
The fee estimation test assumed that UTXOs would be locked after an
error and couldn't be used anymore. This is no longer the case and we
need to adjust the test. We clean up the test a bit while we're at it.
Because we now check all active and passive packets for uniqueness in
their commitment keys, this issue has surfaced. If we're spending
multiple different assets from the same on-chain input commitment, we
used to create duplicate passive assets.
That wasn't a problem until now because within the trees everything
would just be overwritten and collapsed back to a single asset. But
because have the uniqueness check on the virtual packet slice level,
this duplication became apparent.
@guggero
Copy link
Member Author

guggero commented Nov 14, 2024

Thanks to the failing integration test I noticed two things that I needed to fix (with the latest push):

  • For grouped assets, the asset ID goes into the asset-level commitment key, not just the script key. So the commitment keys actually look like this (and uniqueness needs to be guaranteed across those within a single transfer):
TAP level asset level
grouped asset SHA256(group_key) SHA256(asset_id || script_key)
non-grouped asset asset_id SHA256(script_key)
  • When spending multiple input assets from the same on-chain input where other passive assets were present, we would duplicate those passive assets when creating passive virtual packets for them. This wasn't really an issue before since within the commitment trees they'd just be collapsed/overwritten into a single asset. But because the new uniqueness test operates on the slice of virtual packets, this was discovered. So a simple de-duplication fix was added in the last commit.

@jharveyb
Copy link
Collaborator

* For grouped assets, the asset ID goes into the asset-level commitment key, not just the script key. So the commitment keys actually look like this (and uniqueness needs to be guaranteed across those within a single transfer):

TAP level asset level
grouped asset SHA256(group_key) SHA256(asset_id || script_key)
non-grouped asset asset_id SHA256(script_key)

May be a motivation to use the Specifier type in more places.

@guggero
Copy link
Member Author

guggero commented Nov 15, 2024

I was trying to find out if the issue fixed in this PR also affects HTLCs with the same payment hash (e.g. MPP shards).
While trying to reproduce that in the latest HTLC sweep litd PR, I ran into this:

2024-11-15 14:18:07.821 [DBG] TSVR: FetchLeavesFromCommit called, ourBalance=4292000 mSAT, theirBalance=84788000 mSAT, numHtlcs=10
2024-11-15 14:18:07.825 [TRC] CMMT: Derived asset inclusion proof for asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, asset_commitment_key=87bb7911d2d73a9a93214705b7401c11d566df5d997cfd8a3a24e63d74093bf0, asset_commitment_leaf=797dc93191da76b852db11a2c512a3a6434b8c6ae885c1dd8bddd5d7bbc25d36
2024-11-15 14:18:07.825 [TRC] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=9be7f97519af4f8a48193b3aea3a73d93ba6f9d30882c53945e486a0837fb58c, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159
2024-11-15 14:18:07.825 [DBG] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=9be7f97519af4f8a48193b3aea3a73d93ba6f9d30882c53945e486a0837fb58c, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, Commitment V2 taproot_key=dff5f975f5e968ed3128291adb33078b329ff380ef901075d8e4379d89139657, NonV2 taproot_key=24d420f7aa1a552ee2881f929670c8accf4837a54e105c0733d8ae1d2e8e068c
2024-11-15 14:18:07.825 [TRC] SEND: Output commitment #0 v2, taproot_asset_root=77eb309e4b119ed696bb692cc8e3ac8ac257df5dff8ef61c1cf470d0e354e657, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, pk_script=, trimmed_merkle_root=
2024-11-15 14:18:07.825 [TRC] SEND: Output commitment asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, script_key=021e6612dfcf4dbe5ff392a74a1d2f194f12e6b0c06a593fab555d904b2e97ea8f, group_key=<nil>, amount=3999, version=1, split_commitment=false
2024-11-15 14:18:07.825 [TRC] CMMT: Derived asset inclusion proof for asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, asset_commitment_key=0079078b557c2971ff95beaca9e131fb5024c023e2d4eb31c043987f2dc77c9a, asset_commitment_leaf=c8faa3323c993348ab991a05e27a205f24ba055169daa905bd444ce2a015057f
2024-11-15 14:18:07.826 [TRC] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=826b34e2df8167529857ee92ef3dd8aa8cab2723ebcbc3da0c11aa0e2e168abd, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159
2024-11-15 14:18:07.826 [DBG] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=826b34e2df8167529857ee92ef3dd8aa8cab2723ebcbc3da0c11aa0e2e168abd, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, Commitment V2 taproot_key=65849a81bafc3bb80ea9f5b3f3c2f649f048d45e8d74ead91b5475de8f2e710a, NonV2 taproot_key=6cf1cf2871bb8e0dfa52f15804568360ad6e7682727a352f99ac8de24242f6ee
2024-11-15 14:18:07.826 [TRC] SEND: Output commitment #0 v2, taproot_asset_root=5a980e3fac06edca4f4ef541b91ab32274451dba59725dd749bc1167ef280af8, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, pk_script=, trimmed_merkle_root=
2024-11-15 14:18:07.826 [TRC] SEND: Output commitment asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, script_key=021e6612dfcf4dbe5ff392a74a1d2f194f12e6b0c06a593fab555d904b2e97ea8f, group_key=<nil>, amount=3999, version=1, split_commitment=false
2024-11-15 14:18:07.826 [TRC] CMMT: Derived asset inclusion proof for asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, asset_commitment_key=ecfb68811a92ce92bce3b96dfdb18e1df20dfcbe894c4604ad2f1c14a506b16e, asset_commitment_leaf=5968c4eeba4caab83b41bd7764bb358c7a558031ef00809fcd6329525c48c0d8
2024-11-15 14:18:07.827 [TRC] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=2625156771ef35d482b2bb119c6af4ea5b3632bf582943419192281d1f445101, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159
2024-11-15 14:18:07.827 [DBG] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=2625156771ef35d482b2bb119c6af4ea5b3632bf582943419192281d1f445101, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, Commitment V2 taproot_key=0da5685783171940e21b9a05e58c25de3ab5587e78669bf21b1ed73d49c8b0e8, NonV2 taproot_key=1f05d57877bbdf5824d99af240b5a403c79d8920801902e608f362377bb6fe0a
2024-11-15 14:18:07.827 [TRC] SEND: Output commitment #0 v2, taproot_asset_root=2eba25696fa18e58b45519556c589885a15484e59ecdcf131eb5196bd21b69c6, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, pk_script=, trimmed_merkle_root=
2024-11-15 14:18:07.827 [TRC] SEND: Output commitment asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, script_key=021e6612dfcf4dbe5ff392a74a1d2f194f12e6b0c06a593fab555d904b2e97ea8f, group_key=<nil>, amount=4656, version=1, split_commitment=false
2024-11-15 14:18:07.827 [TRC] CMMT: Derived asset inclusion proof for asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, asset_commitment_key=ecfb68811a92ce92bce3b96dfdb18e1df20dfcbe894c4604ad2f1c14a506b16e, asset_commitment_leaf=5968c4eeba4caab83b41bd7764bb358c7a558031ef00809fcd6329525c48c0d8
2024-11-15 14:18:07.827 [TRC] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=2625156771ef35d482b2bb119c6af4ea5b3632bf582943419192281d1f445101, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159
2024-11-15 14:18:07.828 [DBG] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=2625156771ef35d482b2bb119c6af4ea5b3632bf582943419192281d1f445101, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, Commitment V2 taproot_key=0da5685783171940e21b9a05e58c25de3ab5587e78669bf21b1ed73d49c8b0e8, NonV2 taproot_key=1f05d57877bbdf5824d99af240b5a403c79d8920801902e608f362377bb6fe0a
2024-11-15 14:18:07.828 [TRC] SEND: Output commitment #0 v2, taproot_asset_root=a2d2f4d176dd1729bb33403a076e203c673b6607b7e17835d62dc3b68987c685, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, pk_script=, trimmed_merkle_root=
2024-11-15 14:18:07.828 [TRC] SEND: Output commitment asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, script_key=021e6612dfcf4dbe5ff392a74a1d2f194f12e6b0c06a593fab555d904b2e97ea8f, group_key=<nil>, amount=4656, version=1, split_commitment=false
2024-11-15 14:18:07.828 [TRC] CMMT: Derived asset inclusion proof for asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, asset_commitment_key=ecfb68811a92ce92bce3b96dfdb18e1df20dfcbe894c4604ad2f1c14a506b16e, asset_commitment_leaf=5968c4eeba4caab83b41bd7764bb358c7a558031ef00809fcd6329525c48c0d8
2024-11-15 14:18:07.828 [TRC] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=2625156771ef35d482b2bb119c6af4ea5b3632bf582943419192281d1f445101, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159
2024-11-15 14:18:07.828 [DBG] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=2625156771ef35d482b2bb119c6af4ea5b3632bf582943419192281d1f445101, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, Commitment V2 taproot_key=0da5685783171940e21b9a05e58c25de3ab5587e78669bf21b1ed73d49c8b0e8, NonV2 taproot_key=1f05d57877bbdf5824d99af240b5a403c79d8920801902e608f362377bb6fe0a
2024-11-15 14:18:07.829 [TRC] SEND: Output commitment #0 v2, taproot_asset_root=755931268d7e963ca073f5bd1cc73f151be17fa57de98c79a2022c43360f2c33, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, pk_script=, trimmed_merkle_root=
2024-11-15 14:18:07.829 [TRC] SEND: Output commitment asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, script_key=021e6612dfcf4dbe5ff392a74a1d2f194f12e6b0c06a593fab555d904b2e97ea8f, group_key=<nil>, amount=4656, version=1, split_commitment=false
2024-11-15 14:18:07.829 [TRC] CMMT: Derived asset inclusion proof for asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, asset_commitment_key=ecfb68811a92ce92bce3b96dfdb18e1df20dfcbe894c4604ad2f1c14a506b16e, asset_commitment_leaf=9b846ea371be1a404b0b4d4efff4c423c2cc68c9414d46c8473307f653bfb90f
2024-11-15 14:18:07.829 [TRC] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=994986adb27c0b836994a274eeb3bf5ca45c70b023b29991832685e17e0dc673, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159
2024-11-15 14:18:07.829 [DBG] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=994986adb27c0b836994a274eeb3bf5ca45c70b023b29991832685e17e0dc673, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, Commitment V2 taproot_key=43e9f8bd7d4078590249ad8665451676371a3c63f3e36d5e26b31fcfb8841178, NonV2 taproot_key=a67f0c9d6da89802a27d25a55092df5bb4622557753720187a438083e9f6c035
2024-11-15 14:18:07.830 [TRC] SEND: Output commitment #0 v2, taproot_asset_root=8741f38c1fb59ea1f7b3f157b16d495f30cf1bbb39c01898cf7bffb1654fd3f8, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, pk_script=, trimmed_merkle_root=
2024-11-15 14:18:07.830 [TRC] SEND: Output commitment asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, script_key=021e6612dfcf4dbe5ff392a74a1d2f194f12e6b0c06a593fab555d904b2e97ea8f, group_key=<nil>, amount=1030, version=1, split_commitment=false
2024-11-15 14:18:07.830 [TRC] CMMT: Derived asset inclusion proof for asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, asset_commitment_key=c12690daca54f1920e2e88b695ab747b39aca9c43844e71e039331f7211dab7b, asset_commitment_leaf=76ba27a646d238630ea532506ccbc9bbccffc8a3c7d9c8e0f2b70c82909a355d
2024-11-15 14:18:07.830 [TRC] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=1ee9f224356cd0759f331da2cafc41b9684906d87e6f53a8ba8950fd679957d1, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159
2024-11-15 14:18:07.830 [DBG] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=1ee9f224356cd0759f331da2cafc41b9684906d87e6f53a8ba8950fd679957d1, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, Commitment V2 taproot_key=d425d02286d51586af8fa446fee9f353062ee04993ffe79ca6dea180e627f3b3, NonV2 taproot_key=4128c915fe85cbda468ee81e6d94b91e7a62374df0d59828ba75aa5c81916b41
2024-11-15 14:18:07.830 [TRC] SEND: Output commitment #0 v2, taproot_asset_root=ad5c655d86e26577638d01bc642c35be5b1d6e2843e6019752a2d07eb9a589b9, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, pk_script=, trimmed_merkle_root=
2024-11-15 14:18:07.830 [TRC] SEND: Output commitment asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, script_key=021e6612dfcf4dbe5ff392a74a1d2f194f12e6b0c06a593fab555d904b2e97ea8f, group_key=<nil>, amount=4656, version=1, split_commitment=false
2024-11-15 14:18:07.831 [TRC] CMMT: Derived asset inclusion proof for asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, asset_commitment_key=c12690daca54f1920e2e88b695ab747b39aca9c43844e71e039331f7211dab7b, asset_commitment_leaf=76ba27a646d238630ea532506ccbc9bbccffc8a3c7d9c8e0f2b70c82909a355d
2024-11-15 14:18:07.831 [TRC] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=1ee9f224356cd0759f331da2cafc41b9684906d87e6f53a8ba8950fd679957d1, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159
2024-11-15 14:18:07.831 [DBG] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=1ee9f224356cd0759f331da2cafc41b9684906d87e6f53a8ba8950fd679957d1, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, Commitment V2 taproot_key=d425d02286d51586af8fa446fee9f353062ee04993ffe79ca6dea180e627f3b3, NonV2 taproot_key=4128c915fe85cbda468ee81e6d94b91e7a62374df0d59828ba75aa5c81916b41
2024-11-15 14:18:07.831 [TRC] SEND: Output commitment #0 v2, taproot_asset_root=89da4d16f5424cac17d2789bc3db328d25cdab1615a3628a8ea9907f2ac68d9c, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, pk_script=, trimmed_merkle_root=
2024-11-15 14:18:07.831 [TRC] SEND: Output commitment asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, script_key=021e6612dfcf4dbe5ff392a74a1d2f194f12e6b0c06a593fab555d904b2e97ea8f, group_key=<nil>, amount=4656, version=1, split_commitment=false
2024-11-15 14:18:07.832 [TRC] CMMT: Derived asset inclusion proof for asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, asset_commitment_key=c12690daca54f1920e2e88b695ab747b39aca9c43844e71e039331f7211dab7b, asset_commitment_leaf=76ba27a646d238630ea532506ccbc9bbccffc8a3c7d9c8e0f2b70c82909a355d
2024-11-15 14:18:07.832 [TRC] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=1ee9f224356cd0759f331da2cafc41b9684906d87e6f53a8ba8950fd679957d1, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159
2024-11-15 14:18:07.832 [DBG] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=1ee9f224356cd0759f331da2cafc41b9684906d87e6f53a8ba8950fd679957d1, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, Commitment V2 taproot_key=d425d02286d51586af8fa446fee9f353062ee04993ffe79ca6dea180e627f3b3, NonV2 taproot_key=4128c915fe85cbda468ee81e6d94b91e7a62374df0d59828ba75aa5c81916b41
2024-11-15 14:18:07.832 [TRC] SEND: Output commitment #0 v2, taproot_asset_root=f69f9ace3007c7d2b8b4b7a2a3c064229a2a5f4cd824b4b2289a2ae29388a7d9, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, pk_script=, trimmed_merkle_root=
2024-11-15 14:18:07.832 [TRC] SEND: Output commitment asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, script_key=021e6612dfcf4dbe5ff392a74a1d2f194f12e6b0c06a593fab555d904b2e97ea8f, group_key=<nil>, amount=4656, version=1, split_commitment=false
2024-11-15 14:18:07.832 [TRC] CMMT: Derived asset inclusion proof for asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, asset_commitment_key=c12690daca54f1920e2e88b695ab747b39aca9c43844e71e039331f7211dab7b, asset_commitment_leaf=09603110653cc8720c965d199ec06aa310b55aefad78a33fc4e2fa507c8b80a9
2024-11-15 14:18:07.832 [TRC] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=bc8030dc6a4d7d2b9e0728055bd53aa892450a15b7b501bd882caec6e0a917b9, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159
2024-11-15 14:18:07.833 [DBG] PROF: Derived Taproot Asset commitment by inclusion taproot_asset_root=bc8030dc6a4d7d2b9e0728055bd53aa892450a15b7b501bd882caec6e0a917b9, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, Commitment V2 taproot_key=389ca3efb63b48c159459989bdf800f5f5d28ab338363bb50735ef262b1146af, NonV2 taproot_key=0f2fcccc38d535139f3869f85536fa370d3344dd9354131856c8faa33571f478
2024-11-15 14:18:07.833 [TRC] SEND: Output commitment #0 v2, taproot_asset_root=c2e730468a7af656eda3e60f0aae39fc1a819b3859029306c6050372ebb15a44, internal_key=031b8f92fb8981faa6ff98f5280794542d4d9fefd6265ba079993f1f8efd3b4159, pk_script=, trimmed_merkle_root=
2024-11-15 14:18:07.833 [TRC] SEND: Output commitment asset_id=009be74e769b933c194f32f69c972665a072607970e1e9cca836a873320ea4c2, script_key=021e6612dfcf4dbe5ff392a74a1d2f194f12e6b0c06a593fab555d904b2e97ea8f, group_key=<nil>, amount=1030, version=1, split_commitment=false
2024-11-15 14:18:07.833 [DBG] TSVR: UnpackSigs called
2024-11-15 14:18:07.834 [INF] LNWL: Verifying new musig2 sig for session=e1f4cb1cfe870d2402618025b84fba061d6b7d742e0c948c39f808c2006d66ca, nonce=NoncePair(verification_nonce=02161fefb1c57ce9158e03ba20f0d82e5e84f31baed7e5bfbe22be8f93c99a78020302d8485a5d267cb5c054d028ef67311c6eacb5c7cdfe929afa126a014c293e01, signing_nonce=02c7eec3af53df9c410f2ee414962328fb1d7e527406c1983c04ef5a81c5b5d9a302ac6dc2c1be8a37ee380a25b2866d0f8a14f8629ab289e19dac93e5baeeb19284)

cc @Roasbeef

Will investigate further next week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: 👀 In review
Development

Successfully merging this pull request may close these issues.

[bug]: Not all transfer proofs generated
6 participants