Bitcoin Forum
May 24, 2024, 12:11:51 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 ... 53 »
1  Bitcoin / Project Development / Re: The FinderOuter, a bitcoin recovery tool (v0.19.1 2024-01-24) on: January 24, 2024, 06:59:58 AM
Version 0.19.1 (2024-01-24)
https://github.com/Coding-Enthusiast/FinderOuter/releases/tag/v0.19.1.0

  • Fix a bug in VMs where FinderOuter crashed if user entered an invalid input
  • Move to .net 8 and compile binding (UI)
  • Some cleanup and UI fixes

This minor release is fixing a critical bug but also moves to the new .net 8 which required changing UI bindings to compiled binding to prevent UI code from being trimmed. This also further decreases the binary sizes (~8%).
The backend (Bitcoin.Net) is also updated to 0.26.0 with improvements and bug fixes in ECC implementation which should also bring some small optimization.
2  Bitcoin / Project Development / Re: Denovo (v 0.7.0) and Bitcoin.Net (v 0.26.0) 2024-01-15 on: January 16, 2024, 02:05:58 PM
Bitcoin.Net version 0.26.0
  • Lots of code improvements, bug fixes, additional debug verification, code cleanup, optimization and tests in ECC
  • Some more methods are marked obsolete that will be removed in future releases
  • RFC-6979 is changed to allow reusing to generate consecutive nonce generation (upto 40% faster)
3  Bitcoin / Development & Technical Discussion / Re: Introducing a version field to BIP39 Mnemonic Phrases. on: January 12, 2024, 05:48:56 AM
I think it is best to address all shortcomings of BIP39 when proposing a new algorithm. Version only addresses one of them. I tried to address some more in my rough idea a couple of years ago: https://bitcointalk.org/index.php?topic=5330229.0
4  Bitcoin / Development & Technical Discussion / [libsecp256k1] secp256k1_fe_set_b32_mod doesn't actually reduce anything on: November 26, 2023, 01:36:41 PM
I'm going through libsecp256k1 and noticed a new change which is strange.

secp256k1_fe_set_b32_mod method name and comment suggest that it reduces the value mod p and the result is supposed to be r ≡ a (mod p)
https://github.com/bitcoin-core/secp256k1/blob/c1b4966410a81162bf9404ec84e69a85e1e23469/src/field.h#L192

But looking at the implementations they don't actually perform any reduction. It's just a simple conversion from byte[] to uint[] in radix 26 or 52.
For example:
https://github.com/bitcoin-core/secp256k1/blob/c1b4966410a81162bf9404ec84e69a85e1e23469/src/field_10x26_impl.h#L293

How the method is called(?):
https://github.com/bitcoin-core/secp256k1/blob/c1b4966410a81162bf9404ec84e69a85e1e23469/src/field_impl.h#L258

After this commit the library seems to still use the old method (secp256k1_fe_set_b32_limit method so I don't think anything is changed there) except here
https://github.com/bitcoin-core/secp256k1/commit/5b32602295ff7ad9e1973f96b8ee8344b82f4af0#diff-6f71b0372be086d45b4f2740508c03a21835d87008840032fbb767f419fd988a
And this "assumption" that the secp256k1_fe_set_b32_mod reduces the result is new.

Am I missing something or is this a mistake?

Edit: fixed in https://github.com/bitcoin-core/secp256k1/commit/77af1da9f631fa622fb5b5895fd27be431432368
5  Bitcoin / Development & Technical Discussion / Re: opcodeexplained.com - A website which explain Bitcoin Opcodes on: November 25, 2023, 12:16:23 PM
Quote
It is a synonym for OP_RETURN.
This part is wrong. A better approximation is OP_RESERVED. If you have OP_RETURN, then the Script is invalid immediately. But in case of OP_RESERVED, it can be wrapped in some unexecuted OP_IF, and it will still remain valid.
This is one of those little details in Bitcoin that not that many people know.
The only OP codes that would invalidate a script by just existing are these (like OP_CAT). However, OP codes like OP_RETURN need to be executed to invalidate a script, otherwise they can exist in an unexecuted branch for example and the script would still be valid.

Example:
https://blockstream.info/testnet/tx/95b3bccdd66d139f7f87a6c85bb704cb7278bfb8f8ff1859e3c9f99223c3bcc4?expand
The redeem script here is:
Code:
OP_IF
  <push public key> OP_CheckSig
OP_ELSE
  OP_RETURN
OP_ENDIF
The output was spent using the IF branch
Code:
<push signature>
OP_TRUE
Since the OP_RETURN is never reached or executed, it does no invalidate the script or the transaction. As you can see the transaction I created was included in testnet block #2540377
6  Bitcoin / Project Development / Re: The FinderOuter, a bitcoin recovery tool (v0.18.0 2023-06-23) on: November 15, 2023, 06:32:50 AM
Version 0.19.0 (2023-11-15)
https://github.com/Coding-Enthusiast/FinderOuter/releases/tag/v0.19.0.0

  • Add settings to define the number of threads used in parallelism + KB entry
  • Old Electrum mnemonics are still not supported but they will be rejected with a clear message
  • Various bug fixes, code improvements, additional tests and some UI fixes

Two major changes in this release are migration to the new Avalonia UI version 11.0 and .Net 6 with trimming option that reduces the binary size by roughly 40%. Even though most UI bugs were fixed before releasing v0.19 there may still be some uncaught ones, please report them on GitHub (or here) if you encounter any.
7  Bitcoin / Development & Technical Discussion / Re: 12 Word Mnemonic - Brute Force the Order? on: September 09, 2023, 10:05:31 AM
Nice catch, reference benchmark shows i7-8750 shows it has 33K permutation/sec[3]. So it's possible OP used sub optimal configuration.
Thanks for the link, that's very useful.
For the sake of comparison the speed I reported above is using i3-6100 CPU with 4 threads.

How did you get 1.1k permutations a second? Have you divided by an extra 60 by mistake?
That's embarrassing I must need some coffee too...
8  Bitcoin / Development & Technical Discussion / Re: 12 Word Mnemonic - Brute Force the Order? on: September 09, 2023, 09:21:34 AM
Isn't 115 minutes (at best 1.1k permutation/sec) too slow?
Although FinderOuter doesn't have this feature but I get 22k perm/sec for BIP39 and 1.2m perm/sec for Electrum mnemonic on CPU when recovering 12-word mnemonics with missing words.
9  Bitcoin / Project Development / Re: The FinderOuter, a bitcoin recovery tool (v0.18.0 2023-06-23) on: July 12, 2023, 05:01:08 AM
Hi dev, a suggestion : could you make it so the user could select how many threads to be used? Since it uses everything a CPU can offer, usually it just hangs if the load is too much, unless you go to task manager on windows and limit CPU usage, but having an option to set one time and the ability to save the user settings would be great.
https://github.com/Coding-Enthusiast/FinderOuter/commit/09466f3e9fe2b57fa158c1f61add98e15cb6973d
This was added under an expander on the side with the name "Settings" that will allow you to set the number of threads the parallel loops use based on the number of cores .net can detect.
The max value here may not be accurate in case the system has more than one processor group or has CPU utilization limit. I'll probably add an override option to go beyond that limit as a more advanced feature since going beyond the thread limit could potentially slow down the process.
This also needs some guides on how it should be used etc. in our KnowledgeBase page which I'll add before v0.19.0 is released.


PS. If you build at the given commit above, know that there is currently a bug in our UI where the slider appears to be at the minimum value (1) when the application starts but the actual value is set correctly to the maximum number of threads. This is fixed in the new AvaloniaUI 11.0 which we need to upgrade to but it takes time due to the breaking changes in the UI framework.
10  Bitcoin / Bitcoin Technical Support / Re: Private key of BTC wallet on: July 06, 2023, 06:29:10 AM
The issue is, I don't know any private key bruteforcing tool that does that so you might have to search for one yourself of find someone to code it for you.
The feature to limit search space when recovering Base58 inputs was added to FinderOuter in version 0.15.0.
That's great news for OP.
However, I can't seem to find an option limit the search space of each specific position; the feature seem to affect all of the MissingChar symbol.
Sorry for the late reply.
When you want to modify the search space you have to set the whole space for each missing position but it is easy to set the other positions to "All" by only pressing a button and only limit what you want by manually adding characters or removing the extra ones.

For example lets say we want to recover these two missing characters in "L53fCHmQhbNp1B4JipfBtfeHZH7cAibzG9oK*9Xf*FzxHgAkz6JK" and you know the first one looks like "1" but you have no idea what the second one is. After clicking "Start" (to process the key and initiate the arrays) you enter "1" in the textbox and press "Similar letter" button so the list can be populated with "1" and "L", then you can continue modifying this list by adding or removing characters if you don't like the suggestions.
Then you move to the next position by pressing the ">" button and repeat the same thing. Here you simply click the "Add all" button to populate the list with all 58 characters.
When you are done setting the search space you finally click Find.

11  Bitcoin / Project Development / Re: The FinderOuter, a bitcoin recovery tool (v0.18.0 2023-06-23) on: June 29, 2023, 03:50:11 PM
It becomes a really huge machine! Do you have any plans for the next release(s)?

Saving progress and restoring partial search?
Using a range in derivation path?

I was briefly comparing what you have with features of 'lostword' and looks like you have (almost) all Smiley
For now until version 1.0 I'm focusing on increasing my test coverage and finding bugs while improving the printed reports and messages.
After that I'll start investigating how to add GPU support.
Anything else I'll try to squeeze in if I have any idea of how to implement them efficiently without needing any significant code change.
12  Bitcoin / Bitcoin Technical Support / Re: Private key of BTC wallet on: June 29, 2023, 02:58:57 PM
The issue is, I don't know any private key bruteforcing tool that does that so you might have to search for one yourself of find someone to code it for you.
The feature to limit search space when recovering Base58 inputs was added to FinderOuter in version 0.15.0.
13  Bitcoin / Project Development / Re: The FinderOuter, a bitcoin recovery tool (v0.18.0 2023-06-23) on: June 24, 2023, 04:08:57 PM
Version 0.18.0 (2023-06-23)
https://github.com/Coding-Enthusiast/FinderOuter/releases/tag/v0.18.0.0

  • Improve the returned message (errors and reports)
  • New feature: time estimation. Addresses #30 [1]
  • New feature: Add an AutoCompleteBox to mnemonic recovery option to suggest words based on letters the user entered [2]
  • Various bug fixes, code improvements and some additional tests

[1] This will show the number of keys that were checked so far and an estimated speed in number of keys(permutations) per second and the estimated time remaining until the entire search space is checked. Note that in most cases the actual key could be found before the entire space is searched.
See issue #30 for information on its limits.


[2] When modifying the mnemonic search-space by entering possible words, user can switch to the Auto Complete mode so that a suggestion list opens up based on the letters that were entered so far. This should also make it easier to see all words that contain certain letters (like the image below with words containing "xi").
Mode can change any time using the switch button.

14  Bitcoin / Development & Technical Discussion / Re: C# or C/C++ code to convert Bitcoin brainwallet to public address on: June 09, 2023, 04:58:43 AM
Check project "FinderOuter" (https://github.com/Coding-Enthusiast/FinderOuter)
I am not sure if it has exact functionality you mentioned, but I am 99% sure you will find there all the blocks you need (sha256, pubkey generation, base58 conversion etc).
Almost all the code used in FinderOuter is heavily specialized to perform special tasks required for recovery. Considering how it doesn't have a recovery option for brainwallets, it is not useful for OP. (I haven't seen any demand for brainwallet recovery option to add it to FinderOuter)

If you want general implementation of different algorithms like SHA256, ECC, etc. my library Bitcoin.Net is more useful.
Although I should add that if the goal is to "recover" a brainwallet, any "general purpose library" is very inefficient.
15  Bitcoin / Project Development / Re: The FinderOuter, a bitcoin recovery tool (v0.17.0 2023-02-27) on: March 08, 2023, 05:54:46 AM
Also having a windows compiled version would be greatly appreciated.
Under releases on GitHub there is always a zip file containing the binaries for Windows.
https://github.com/Coding-Enthusiast/FinderOuter/releases/download/v0.17.0.0/FinderOuter-0.17.0.0-Win64SCD.zip

As for your other suggestions, manual key generation doesn't really fit into a "recovery tool" so it can't be added to FinderOuter.
16  Bitcoin / Development & Technical Discussion / Re: What's the reason for not being strict about Taproot witness program size? on: March 08, 2023, 05:50:07 AM
These days we are witnessing my concerns from 2 years ago materialize in form of a mess called Ordinals. It is a good example of the downsides of leaving consensus rules this loose for extensibility purposes.
17  Bitcoin / Project Development / Re: The FinderOuter, a bitcoin recovery tool (v0.17.0 2023-02-27) on: March 01, 2023, 11:39:56 AM
Could you give me a price and time estimate please?
I'd say roughly 1-2 hundred millions of addresses can be encoded sequentially this way per second per core. Although since we are talking about 10160 addresses, the size is going to be massive and won't fit in any memory or storage space.
18  Bitcoin / Project Development / Re: The FinderOuter, a bitcoin recovery tool (v0.16.0 2022-09-19) on: February 28, 2023, 07:32:02 AM
We are heading for the first stable version (v 1.0) by fixing as many little bugs as possible and improving the code in general. Since that may take a while I'll try to publish more beta versions that act as pre-releases to 1.0 from now on. As always follow the roadmap to see updates on when new features like GPU support could be added.
Here is version 0.17.0 with lots of little improvements:

Version 0.17.0 (2023-02-27)
https://github.com/Coding-Enthusiast/FinderOuter/releases/tag/v0.17.0.0

  • Removed message signature verification
  • Solve issue #4 (not being able to enter words in CJK languages)
  • Completely rely on new Bitcoin.Net release for ECC (has some bug fixes and slight optimization)
  • Improve printed messages (errors and reports)
  • Improved how Base16, Base58 and MiniKey options handle configuring search-space which solves some bugs and returns better messages
  • Return a comprehensive message when an input contains invalid characters (the invalid char and index)
  • Small UI improvements
  • Various small bug fixes, code improvements, code cleanup and lots of new tests

PS. FinderOuter is 3 years old Smiley
19  Bitcoin / Project Development / Re: Denovo (v 0.7.0) and Bitcoin.Net (v 0.22.0) 2022-12-04 on: December 22, 2022, 06:02:35 AM
Version 0.15.0 released.
  • All hash algorithms and KDFs are now accepting Span
  • Blocks received from each node is now stored in that node's NodeStatus and processed all at once
  • BufferManager class is now obsolete (will be removed in 0.16)
  • Fixed a bug in FullClient where incorrect in queue peer count could cause a big connection backlog
  • TransactionVerifier will now return better error messages
  • New IOperation added for OP_SUCCESS
  • Added script verification rules for tapscript leaf version 0xc0
  • Multiple important bug fixes, some small code improvements and some tests
Version 0.16.0 released.
  • BufferManager class is removed
  • (I)Witness is changed to use byte[]s instead of PushDataOp (ie. to be stack items)
  • Taproot activation height for TestNet and RegTest were added
  • Add new IOperations for CheckSig ops in Taproot scripts
  • TransactionVerifier is improved to be able to verify all Taproot transactions
  • Various bug fixes, improvements and some additional tests
Version 0.17.0 released.
  • Added MinimalClient
  • All clients are now in a new namespace
  • Add a new method to PublicKey  and Address classes to handle Taproot keys
  • Small improvements
Denovo version 0.2.0 released.
Since the number of available tools in Denovo has grown and the project has reached some level of stability, I decided to start publishing binaries and increment the Denovo version. The binaries are available for Windows, Linux and MacOS x64.
Here are the available options:
  • Main window is used to test the full client where it downloads the whole blockchain. This part may have bugs.
  • TestNet miner to mine TestNet blocks
  • ECIES encryption and decryption of messages with private/public keys
  • Transaction verifier to verify any bitcoin transaction as long as UTXOs are manually provided
  • WIF helper to convert a WIF to a set of human readable words using BIP39 scheme
  • Push tx to broadcast bitcoin transactions to other nodes on MainNet and TestNet
(From now on Bitcoin.Net and Denovo are published together)
Bitcoin.Net version 0.18.0
  • New decryption mode added to BIP0038 for EC mult mode
  • New size related methods and properties added to (I)Block and (I)Transaction
  • [BreakingChange] (I)Blockchain is renamed to (I)Chain
  • [BreakingChange] All error messages (such as those returned from Try*() methods) return an enum instead of string. The enum has an extension method called Convert() that can be used to easily convert it to a friendly string.
  • Improved tests and coverage, improved XML doc, small code optimization and added some new benchmarks
Denovo version 0.3.0
  • Added an About window and made small UI changes
Bitcoin.Net version 0.19.0
  • Some breaking changes in (I)Chain, (I)BlockVerifier, (I)NodeStatus and (I)FullClientSettings
  • Fixed many issues during initial block sync
  • Various tests, bug fixes and code improvements
Denovo version 0.4.0
  • The manual connect to IP option is removed (now only the FullClient option remains) in UI.
Bitcoin.Net version 0.20.0
  • Add BIP-30
  • Introduce Digest256 an immutable struct to store 256-bit hashes
  • Breaking change: BlockHeader is now an immutable struct
  • Digest256 is used anywhere there is a hash
Denovo version 0.5.0
  • Fix UTXO database
Bitcoin.Net version 0.21.0
  • Introduce a new LightDatabase to be used in TransactionVerifier and as mock DB
  • Fix some issues with database, hash collision and handling duplicate transactions
  • Start adding a new and optimized implementation of ECC with the help of libsecp256k1 project
  • Some new tests and small code improvements
Denovo version 0.6.0
  • Fix issues with DB and use LightDatabase as the mock DB for now
Bitcoin.Net version 0.22.0
  • Improve ECC implementation
  • Add a new signature class and a DSA class
  • Various tests and small bug fixes and code improvements
Denovo version 0.7.0
  • Add the option to manually modify the consensus rules in the Verify Transaction tool
Bitcoin.Net version 0.23.0
  • Replace old ECC with the new implementation
  • Disabled BIP-137
  • Small code improvement and bug fixes

No Denovo released this time to keep the binaries on the old Bitcoin.Net version. You can build master branch since the code is updated.
20  Bitcoin / Project Development / Re: The FinderOuter, a bitcoin recovery tool (v0.16.0 2022-09-19) on: December 22, 2022, 05:59:35 AM
Hi there, please let me know the commands required to install on Ubuntu/Debian OS after unzip, from Finderouter-master folder. Thanks
Everything is already explained in ReadMe file. If you have the source code and want to compile Step 2 or Step 3 if you have the complied binaries and want to run.
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 ... 53 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!