Krótki research pokazał inne nazwisko i zbieżne info na necie z tym co zrobił.
Link by się przydał. Natomiast zbieżność to trochę mało. Jest wiele osób mających "zbieżne" pomysły. Problem w tym, że są punkty, gdzie całość się kompletnie rozjeżdża. Na przykład taki Nick Szabo: niektórzy myślą, że jest Satoshim, ale prawda jest taka, że w jego wpisach jest takie skupienie się na architekturze, że on by nie zrobił czegoś takiego, jak Script w formie takiej, jaką znamy: on by ładował takie bajty, jak ma na przykład x86, ewentualnie stworzyłby coś a'la JVM. A wtedy nie byłoby takich opkodów, jak OP_CHECKSIG i całość wyglądałaby zupełnie inaczej. Zamiast typowego Scriptu, w praktyce miałbyś coś a'la DLL, ładowane "na surowo", trochę tak, jak pliki EXE.
Natomiast co do autora zagadki, to moim zdaniem żaden z wymienionych kandydatów nie spełnia podstawowych kryteriów. Na przykład: żaden z nich nie będzie w stanie wytłumaczyć, jaki jest "derivation path" w tej zagadce (bo mogą być różne, już w 2015 istniało co najmniej kilka podejść do tego problemu).
myśle że nawet gdybyś podał bardziej szczegółowe informacje i tak 99% czytających nie zrobi z tego zadnego uzytku bo tak jak ja maja za mało wiedzy na ten temat
Bardziej szczegółowe informacje już padły, inni ludzie już ujawnili wystarczająco wiele. To żadna tajemnica. Na przykład Garlo Nicon napisał coś takiego:
A few words about the puzzle. There is no pattern. It is just consecutive keys from a deterministic wallet (masked with leading 000...0001 to set difficulty). It is simply a crude measuring instrument, of the cracking strength of the community.
That changes a lot. Because using totally random key every time would be harder to crack than some deterministic wallet. Now, the big question is: which deterministic wallet was used? Because there are some of them, and they use different algorithms to derive keys.
To better illustrate, why cracking some deterministic wallet may be easier, consider this example: we start from the master private key, and then we use addition to derive keys. We use some hash that contains the master public key, and some nonce, representing the index of our child key. What does it mean in that case?
For example, a very simple, but unsafe method, is to use "childKey=masterKey+SHA-256(masterPubKey||index)", in practice something stronger is used in real implementations, but let's start from that. Then, by inspecting revealed private and public keys, it is possible to focus on that master key, instead of trying to crack child keys alone. Also note that all public keys from 160-256 range are revealed, we can assume that those keys also follow the pattern. And even if there are no coins, then still, we can use those public keys as an additional information in our algorithms.
Let's assume that our masterKey is equal to SHA-256("master"), just to have some deterministic-but-randomly-looking hash to work with:
SHA-256("master")=fc613b4dfd6736a7bd268c8a0e74ed0d1c04a959f59dd74ef2874983fd443fc9
masterPubKey=028B9C3A3CBE772731BAF46F35CF3F2A5E96F32725F7FC3F43165B5DB18EAEAA13
index=0x00000000
SHA-256(028B9C3A3CBE772731BAF46F35CF3F2A5E96F32725F7FC3F43165B5DB18EAEAA1300000000)=4723005bf4956bc7c135caa5c1bda0fd0cd6d37de2cfbfd66c0aed31ac32da3b
mask=(1<<0)=0000000000000000000000000000000000000000000000000000000000000001
firstKey=mask+(childKey%mask)
firstKey=0000000000000000000000000000000000000000000000000000000000000001
Then, we can go further and further, by trying to generate child keys, and checking how close we are to the keys from the puzzle. For example, the first 10 keys from this example, looks like that:
child0=4723005bf4956bc7c135caa5c1bda0fd0cd6d37de2cfbfd66c0aed31ac32da3b
mask0=0000000000000000000000000000000000000000000000000000000000000001
puzzle0=0000000000000000000000000000000000000000000000000000000000000001
child1=11077a18f7bcf2c2f572e07bcaa2e808157efc25dd80123000b1eb0612e4dd00
mask1=0000000000000000000000000000000000000000000000000000000000000002
puzzle1=0000000000000000000000000000000000000000000000000000000000000002
child2=70604aac4e4b6488567526d8c5ca59ef99d2e6a8cdb168be06b4413e3f96ebc4
mask2=0000000000000000000000000000000000000000000000000000000000000004
puzzle2=0000000000000000000000000000000000000000000000000000000000000004
child3=54195d0cb0683a71a007141d90a20bb4648c6aae075165cadb6742cb272e7f9a
mask3=0000000000000000000000000000000000000000000000000000000000000008
puzzle3=000000000000000000000000000000000000000000000000000000000000000a
child4=ec2c3fce8b21ffca469f5f5748141eb754fabe2640643c59b9a34512c3c33777
mask4=0000000000000000000000000000000000000000000000000000000000000010
puzzle4=0000000000000000000000000000000000000000000000000000000000000017
child5=48ef0d29d9416db21ba741074e816b6d8e6935a1de2c96d3dbf41012812c13d3
mask5=0000000000000000000000000000000000000000000000000000000000000020
puzzle5=0000000000000000000000000000000000000000000000000000000000000033
child6=563b062080afa9baf038b4fbb930660e8a255e99ef3c597368dc7df2a2adc0c6
mask6=0000000000000000000000000000000000000000000000000000000000000040
puzzle6=0000000000000000000000000000000000000000000000000000000000000046
child7=b9d4d7680493db643e3158e05899d10a8c878a385a297aac8e97cc5abcb7d4b9
mask7=0000000000000000000000000000000000000000000000000000000000000080
puzzle7=00000000000000000000000000000000000000000000000000000000000000b9
child8=bcd20822e9da2938100576f22c9ed21d9a70689cb691a61c567bd046f665fdfb
mask8=0000000000000000000000000000000000000000000000000000000000000100
puzzle8=00000000000000000000000000000000000000000000000000000000000001fb
child9=9b27d4fbbcc9f9359f2b82f9cc16b5d485a169f4ccdc93b07d837e40be7e8144
mask9=0000000000000000000000000000000000000000000000000000000000000200
puzzle9=0000000000000000000000000000000000000000000000000000000000000344
And then, we can compare our example with real keys:
real=0001, fake=0001
real=0003, fake=0002
real=0007, fake=0004
real=0008, fake=000a
real=0015, fake=0017
real=0031, fake=0033
real=004c, fake=0046
real=00e0, fake=00b9
real=01d3, fake=01fb
real=0202, fake=0344
And there is more: there is no need to brute force every combination here. If we assume some kind of algorithm, we can make optimizations just for that. So, if we assume that keys are added to the master key, and if mask is calculated with modulo and sum, then we can check selected keys, and create requirements for that master key.
For example, modulo addition, and modulo multiplication, has a nice property, that we can use any order. So, if we have "a+b", or "b+a", then "(a+b)%n" and "(b+a)%n" is also the same. We can also use those rules for multiplication. Then, we don't have to check every single master private key. We can simply assume that if keys are added, then the master key modulo N is in a given range. Then, we can create specific master keys, and skip many of them.
oczywiscie rozumiem czemu nie chcesz sie nimi podzielić, bo własnie chodzi o ten 1% który je wykorzysta, szczególnie jezeli sam jestes zaintersowany
Przecież podałem wszystko, co wiem o tej zagadce. W tej chwili nie mam jakiejś tajnej wiedzy, którą trzymam dla siebie. Jakiś czas temu nawet padły informacje na forum o atakach lattice i jakąś chwilę później padł 120-bitowy klucz, a potem 125-bitowy. Do tego wystarczą dwie sygnatury i najwyraźniej komuś się w końcu udało. Co ciekawe: w tym przypadku klucz prywatny dalej pozostaje nieznany, co oznacza, że atakujący był w stanie tam dotrzeć, ale reszta społeczności już nie.
Poza tym, jest nawet strona, która ładnie wszystko podsumowuje:
https://privatekeys.pw/puzzles/bitcoin-puzzle-txo jakich nagrodach jest mowa?
Jeśli znasz seed do całego portfela, no to około 1000 BTC.
Status: PARTIALLY SOLVED
Prize: 988.498 BTC (total), 31.998 BTC (won), 956.5 BTC (remaining)
Creator: unknown
Start Date: 2015-01-15
Natomiast w praktyce, to jakieś 6.6 BTC, jeśli złamiesz 66-bitowy klucz (i jeśli inni nie zwiną tego przez full-RBF, dlatego ta zagadka jest raczej skierowana do górników). Ewentualnie 13 BTC, jeśli złamiesz 130-bitowy klucz publiczny. Oczywiście, pełna pula jest większa, ale zakładam, że chętni nie złamią głównego klucza, tylko raczej ten jeden następny w kolejce.
czy twórca podzielił sie kiedyś takimi informacjami?
Nie musiał. Blockchain jest publiczny. Koń, jaki jest, każdy widzi. Wystarczy zacząć od tej transakcji i śledzić ruch na tych adresach:
https://mempool.space/tx/08389f34c98c606322740c0be6a7125d9860bb8d5cb182c02f98461e5fa6cd15