Pieter Wuille [ARCHIVE] on Nostr: 📅 Original date posted:2018-06-23 📝 Original message:On Fri, Jun 15, 2018 at ...
📅 Original date posted:2018-06-23
📝 Original message:On Fri, Jun 15, 2018 at 8:54 AM, Russell O'Connor
<roconnor at blockstream.io> wrote:
>
>> For codes designed for length 341 (the first length enough to support
>> 512 bits of data):
>> * correct 1 error = 3 checksum characters
>> * correct 2 errors = 7 checksum characters
>> * correct 3 errors = 11 checksum characters
>> * correct 4 errors = 15 checksum characters
>> * correct 5 errors = 19 checksum characters
>> * ...
>> * correct 7 errors = 26 checksum characters (~ length * 1.25)
>> * correct 13 errors = 51 checksum characters (~ length * 1.5)
>> * correct 28 errors = 102 checksum characters (~ length * 2)
>>
>> So it really boils down to a trade-off between length of the code, and
>> recovery properties.
>
>
> At the risk of making the proposal more complex, I wonder if it might be
> better to support multiple checksum variants? The trade-off between code
> length and recovery seems to be largely determined by the user's medium of
> storage, which is likely to vary from person to person. I personally would
> probably be interested in the 51 or even 102 character checksums variants.
Here are some more numbers then. It's important to note that the
number of correctable errors includes errors inside the checksum
characters themselves. So if you want to aim for a certain percentage
of correctable characters, the numbers go up much more dramatically.
For codes restricted to 341 characters total (including the checksum
characters), and assuming 103 data characters (enough for 512 bits):
* With 26 checksum characters (adding 25%, 20% of overall string), 7
errors can be corrected (5% of overall string)
* With 62 checksum characters (adding 60%, 38% of overall string), 17
errors can be corrected (10% of overall string)
* With 116 checksum characters (adding 113%, 53% of overall string),
33 errors can be corrected (15% of overall string)
* With 195 checksum characters (adding 189%, 65% of overall string),
60 errors can be corrected (20% of overall string)
For codes restricted to 1023 characters total (including the checksum
characters), and assuming 103 data characters (enough for 512 bits):
* With 27 checksum characters (adding 26%, 21% of overall string), 7
errors can be corrected (5% of overall string)
* With 64 checksum characters (adding 62%, 38% of overall string), 17
errors can be corrected (10% of overall string)
* With 127 checksum characters (adding 123%, 57% of overall string),
36 errors can be corrected (15% of overall string)
* With 294 checksum characters (adding 285%, 74% of overall string),
80 errors can be corrected (20% of overall string)
* With 920 checksum characters (adding 893%, 90% of overall string),
255 errors can be corrected (25% of overall string)
I'll gladly construct reference source code for any of these.
Cheers,
--
Pieter
Published at
2023-06-07 18:12:48Event JSON
{
"id": "67c48c8f6330293423916f8e6a13cec3828947e1263328367c9b9f203d2dedbe",
"pubkey": "5cb21bf5d7f25a9d46879713cbd32433bbc10e40ef813a3c28fe7355f49854d6",
"created_at": 1686161568,
"kind": 1,
"tags": [
[
"e",
"8fb615948865860f25fd6b1793e512bab6bc5d35c31efb44e9c1188c8de338e8",
"",
"root"
],
[
"e",
"d9e24ffe397b784a419d68afea888e1e717ac39b69dc2a24619bc6ceab636060",
"",
"reply"
],
[
"p",
"6b8e77368804013d7126ba4b77c7963bcfeff909135791531097d7a0f03ca85d"
]
],
"content": "📅 Original date posted:2018-06-23\n📝 Original message:On Fri, Jun 15, 2018 at 8:54 AM, Russell O'Connor\n\u003croconnor at blockstream.io\u003e wrote:\n\u003e\n\u003e\u003e For codes designed for length 341 (the first length enough to support\n\u003e\u003e 512 bits of data):\n\u003e\u003e * correct 1 error = 3 checksum characters\n\u003e\u003e * correct 2 errors = 7 checksum characters\n\u003e\u003e * correct 3 errors = 11 checksum characters\n\u003e\u003e * correct 4 errors = 15 checksum characters\n\u003e\u003e * correct 5 errors = 19 checksum characters\n\u003e\u003e * ...\n\u003e\u003e * correct 7 errors = 26 checksum characters (~ length * 1.25)\n\u003e\u003e * correct 13 errors = 51 checksum characters (~ length * 1.5)\n\u003e\u003e * correct 28 errors = 102 checksum characters (~ length * 2)\n\u003e\u003e\n\u003e\u003e So it really boils down to a trade-off between length of the code, and\n\u003e\u003e recovery properties.\n\u003e\n\u003e\n\u003e At the risk of making the proposal more complex, I wonder if it might be\n\u003e better to support multiple checksum variants? The trade-off between code\n\u003e length and recovery seems to be largely determined by the user's medium of\n\u003e storage, which is likely to vary from person to person. I personally would\n\u003e probably be interested in the 51 or even 102 character checksums variants.\n\nHere are some more numbers then. It's important to note that the\nnumber of correctable errors includes errors inside the checksum\ncharacters themselves. So if you want to aim for a certain percentage\nof correctable characters, the numbers go up much more dramatically.\n\nFor codes restricted to 341 characters total (including the checksum\ncharacters), and assuming 103 data characters (enough for 512 bits):\n* With 26 checksum characters (adding 25%, 20% of overall string), 7\nerrors can be corrected (5% of overall string)\n* With 62 checksum characters (adding 60%, 38% of overall string), 17\nerrors can be corrected (10% of overall string)\n* With 116 checksum characters (adding 113%, 53% of overall string),\n33 errors can be corrected (15% of overall string)\n* With 195 checksum characters (adding 189%, 65% of overall string),\n60 errors can be corrected (20% of overall string)\n\nFor codes restricted to 1023 characters total (including the checksum\ncharacters), and assuming 103 data characters (enough for 512 bits):\n* With 27 checksum characters (adding 26%, 21% of overall string), 7\nerrors can be corrected (5% of overall string)\n* With 64 checksum characters (adding 62%, 38% of overall string), 17\nerrors can be corrected (10% of overall string)\n* With 127 checksum characters (adding 123%, 57% of overall string),\n36 errors can be corrected (15% of overall string)\n* With 294 checksum characters (adding 285%, 74% of overall string),\n80 errors can be corrected (20% of overall string)\n* With 920 checksum characters (adding 893%, 90% of overall string),\n255 errors can be corrected (25% of overall string)\n\nI'll gladly construct reference source code for any of these.\n\nCheers,\n\n-- \nPieter",
"sig": "b3b00b09e9ad32958bf9491c5ce962daeda9c6820283e85d0137c9dc2d1a78a40932ef73c8569d1a73874d30728d2f0824cb2c64764c783c01bd21ce0b4779a5"
}