4
1
I have been asked to recover some tether that have been sent to the wrong address... Sitting on the blockchain in a multisig copay account.
I have written small php command line tools to reproduce the case and learn more about how Bitcoin works. I am a software developer working mostly with NEM where the blockchain is very different. I have learned a lot about multisig on Bitcoin, OP_RETURNs used in omni (usdt being a smartproperty on the omni layer), and many more awesome things about hierarchical key generation, key derivation functions, and many more subjects.
Script are written in PHP with laravel/zero and can be found here:
But I struggle getting back those tether to another address. Of course, I own the 3 cosigners configured with copay, but I am too much of a noob to get those tether back. Fact is, the NEM blockchain is very different when it comes to multisig and custom assets. So I went through the learning process for HD keys and XPRV and XPUBs. Which I also built a command for. A command that, provided with the right derivation path and xpubs or mnemonics, will generate the same cosigners xpubs as copay displays in the multisig wallet information page.
Here is a link to the BitcoinTalk thread where you will find a screenshot and more details about the transaction i am trying to create. Maybe someone here might help as this requires deep understanding of Bitcoin Multisig, HD Key Derivations, OP_RETURN and Colored Coins.
The challenge is quite amazing and let me learn tons of things, but watching serialized data I think I am getting crazy, I can't get it done, please hAlp ! x:)
PS: <3 Bitcoin
Wow, this looks confusing. Is there a TL;DR summary or some way you could answer this in layperson's terms? Congrats on the achievement! – Scott – 2017-12-09T15:29:11.017
1 – Greg eVias – 2017-12-11T00:26:32.767
Hello! Yes it is quite some input!
You can have a look here: https://github.com/evias/omni-recovery-tool which is the repository where I kind of summarized and implemented the steps for recovery :) The readme file in there contains quite some details and can be used to reproduce or understand!