Groestlcoin Multisig released

Started by gruve_p, June 29, 2015, 09:52:23 PM

Previous topic - Next topic

gruve_p



Groestlcoin Multisig is a powerful account management and secure storage tool for Groestlcoin. It features decentralized offline key generation, offline signing, watch-only shared wallets, fast multidevice synchronization, full support for BIP32 (hierarchical deterministic wallets), and general m-of-n multisignature transactions. It has many applications, from secure cold storage for individuals to enterprise-wide accounts that can be deployed and monitored across entire organizations. A Multisig wallet for Windows, MacOS and Linux with the security of a full node.



If you need an interactive desktop application for transacting on the Groestlcoin network supporting m-of-n signature policies and multiuser/multidevice account management Groestlcoin multisig is the right choice for you!

Features
• Groestlcoin Multisig also lets the user configure the wallet to use a local full node such as Groestlcoin-qt and Groestlcoin-wpf.
• Create invoices for your enterprise.
• Accounts can be configured to allow any number of authorised and necessary signatures, dependent on the signing policy a company wishes to implement. For example, a company might create a signing policy with 5 authorised signatures of which a minimum of 3 would be required to broadcast a transaction. Once the required signatures have been obtained, Groestlcoin Multisig broadcasts the transaction to the Groestlcoin network.
• Has no standard public address. The wallet will always use a pay to script hash address (p2sh), even if it is only 1 of 1.
• Feels more like a encryption key management system than a wallet.
• Built atop three custom libraries, CoinCore, CoinQ, and CoinDB, which provide all core functionality for managing Groestlcoin data structures, connecting to peers and handling persistent storage.
• The wallet can support up to 8-of-8 addresses for signing transactions.
• An enterprise level wallet functioning similar to Armory.
• Easy to install - It includes default options for the most common configurations. It has been designed with a logically-organized and uncluttered graphical interface that clearly presents the most important user functions and relevant user data.
• Offers both secure enterprise-level solutions and straightforward single-user account management. From the start it was designed to support shared multisignature account policies using hierarchical deterministic keychains. It supports the best securiry practices in the industry and is rated amongst the most secure wallets by our team. Generate private keychains offline, safely share public keychains, and create joint accounts with m-of-n signature policies. Export private keychains or print them for secure backup.
• Built over a Service-Oriented Architecture (SOA) platform, and fully supports enterprise-wide policies, as well as keychain and account management. It can easily handle a virtually unlimited number of keys, and new accounts can quickly and easily be created and synchronized from many devices.
• Very fast - It is natively compiled C++. It also features simplified payment verification (SPV), eliminating the need to download the full blockchain to achieve network synchronization. For those who desire the security of their own full validation node, can connect to any node that speaks the Groestlcoin protocol.
• No Lock-In - You can export your private keys.
• Quick and easy to install across all major desktop operating systems (Windows, Mac, Linux).
• Secure by design - all private keys are kept encrypted on your local machine (or on a USB stick).
• Import and export your private keys or seeds.
• Encrypted wallet - the file that contains your groestlcoins is protected with a password. You are protected from thieves.
• Deterministic key generation - If you lose your wallet, you can recover it from its seed. You are protected from your own mistakes.
• No single point of failure - The code is open source and can run with your own local full node.
• Transactions are signed locally - Your private keys are not shared with the server. You do not have to trust the server with your money.
• Free software - Anyone can audit the code.
• Proof Checking - Groestlcoin Multisig verifies all the transactions in your history using full node.
• Cold Storage - Keep your private keys offline, and go online with a watching-only wallet. Sign transactions from a computer that is always offline. Broadcast them from a machine that does not have your keys.
• Multisign - Split the permission to spend your coins between several wallets using parallel BIP32 derivations and P2SH addresses. Compact serialization format for unsigned or partially signed transactions, that includes the BIP32 master public key and derivation needed to sign inputs.

Groestlcoin Multisig Concepts
• Vaults - Vaults are files with extension .vault containing accounts, keychains, and transaction history. They can be opened directly in Groestlcoin Multisig and constitute the basic document type that Groestlcoin Multisig can create and edit.
• Keychains - Keychains are collections of private and/or public keys generated deterministically from a master seed using BIP32. They can be imported and exported to and from Groestlcoin Multisig as files with extensions .priv and .pub respectively. Every keychain can be given an arbitrary name and has a hash that is uniquely determined by the master seed and remains fixed.
• Accounts - Accounts are logically grouped collections of deposit addresses generated deterministically from a set of keychains and an m-of-n policy. The account balance consists of all the transaction outputs spendable using the aforementioned keychains subject to the m-of-n policy. Each distinct account contains a separate set of addresses that always remain part of that account. Addresses are generated by using keychain sequences/trees in parallel. Public keys are sorted lexicographically in the redeemscript. Accounts also have a starting timestamp that indicates how far back in the blockchain we should look when scanning for transactions. Shared accounts, a.k.a. watch-only accounts, are accounts that have been stripped of all private keys. They can only be used to monitor transactions, not to spend.

How To use Groestlcoin Multisig:
1. Create a new vault file.
From the File menu, select "New Vault..." – or alternately, click on the toolbar button. You will be prompted to pick a name for your vault file. Create a new folder for your vault files, make sure to use the file extension ".vault" and then save.
2. Create an account by either using the wizard or manually.

USING THE WIZARD (easy)
From the Accounts menu, select "Account Wizard..." – or alternately, click on the button in the toolbar. You will be asked for an account name and an account policy. If you just want a simple account, leave the policy as 1 of 1.
NOTE: Groestlcoin Multisig always uses pay-to-script-hash addresses, which begin with the character 3 in Groestlcoin, even for 1 of 1 accounts.
For multisignature accounts: on the left select the minimum number of signatures required to sign transactions from the account. On the right select the total number of keychains to use for the account. An account will automatically be created for you along with a new set of keychains.

MANUALLY (advanced)
From the Keychains menu, select "New Keychain..." – or alternately, click on the toobar button. You will be prompted to name the keychain. Pick whatever name you want.
Repeat step 2 to create multiple keychains if desired.
Right-click on any keychain in the Keychains tab and select "Export Private Keychain..." to make backups of the keychain. Select "Export Public Keychain..." to export a file you can share with other people or devices that you wish to make part of the account.Using the same menu, select "Import keychain..." to import public or private keychains from file.
Click "New Account" button on toolbar. Check the keychains you wish to use to sign for the account, then select the minimum signatures required. The creation time defaults to your system clock – it is used to determine how far back in the blockchain to scan. Make sure the creation time precedes the first transaction made to the account.

You'll see the new account appear in the Accounts tab. Right-click the account to get a popup menu. Select "Export Account..." to backup the account to file – this backup will include any private keys you have. To export the public watch-only account, select "Export Shared Account..." instead. You'll be able to import this file on another device where you can view all activity with signing functionality completely disabled.

3. Connect to network.
By default, Groestlcoin Multisig will attempt to connect to our Groestlcoin node running on groestlcoin.org. If you don't want to run a full node beside this program, leave this setting alone. If you would prefer to connect to a local Groestlcoin node (i.e. a local running instance of Groestlcoin-Qt or Groestcloin-wpf), you can change the IP address to localhost and port under Network->Settings...(File->Preferences ... on Mac).
NOTE: Groestlcoin Multisig only connects via the peer-to-peer protocol and does not require any special RPC access to other nodes.
At the bottom right of the main window, you should see two numbers followed by an icon. The two numbers tell you the blockchain synchronization state. The top number is how many blocks are stored in your vault file, the bottom number is how many blocks were in the blockchain the last time you synchronized. If you have not connected to the network before, it should read 0/0 and the icon should display a red X.
Make sure the Groestlcoin node to which you're connecting (i.e. Groestlcoin-Qt) is synchronized, then select "Connect to <host>" from the Network menu – or click the "Connect" button from the toolbar. If the connection is successful, you should see the bottom number rise, then you should see the top number rise until they are the same. While this happens, the icon will contain a rotating arrow in an orange circle. Once the vault is synched, the icon will turn green.

4. Fund the account
Select the Accounts tab. In it you should see the account you just created. Make sure the account is selected. Click on the "Receive" toolbar button. You will be asked to give the payment a label and specify an amount – these are optional. Click the "New Invoice" button. At the bottom of the dialog you will see Script Details. On the right you'll get a QR code. Copy the "Address" from there and send a payment to it from another wallet. If successful, you should see the account balance credited the deposited amount.

5. View your transaction
Make sure the account is selected in the Accounts tab. Then select the Transactions tab. In it you should see the deposit you just made. Right-click on the transaction and select "View at blockchain.info" to open up a browser and view the transaction details.

6. Unlock keychains
In the Keychains tab, you must right-click the keychains you want to use to sign transactions and click "Unlock keychain..." from pop-up menu. Once unlocked, the keychains can be used to sign repeatedly within a session. When the program is closed and reopened, the keychains will again need to be unlocked. This is a security feature.
You will have the option to set a keychain passphrase. This will encrypt the keychain – the decrypted keychain will only be kept in memory while the keychain is unlocked. When exporting the keychain or account to file, only the encrypted keychain will be saved.
VERY IMPORTANT: IF YOU FORGET YOUR PASSPHRASE, TOO BAD! You might want to write down the passphrase and save it in a different location from where you store the encrypted keychain backups.

7. Send your first payment
Select the Accounts tab. Make sure the account from which you want to send is selected. Click the "Send" toolbar button. You will be asked to specify a fee, an address, an amount, and a label (For). A fee is generally required by the Groestlcoin network for transactions involving outputs smaller than 0.02 GRS, so if you're sending very small amounts it is recommended to use a fee of at least 0.0005 GRS. A higher fee tends to result in faster confirmation times, but exact confirmation time cannot be predicted. Once you've entered the transaction information, click "Save Unsigned". The unsigned transaction will appear at the top of the Transactions tab. Right-click it and select "Signatures..." to open the signature dialog. At the top you'll see the unsigned transaction hash as well as the number of signatures that are still required. Right-click a keychain and select "Add signature..." to sign for that keychain. NOTE: You can only sign for keychains for which you have the private master key. From the same popup menu, you can select "Export Transaction To File..." and "Import Transaction From File...". Use these commands to share unsigned or partially signed transactions as files with other people or other devices. Any added signatures get merged into the transaction when you import it. Once the minimum signatures required by your m-of-n policy have been added you'll have the option to send the transaction to the network by right-clicking it and selecting "Send Transaction".

It is appreciated if feedback of the following is provided:
1. Can you receive coins? (small amounts to avoid losing them)
2. Can you send coins?
3. Can You create invoices?
4. Does the watch-only function works?
5. Can you use the wallet without running a local node?
6. Can you use the wallet running with a local node?

There is no warranty and no party shall be made liable to you for damages. If you lose coins due to this app, no compensation will be given. Use this app solely at your own risk.

The application may have unfound bugs and problems. To leave feedback: 
1. PM me
2. Email: [email protected]
3. Post reports of errors in this topic.

Important:
Groestlcoin Multisig uses a filename .vault instead of wallet.dat (like in Groestlcoin Core). Back up your files by making a copy of it and moving it to a secure location.

You can download it using the links below and be up and running with Groestlcoin in 5 minutes.
Compile the Linux wallet: https://github.com/GroestlCoin/Groestlcoin-Multisig/blob/master/docs/linux-build-environment
Download the OSX DMG Wallet here: https://github.com/GroestlCoin/Groestlcoin-Multisig/releases/download/0.9.4/Groestlcoin-Multisig.dmg
Download the Windows Wallet (64 bit) here: https://github.com/GroestlCoin/Groestlcoin-Multisig/releases/download/0.9.4/groestlcoin-multisig_x64.msi
Download the Windows Wallet (32 bit) here: https://github.com/GroestlCoin/Groestlcoin-Multisig/releases/download/0.9.4/groestlcoin-multisig_x86.msi

Source code:
https://github.com/GroestlCoin/Groestlcoin-Multisig - The Groestlcoin Multisig Wallet Source code