Hey, I'd like to implement into my online Bitcoin wallet MultiSig technology but do not know where to look for information? I found on Github only general information, and the need for a precise details of how to implement Multisig.
Is there a person who will write me exactly what I have to do?
For help in implementation can offer a small amount of BTC. Thanks.
You could use a library to take care of that such as
https://pypi.python.org/pypi/bitcoin/1.1.26If you want to implement yourself, this seems to be the algorithm for generating multisignature addresses:
require_once(dirname(__FILE__).'/../application/libraries/BitcoinLib.php');
require_once(dirname(__FILE__).'/../application/libraries/BIP32.php');
echo "Lets start off by generating a wallet for each of the 'users'.\n";
echo "This will be stored on their machine.\n";
$wallet[0] = BIP32::master_key('b861e093a58718e145b9791af35fb111');
$wallet[1] = BIP32::master_key('b861e093a58718e145b9791af35fb222');
$wallet[2] = BIP32::master_key('b861e093a58718e145b9791af35fb333');
print_r($wallet);
echo "Now we will generate a m/0' extended key. These will yield a private key\n";
$user[0] = BIP32::build_key($wallet[0][0], "3'");
$user[1] = BIP32::build_key($wallet[1][0], "23'");
$user[2] = BIP32::build_key($wallet[2][0], "9'");
print_r($user);
// As the previous is a private key, we should convert to the corresponding
// public key: M/0'
echo "As the previous is a private key, we should convert it to the corresponding\n";
echo "public key: M/0' \n";
$pub[0] = BIP32::extended_private_to_public($user[0]);
$pub[1] = BIP32::extended_private_to_public($user[1]);
$pub[2] = BIP32::extended_private_to_public($user[2]);
print_r($pub);
echo "This is the key you will ask your users for. For repeated transactions\n";
echo "BIP32 allows you to deterministically generate public keys, meaning less\n";
echo "effort for everyone involved\n\n";
echo "Now we can generate many multisignature addresses from what we have here: \n";
for($i = 0; $i < 3; $i++) {
$bip32key[0] = BIP32::build_key($pub[0], "0/{$i}");
$bip32key[1] = BIP32::build_key($pub[1], "0/{$i}");
$bip32key[2] = BIP32::build_key($pub[2], "0/{$i}");
print_r($bip32key);
$pubkey[0] = BIP32::extract_public_key($bip32key[0]);
$pubkey[1] = BIP32::extract_public_key($bip32key[1]);
$pubkey[2] = BIP32::extract_public_key($bip32key[2]);
print_r($pubkey);
}