github VerusCoin/VerusCoin v0.5.9-24

latest releases: v1.2.2-5, v1.2.2-4, v1.2.2-3...
pre-release4 years ago

This release is intended for use in the VRSCTEST network. Mainnet use is still being tested.

Notable Changes

  • Add blockchain rule to consider any identities without primary addresses or nonzero minimum number of signatures as invalid.

Verus ID - A Better Blockchain Identity Technology

If you’ve been around crypto for even a little while, you’ll start to hear things like “not your keys, not your coins”, “lose your keys, lose your coins”. If you lose your keys, no one will ever be able to recover your money.

In fact, trading off decentralized, censorship resistant public systems for this risk to your cryptocurrency assets is such a fundamental issue in blockchain systems today that it is considered an acceptable price for having the benefit of full control over your own funds and blockchain assets.

Verus ID provides an elegant solution to these previously unsolved, fundamental problems, and also provides quantum-ready friendly identity names and blockchain funds addresses as self-sovereign, revocable, recoverable identities that provide the following advantages over today’s blockchain systems:

  1. Identity and currency address are one and the same. Your friendly name can be used as both a reference to who you are and an on-chain destination for any funds transfer.
  2. Each identity must have a set of addresses (1 or more) and a minimum number of signatures required from those addresses to spend or sign on behalf of an identity. Each identity also refers to two additional identities that have authority over:
    • Primary - this is the self identity and may modify any part of the identity except its name, its parent, which is derived from the blockchain on which it is defined, and unless it is also one of the two other authorities, it may not modify any data under their control, including the identity of the other authorities once specified.
    • Revocation - this identity may revoke the primary identity, which will also revoke access to all funds and transactions under its control, but it may not spend any funds or sign on behalf of the identity.
    • Recovery - this authority may redefine/recover a revoked identity, but it may not change the revocation authority, nor may it modify an unrevoked identity at all.
  3. Identities are transferable by defining them with primary addresses with private keys, which are under another party’s control. When identities are transferred, the revocation and recovery authorities may or may not be modified as well, as long as the party updating the ID has the authority to do so.
  4. If an identity is transferred from one party to another, all funds in transactions that are under the control of that identity will also transfer to the party to which control is being transferred. In the native wallet, these changes are automatically reflected in the wallet balance and visibility of the balance of an identity using “z_getbalance identity@”.
  5. If later, a new address type or signature algorithm, such as one that is quantum secure s added to the Verus blockchain, all transactions sent to an identity that is updated to be under the control of the new address type will be subject to its spend conditions as well. That means that if you have 1000 transactions sent to your identity name/address, an upgrade to a quantum secure address, when they are available, will retroactively secure all 1000 transactions under the control of that address.

Making a new identity

Arguably, the hardest part of the new Verus identity technology is just making your first identity, especially without a GUI. Once you have your own identity, a lot becomes easier, not the least of which is the ability to send money to a friendly name instead of a base58 blockchain address or hash. For example, once you have your identity, either of the following commands will work as well as just about any other CLI command that takes an address:

./verus -chain=VRSCTEST z_sendmany bob@ ‘[{“address”:”alice@”, “amount”:100}]’

or

./verus -chain=VRSCTEST sendtoaddress alice@ 100

Making a Verus ID requires two steps, steps that are designed to prevent potentially selfish miners from replacing your purchase of an ID from the Verus blockchain with their own purchase of the same name instead. To prevent this name “front running”, you must first commit to a name that you wish to have in your identity as its friendly name. Friendly names are unique to a blockchain, so if someone already has a specific name you must have, you will need to either be the first to purchase that name from the blockchain or acquire it from the controlling individual or organization.

Creating a name commitment registers your commitment, but keeps the name completely secret until you register it and reveal your commitment. When you register a name, you must pay 100 VRSC or 100 VRSCTEST, unless you have a referral from someone who already has an identity. With a referral, the price is 80 VRSC or 80 VRSCTEST. When you register an identity with the CLI wallet, the correct amount of money, 100 VRSC without and 80 VRSC with a referral is automatically spent along with your registration. The funds for a referral are distributed as follows:

  • 20 VRSC to the referrer’s ID
  • 20 VRSC to the referrer’s referrer’s ID
  • 20 VRSC to the referrer’s referrer’s referrer’s ID
  • 20 VRSC to the miner of the block in which the ID is mined

100% of all funds that are not paid to referrers go to miners or stakers of the blockchain.

To create an identity:

Create your commitment with the following command:

./verus -chain=VRSCTEST registernamecommitment Name youraddressorid referrerfriendlyname@
That will respond with something like:
{
  "txid": "377576f8ada1acc2aeb013ddf7a9ad86756cb990d4c5fc70b5a9a0fca43d727e",
  "namereservation": {
    "name": "Name",
    "salt": "7b981f0a1ff2593167ef078150d0116335a7f329f9403b0abaeca30a42d8876a",
    "referral": "iSJLKp1hvn51Zg2Y6FBKjzLs9AAy7fomWN",
    "parent": "",
    "nameid": "iDXx9FPrAS5k2XCGss6FFmDQQMsts63uUg"
  }
}

You then wait for the commitment to be mined into a block, then use the information returned above as follows:

./verus -chain=VRSCTEST registeridentity '{"txid":"377576f8ada1acc2aeb013ddf7a9ad86756cb990d4c5fc70b5a9a0fca43d727e", "namereservation": {
    "name": "Name", "salt": "7b981f0a1ff2593167ef078150d0116335a7f329f9403b0abaeca30a42d8876a", "referral":"referrerfriendlyname@"}, "identity":{"name":"Name", "primaryaddresses":["RKo5u8N1sStZu81fU8kaxhoDcFcJmNEwSp"], "minimumsignatures":1, "privateaddress":"zs14y0aa096em2as6n4fauyumqeywz45rfpze38c39fksgtjsac9vmms7fmstcylpaalm7rseu8838"}}'

As long as you have enough funds and you are registering a new identity on the blockchain, you will be able to use your new identity in place of an address as soon as the transaction created by the registration command is mined into the blockchain.
You may list the identities in your wallet with the command listidentities, and you may display specific identities with the command getidentity. If you have the authority, or use identities under your control as revocation or recovery authorities for other identities, you may also revoke and recovery identities as well.

Testnet Reset

The testnet was deleted and relaunched on this release. IF YOU HAVE LAST LAUNCHED VRSCTEST FROM A VERSION PRIOR TO THIS, PLEASE DELETE THE FOLLOWING DIRECTORIES BEFORE RUNNING THIS NEW UPDATE:
Linux:

~/.komodo/VRSCTEST
~/.verustest

MacOS

 ⁨Users⁩/⁨{YourUserName}/⁨Library⁩/⁨Application Support⁩/⁨Komodo/VRSCTEST
 ⁨Users⁩/⁨{YourUserName}/⁨Library⁩/⁨Application Support⁩⁨/VerusTest

Windows

"%APPDATA%"\Komodo\VRSCTEST
"%APPDATA%"\VerusTest

Launching the testnet:

./verusd -chain=VRSCTEST

Disclaimer

This is experimental and unfinished software. Use at your own risk! No warranty for any kind of damage!
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The enclosed copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

MacOS:
https://www.virustotal.com/#/file/5cc801f027d86a59d4d70de91697fa86d96ca5034f957c81c0a2f7895a5a5677/detection
Linux-AMD64: https://www.virustotal.com/#/file/0a989ab93e059fc778475498459b9de0484557ee8f44feb2fe418c58d976c38a/detection
Windows:
https://www.virustotal.com/#/file/2a661915722798ba65ca84990707c4f6cea1f390a79f717adc83c8b50861b581/detection

Avast and Kaspersky may flag the software as "not-a-virus" or "PUP". These are warnings that you are installing mining software, which may be installed by a third party to exploit your PC.
To find out more about the false positives, review the following resources:
https://blog.malwarebytes.com/detections/pup-optional-bitcoinminer/
https://www.kaspersky.com/blog/not-a-virus/18015/

Don't miss a new VerusCoin release

NewReleases is sending notifications on new releases.