Sergio Lerner [ARCHIVE] on Nostr: 📅 Original date posted:2014-04-27 📝 Original message:El 27/04/2014 03:43 a.m., ...
📅 Original date posted:2014-04-27
📝 Original message:El 27/04/2014 03:43 a.m., Mark Friedenbach escribió:
> I don't think there's an official definition of "SPV proof." I wasn't
> trying to make a argument "from definition" (that would be fallacious!).
> Rather I suspected that we had different concepts in mind and wanted to
> check.
So to disambiguate I define the most general definition as a NPP
(non-interactive payment proof).
> Without invoking moon math or assumptions of honest peers
> and jamming-free networks, the only way to know a chain is valid is to
> witness the each and every block. SPV nodes on the other hand, simply
> trust that the most-work chain is a valid chain, based on economic
> arguments about the opportunity cost of mining invalid blocks.
I argue that you cannot talk about "the most-work chain" without
actually making an assumption about honest peers.
If you do not make the assumption, you compute the "economic arguments"
wrong.
> Now regarding your use case:
>
>> For the remaining peers, the client starts asking for parents blocks
>> until all parents agree (this is the last common parent).
> This linear scan of block headers is what I would prefer to avoid. By
> using back-links you make it have log(N) space usage.
First this is a method that uses NPPs, not SPV proofs.
Since the method chooses all peers that are synchronized (have the
latest current block) then going back means only skipping a potential
short fork (which I suppose has never been more than 3 blocks during
normal network conditions). You're looking for a common ancestor, not
the checkpoint.
So the linear scan is actually O(1).
The exact value can be approximated by the sum of the convergent
infinite geometrical sequence of forking probabilities, which it's about
1.03 without considering selfish-mining, and probably less than 2.03
considering it.
Published at
2023-06-07 15:20:26Event JSON
{
"id": "e27633c76ca1507e515552c3c5a8b60de2635a676fa765c4288d3ba46edba13b",
"pubkey": "60f7a1f85420f38fa26db24af48330bd1800ed3bef3168454263dcfcef62a8ce",
"created_at": 1686151226,
"kind": 1,
"tags": [
[
"e",
"52601dddf7ab03b9f5df6b1d060ac7041d101e77a4d0b631e8e74b466abf4568",
"",
"root"
],
[
"e",
"0124b43f2e0c6c5f6b1a789a336fc3f43e744181dab61667b5aba731c52e0e0d",
"",
"reply"
],
[
"p",
"1c61d995949cbfaf14f767784e166bde865c7b8783d7aa3bf0a1d014b70c0069"
]
],
"content": "📅 Original date posted:2014-04-27\n📝 Original message:El 27/04/2014 03:43 a.m., Mark Friedenbach escribió:\n\u003e I don't think there's an official definition of \"SPV proof.\" I wasn't\n\u003e trying to make a argument \"from definition\" (that would be fallacious!).\n\u003e Rather I suspected that we had different concepts in mind and wanted to\n\u003e check.\nSo to disambiguate I define the most general definition as a NPP\n(non-interactive payment proof).\n\u003e Without invoking moon math or assumptions of honest peers\n\u003e and jamming-free networks, the only way to know a chain is valid is to\n\u003e witness the each and every block. SPV nodes on the other hand, simply\n\u003e trust that the most-work chain is a valid chain, based on economic\n\u003e arguments about the opportunity cost of mining invalid blocks. \nI argue that you cannot talk about \"the most-work chain\" without\nactually making an assumption about honest peers.\nIf you do not make the assumption, you compute the \"economic arguments\"\nwrong.\n\u003e Now regarding your use case:\n\u003e\n\u003e\u003e For the remaining peers, the client starts asking for parents blocks \n\u003e\u003e until all parents agree (this is the last common parent).\n\u003e This linear scan of block headers is what I would prefer to avoid. By\n\u003e using back-links you make it have log(N) space usage.\nFirst this is a method that uses NPPs, not SPV proofs.\nSince the method chooses all peers that are synchronized (have the\nlatest current block) then going back means only skipping a potential\nshort fork (which I suppose has never been more than 3 blocks during\nnormal network conditions). You're looking for a common ancestor, not\nthe checkpoint.\nSo the linear scan is actually O(1).\nThe exact value can be approximated by the sum of the convergent\ninfinite geometrical sequence of forking probabilities, which it's about\n1.03 without considering selfish-mining, and probably less than 2.03\nconsidering it.",
"sig": "2a96b8c612ab0ff1dd63824ffcd3b95088258fb96b222574fe7cb1ccc530431d5d970602e01be23a636ffb942d2fb6766498b30fe8d76dcecef24982f9136462"
}