Any integer x over GF(p) have a modular inverse x^-1 so that...

semisol

npub12262qa4uhw7u8gdwlgmntqtv7aye8vdcmvszkqwgs0zchel6mz7s6cgrkj

hex

2fb357d6e85df4c25cc73f2004130021d45217b41a0b7b5ec9c26491625020ee

nevent

nevent1qqszlv6h6m59maxztnrn7gqyzvqzr4zjz76p5zmmtmyuyey3vfgzpmsprpmhxue69uhhyetvv9ujuem4d36kwatvw5hx6mm9qgs99d9qw67th0wr5xh05de4s9k0wjvnkxudkgptq8yg83vtulad30gtcq0re

Kind-1 (TextNote)

2026-05-25T21:45:16Z

↳ 回复 SatsAndSports (npub1zthq85gksjsjthv8h6rec2qeqs2mu0emrm9xknkhgw7hfl7csrnq6wxm56)

> All tweaks are reversible by the server and so they can derive your nsec easily You could *multiply* by the tweak 't', instead of adding +t*G, and ...

Any integer x over GF(p) have a modular inverse x^-1 so that x * x^-1 = 1.

So the view private key v = H(S || “magic number”) * s (where s is your nsec, and S = sG = npub) can be reversed, by testing each possible S’, and if it holds, then it is the view key for S’:

S’ = H(S’ || “magic number)^-1 * v * G = H^-1 * H * s * G = sG = S

Then you can trivially reverse the key

s = H(S || “magic number”)^-1 * v

原始 JSON

{
  "kind": 1,
  "id": "2fb357d6e85df4c25cc73f2004130021d45217b41a0b7b5ec9c26491625020ee",
  "pubkey": "52b4a076bcbbbdc3a1aefa3735816cf74993b1b8db202b01c883c58be7fad8bd",
  "created_at": 1779745516,
  "tags": [
    [
      "e",
      "348eba4d0eabe5fe8c9f501fa4e1fb34be58658dafbc371b48b9dce0e3f9f2e0",
      "wss://relay.ditto.pub",
      "root",
      "06b7819d7f1c7f5472118266ed7bca8785dceae09e36ea3a4af665c6d1d8327c"
    ],
    [
      "e",
      "41749b81e09fcedacc82a75509aa079bea27bb99c7fb90ab9e87a0d21e72d927",
      "wss://relay.damus.io",
      "reply",
      "12ee03d11684a125dd87be879c28190415be3f3b1eca6b4ed743bd74ffd880e6"
    ],
    [
      "p",
      "06b7819d7f1c7f5472118266ed7bca8785dceae09e36ea3a4af665c6d1d8327c"
    ],
    [
      "p",
      "12ee03d11684a125dd87be879c28190415be3f3b1eca6b4ed743bd74ffd880e6"
    ]
  ],
  "content": "Any integer x over GF(p) have a modular inverse x^-1 so that x * x^-1 = 1.\n\nSo the view private key v = H(S || “magic number”) * s (where s is your nsec, and S = sG = npub) can be reversed, by testing each possible S’, and if it holds, then it is the view key for S’:\n\nS’ = H(S’ || “magic number)^-1 * v * G = H^-1 * H * s * G = sG = S\n\nThen you can trivially reverse the key\n\ns = H(S || “magic number”)^-1 * v",
  "sig": "30998128044036fbd47babe3e7e9838e4299cea620bc379f129961d00cc0a0ed8bb32097ae350b6d9e3156c86ab4ece8823599430f80d4c6c8bb901e4d84dde1"
}