Karl Johan Alm [ARCHIVE] on Nostr: π
Original date posted:2018-03-15 π Original message:On Wed, Mar 14, 2018 at ...
π
Original date posted:2018-03-15
π Original message:On Wed, Mar 14, 2018 at 5:46 AM, Kalle Rosenbaum <kalle at rosenbaum.se> wrote:
> I can't really see from your proposal if you had thought of this: A soft
> fork can make old nodes accept invalid message signatures as valid. For
> example, a "signer" can use a witness version unknown to the verifier to
> fool the verifier. Witness version is detectable (just reject unknown
> witness versions) but there may be more subtle changes. Segwit was not
> "detectable" in that way, for example.
>
> This is the reason why I withdrew BIP120. If you have thought about the
> above, I'd be very interested.
I'm not sure I see the problem. The scriptPubKey is derived directly
from the address in all cases, which means the unknown witness version
would have to be committed to in the address itself.
So yeah, I can make a P2SH address with a witness version > 0 and a to
me unknown pubkey and then fool you into thinking I own it, but I
don't really see why you'd ultimately care. In other words, if I can
SPEND funds sent to that address today, I can prove that I can spend
today, which is the purpose of the tool, I think.
For the case where the witness version HAS been upgraded, the above
still applies, but I'm not sure it's a big issue. And it doesn't
really require an old node. I just need to set witness version >
current witness version and the problem applies to all nodes.
On Wed, Mar 14, 2018 at 8:36 AM, Luke Dashjr <luke at dashjr.org> wrote:
> I don't see a need for a new RPC interface, just a new signature format.
All right.
> Ideally, it should support not only just "proof I receive at this address",
> but also "proof of funds" (as a separate feature) since this is a popular
> misuse of the current message signing (which doesn't actually prove funds at
> all). To do this, it needs to be capable of signing for multiple inputs.
I assume by inputs you mean addresses/keys. The address field could
optionally be an array. That'd be enough?
> Preferably, it should also avoid disclosing the public key for existing or
> future UTXOs. But I don't think it's possible to avoid this without something
> MAST-like first. Perhaps it can be a MAST upgrade later on, but the new
> signature scheme should probably be designed with it in mind.
I'd love to not have to reveal the public key, but I'm not sure how it
would be done, even with MAST.
On Wed, Mar 14, 2018 at 12:12 PM, Anthony Towns <aj at erisian.com.au> wrote:
> Wouldn't it be sufficient for old nodes to check for standardness of the spending script and report non-standard scripts as either invalid outright, or at least highly questionable? That should prevent confusion as long as soft forks are only making nonstandard behaviours invalid.
That seems sensible to me. A warning would probably be useful, in case
the verifier is running old software.
-Kalle.
Published at
2023-06-07 18:11:13Event JSON
{
"id": "e5ee588fa44959aecd37f464504dcd4f1b1fd69c1211102f7f7a107c5a0255b6",
"pubkey": "cf98d015f410ea690e93370543fcb2c3129303ca3921fd6d463206f557722518",
"created_at": 1686161473,
"kind": 1,
"tags": [
[
"e",
"fde6d8b8cd384fa838810364bd9a6edd18aea9246ae8127a644187087642ae18",
"",
"root"
],
[
"e",
"69e4265e9d5241c48fa53c47640e48b625f6d7ba7267e205d11fdbc681438bc4",
"",
"reply"
],
[
"p",
"f0feda6ad58ea9f486e469f87b3b9996494363a26982b864667c5d8acb0542ab"
]
],
"content": "π
Original date posted:2018-03-15\nπ Original message:On Wed, Mar 14, 2018 at 5:46 AM, Kalle Rosenbaum \u003ckalle at rosenbaum.se\u003e wrote:\n\u003e I can't really see from your proposal if you had thought of this: A soft\n\u003e fork can make old nodes accept invalid message signatures as valid. For\n\u003e example, a \"signer\" can use a witness version unknown to the verifier to\n\u003e fool the verifier. Witness version is detectable (just reject unknown\n\u003e witness versions) but there may be more subtle changes. Segwit was not\n\u003e \"detectable\" in that way, for example.\n\u003e\n\u003e This is the reason why I withdrew BIP120. If you have thought about the\n\u003e above, I'd be very interested.\n\nI'm not sure I see the problem. The scriptPubKey is derived directly\nfrom the address in all cases, which means the unknown witness version\nwould have to be committed to in the address itself.\n\nSo yeah, I can make a P2SH address with a witness version \u003e 0 and a to\nme unknown pubkey and then fool you into thinking I own it, but I\ndon't really see why you'd ultimately care. In other words, if I can\nSPEND funds sent to that address today, I can prove that I can spend\ntoday, which is the purpose of the tool, I think.\n\nFor the case where the witness version HAS been upgraded, the above\nstill applies, but I'm not sure it's a big issue. And it doesn't\nreally require an old node. I just need to set witness version \u003e\ncurrent witness version and the problem applies to all nodes.\n\nOn Wed, Mar 14, 2018 at 8:36 AM, Luke Dashjr \u003cluke at dashjr.org\u003e wrote:\n\u003e I don't see a need for a new RPC interface, just a new signature format.\n\nAll right.\n\n\u003e Ideally, it should support not only just \"proof I receive at this address\",\n\u003e but also \"proof of funds\" (as a separate feature) since this is a popular\n\u003e misuse of the current message signing (which doesn't actually prove funds at\n\u003e all). To do this, it needs to be capable of signing for multiple inputs.\n\nI assume by inputs you mean addresses/keys. The address field could\noptionally be an array. That'd be enough?\n\n\u003e Preferably, it should also avoid disclosing the public key for existing or\n\u003e future UTXOs. But I don't think it's possible to avoid this without something\n\u003e MAST-like first. Perhaps it can be a MAST upgrade later on, but the new\n\u003e signature scheme should probably be designed with it in mind.\n\nI'd love to not have to reveal the public key, but I'm not sure how it\nwould be done, even with MAST.\n\nOn Wed, Mar 14, 2018 at 12:12 PM, Anthony Towns \u003caj at erisian.com.au\u003e wrote:\n\u003e Wouldn't it be sufficient for old nodes to check for standardness of the spending script and report non-standard scripts as either invalid outright, or at least highly questionable? That should prevent confusion as long as soft forks are only making nonstandard behaviours invalid.\n\nThat seems sensible to me. A warning would probably be useful, in case\nthe verifier is running old software.\n\n-Kalle.",
"sig": "a4fdd047f94c706cfa3240a40495d96d11debeeb1c1a2ae97f128669c86556e7d09e45e614c1fe2c6274bb4656e437831a7662ffdb966eb3e9be967500d9fc93"
}