The Breeze Wallet with Breeze Privacy Protocol public Mainnet release is now available and represents a key step in our product development roadmap. The Breeze Wallet showcases our technology with a strong emphasis on privacy and security on the blockchain network. This primarily serves organizations that want to obfuscate business to business transactions securely on the blockchain.
This version of the Breeze Wallet includes the Breeze Privacy Protocol feature as well as a user-friendly interface. It also features the Masternode Client Discovery protocol where the blockchain is used to discover, validate, and connect to a Stratis Masternode, which provides the privacy protocol service. This discovery process is undertaken in a decentralized and trustless manner that is resistant to network disruption.
This is a Mainnet release and is now open to the public. Enhancements made to both the Breeze Wallet user interface and the Masternode Client Discovery Protocol have been incorporated into this release.
For more information about how the Breeze Masternode registration protocols works, please visit this technical blog post: /2017/10/30/masternode_registration_protocol/
Download the Breeze Wallet with Breeze Privacy Protocol for Mainnet from the link below. The wallet will then automatically discover and connect to an available Mainnet Stratis Masternode. Download https://github.com/BreezeHub/BreezeProject/releases/latest User Guides
Download for Breeze Wallet User Guide /wp-content/uploads/2018/09/Breeze-Wallet-with-Privacy-Protocol-User-Guide-v1.1.pdf
Download for Stratis MasterNode User Guide /wp-content/uploads/2018/08/Stratis-Masternode-Installation-Guide-for-Windows-v1.2.pdf
Today we are delighted to announce the availability of our Masternodes product in a beta version. The Masternodes alpha was successfully released in October, and as a result, we are now ready to move this technology onto the Stratis and Bitcoin Mainnet.
Masternodes provide a resilient, discoverable, and trustless service on the blockchain. This is implemented through a node service advertisement protocol and a client discovery protocol.
The source code is available in the below link and we have also provided a detailed ‘Masternode Set-Up and Configuration for Windows’ User Guide.
Breeze Wallet with Breeze Privacy Protocol Mainnet beta release will be available on Monday 11th December.
Please note our live alpha test Masternode server will no longer be available. Source Code http://www.github.com/BreezeHub/BreezeProject Set-Up and Configuration Guide https://www.stratisplatform.com/wp-content/uploads/2017/12/Stratis-Masternode-Installation-Guide-Windows.pdf
For more information about how the Masternode registration protocols work please see this technical blog post: https://www.stratisplatform.com/2017/10/30/masternode_registration_protocol/
The Breeze Wallet MainNet beta release is now available and represents a key step in our product development roadmap.
The Breeze Wallet release includes and highlights the following:
Dual Network functionality: Bitcoin and Stratis
Full block SPV wallet
HD Wallet (Hierarchical deterministic)
Transaction fee privacy consciousness
Change address privacy protocol
This is the first Breeze Wallet beta release on MainNet and it will be followed up with the Breeze Wallet with Privacy Protocol (powered by TumbleBit) release on MainNet which is scheduled for this quarter.
The release date for Breeze Wallet with Privacy Protocol (powered by TumbleBit) is on 11th December which includes interaction with the Stratis Masternodes.
The Breeze Wallet showcases our technology with a strong emphasis on privacy and security on the blockchain. These releases will highlight our focus towards providing enterprise blockchain solutions. Download
Download the Breeze Wallet beta version on MainNet here:
Stratis masternodes solve the problem of providing useful services to a blockchain network while keeping the list of services decentralised and tamper-proof. In the initial masternode implementation the service being provided is the Breeze Privacy Protocol, but it is anticipated that many more services can be added in future.
In order for this goal to be accomplished, each masternode must register (advertise) its existence via the Stratis blockchain. This is what is referred to as the Masternode Registration Protocol. A masternode registration simply consists of a specially formatted Stratis transaction. This transaction contains all the pertinent information needed by a client to connect to and validate the masternode.
A registration transaction, once submitted to the network, remains valid indefinitely until invalidated by one of the consensus rules governing such registrations. These are:
The masternode server’s funding address is not funded within the initial window period.
The collateral funds are insufficient at the conclusion of the window period (see section Collateral Verification for additional information regarding the collateral and the balance tracking).
The collateral funds get moved, wholly or in part, to another address, thereby decreasing the balance below the required threshold.
A subsequent registration is made at a greater block height than the original (e.g. to update the masternode’s public parameters).
(Currently not enforced) A registration expires every N blocks, requiring the operator to periodically refresh it.
It is the responsibility of the Breeze client software to scan the Stratis blockchain for the most current masternode registrations prior to initiating contact with any server. They do this by observing each incoming block, looking for transactions that match the bitstream format. When a registration is found, it is stored in the node’s local store.
The block height that the registration is received at determines the window period for the masternode funding transaction. The masternode operator has to move the required collateral into the funding address before this window elapses. If this is not done the registration will be regarded as expired and purged from the local storage of all nodes on the network.
Once a sufficient number of valid masternode registrations have been downloaded, the client can select one at random and try to connect to it to utilise its services (e.g. the Breeze Privacy Protocol). Optionally the masternode selection can be performed once the entire blockchain is downloaded, as this is more fair to masternodes that register later in the chain.
The process described above has already been implemented into the Stratis software offering. Bitstream format for masternode registration transaction
The registration transaction consists of a single transaction broadcast on the Stratis network (either testnet for testing or mainnet for ‘live’ masternodes). This transaction can have any number of funding inputs, as normal.
It has precisely one nulldata (data storage) output marking the entire transaction as a masternode registration. There can be an optional change return output, which if present must be at the end of the entire output list. The remainder of the transaction outputs are of near-dust value. Each output encodes 64 bytes of data into a public key script. The contents and format of the encoded data is described below.
The presumption is that the transaction outputs are not reordered by the broadcasting masternode, as this would result in potential data corruption.
OP_RETURN transaction output
Literal ASCII string: BREEZE_REGISTRATION_MARKER
Encoded public key transaction outputs
Protocol version byte (if >200, it is a test registration to be ignored by mainnet wallets)
Length of registration header
Server ID of masternode (base58 representation of the collateral address, right padded with spaces if it is less than 34 characters long)
IPv4 address of masternode, one byte per octet. Use 00000000 for an empty address. This field is not used for the Breeze Privacy Protocol; it is a placeholder for future functionality
IPv6 address of masternode, one byte per octet. Use 00000000 00000000 00000000 00000000 for an empty address. This field is not used for the Breeze Privacy Protocol; it is a placeholder for future functionality
Masternode server URI, currently this is an ASCII onion address hostname without any prefix or suffix. An empty address is signified by 00000000 00000000 00000000 00000000, but leaving this empty is not valid for the current Breeze Privacy Protocol implementation
TCP port of masternode, may be ignored by client implementation
RSA signature length in bytes
RSA signature proving ownership of the Breeze Privacy Protocol server’s private key
ECDSA signature length in bytes
ECDSA signature made with the private key of the address used as the server ID. This same address is where the collateral will need to be located
Hash of the Breeze Privacy Protocol server’s configuration file. This may be moved into the header in the next version of the protocol
The protocol format can be extended in future to accommodate new functionality. New fields should attempt as far as possible to retain backward compatibility with the existing fields
On connection with the Breeze Privacy Protocol server by a client, the public key of the server will be verified by the client to ensure that the server is authentic and in possession of the registered keys. The Privacy Protocol is then followed as normal. Collateral Verification
For the Breeze Privacy Protocol to function well, the creation of numerous or insufficiently powerful masternode servers must be disincentivised. Therefore, consensus rules that govern the validity of a masternode need to be established and enforced by participating client nodes.
A Stratis masternode requires 250 000 Stratis coins (STRAT) to be regarded as compliant. These coins should be kept in a single address, and should not be moved once the funding transaction is performed.
On receipt of each new block, the non-masternodes will check each transaction for those that affect a currently tracked masternode server. If funds have been moved out of the address, the calculated balance is decreased. If funds come in, the calculated balance increases. Once the balance has been computed for a masternode, its registration is automatically deleted if it falls below the 250 000 STRAT threshold. It is therefore not recommended that significant transactional activity be performed with the collateral funds, to avoid inadvertently invalidating registrations.
The above diagram illustrates 4 basic scenarios for a masternode’s registration sequence.
Node 1 has made a sufficient funding transaction within the window period, and as such its collateral is regarded as compliant.
Node 2 was initially compliant after the window period, but later removed some funds from the address, and therefore no longer has sufficient collateral.
Node 3 made two transfers that when aggregated form sufficient collateral in the target address. This is a valid, but non-standard method of performing the funding.
Node 4 took too long for the funding transaction to be performed (it was outside the window period), and is therefore regarded as non-compliant in terms of its collateral obligation.
The collateral verification functionality has also already been implemented into the Stratis software offering. Future improvements Inter-node discovery protocol
A drawback of the approach outlined in this paper is that every node has to download the entire blockchain from the genesis block onwards in order to accurately determine collateral balances. It is more efficient for registrations to be accumulated by full nodes, and circulated to their peers (full or light nodes) with sufficient proof of their accuracy.
The inter-node discovery protocol has already been implemented in the Stratis node software, but is not currently used in order to keep the initial version as simple as possible. It also has an indirect requirement for the peer policing described in the Peer policing model section. Improvement proposal – peer policing model
There are some differences between existing masternode implementations and the envisioned Stratis masternode approach. Briefly:
Dash masternodes are remunerated ‘passively’. This requires that they be actively pinged in a verifiable way by the remainder of the network to avoid paying a masternode that performs no work.
Conversely, a Stratis masternode can currently only earn remuneration via active participation in the Breeze Privacy Protocol with connected clients. This removes the need to directly police the masternode in this sense.
Due to the high cost of a top tier Stratis masternode, it is presumed that the operator will be economically incentivised to positively participate in the network. This is similar to the core tenets of the Proof Of Stake consensus mechanism.
There are also some aspects of the Dash approach that are desirable to emulate, particularly the ability to have the collateral in ‘cold’ storage.
The requirements for the Stratis top tier masternode may be summarised as follows:
The node operator must be in possession of at least 250 000 Stratis (i.e. they possess the private key to move or spend them).
These collateral Stratis must be present in a single address.
Moving the Stratis collateral to a different address invalidates any proof of possession generated prior to the move.
These requirements need to be actively enforced to prevent dilution of the Privacy Protocol security model. It is proposed that the entities most suited to perform the enforcement are the masternode’s peers on the Stratis network. These peers may be one of the following:
Another masternode (essentially a full node with additional features).
A ‘full’ node with a complete copy of the Stratis blockchain.
A ‘light’ node that does not retain a copy of the entire chain, but does at least retain block headers.
Other types of nodes are outside of the scope of this document.
The onus is on a particular masternode to advertise its services to the network. This means that every node can elect whether or not to regard a masternode registration as valid, depending on the information it has available to it. From a game-theoretic perspective, it is advantageous for the operators of ‘rival’ masternodes to immediately present proofs of non-compliance of a particular masternode to the rest of the network. It is additionally presumed that there is no advantage to be gained for an honest node to propagate registrations known to be invalid.
An example of the ‘lifetime’ of a registration & implementation of the ‘proof of non-compliance’ concept is as follows:
Operator configures masternode, which generates masternode registration Y on startup.
Node operator moves sufficient collateral into address X (the ‘funding transaction’). This needs to be done within a finite window period after the registration transaction is made.
Registration Y is broadcast as a transaction to peer nodes for inclusion into the Stratis blockchain in block Z.
The registration is cached on each peer node. Nodes that join the network after block Z need not download the entire chain to receive registration Y – they can receive lists of verified historical registrations by communicating with their peers (inter-node discovery protocol). Light nodes can validate registrations for themselves by evaluating the Merkle proof of the registration against their locally downloaded block header storage.
All full nodes on the network can directly evaluate the balance available in address X at any time. Therefore, if it transpires that a spurious masternode registration has been broadcast (which may happen) the full nodes will not forward that registration on to new peers. Peers that attempt to send known-invalid registrations will receive a proof of non-compliance in response.
The status quo persists for a period of time without any changes that affect masternode registration validity.
The masternode operator moves a portion of the funds from address X elsewhere, i.e. they are now below the collateral requirement.
All nodes that download blocks will immediately be able to tell that the balance of X has changed, although a light node may not know what the actual balance is. Full nodes do know (or can calculate) what the balance is, and can construct a proof thereof showing that the masternode is no longer compliant.
The non-compliance proof will be broadcast between nodes. This could be done pre-emptively (i.e. broadcast proof to all known peers immediately), or it could be done passively in response to receiving an invalid registration from a peer.
At a high level, the proof of insufficient funds will consist of the following elements:
A copy of the ‘funding transaction’ for the masternode. This is defined in more detail in the Funding Transaction
The registration record itself (in its entirety, as the peer may not have downloaded it yet).
At least one complete transaction with the funding transaction included as one or more of its inputs i.e. showing that collateral funds have been moved/spent.
The net result of the movement transactions must be that the balance of the collateral address is < 250 000 STRAT.
Merkle proof(s) for the movement transaction(s) showing that they are included in a block at the same or higher height than the funding transaction.
A light node should be able to interrogate a peer node about the perceived status of one or more masternodes. If the peer being interrogated is also a light node, it will only be able to pass along proofs it already received and stored from the full nodes. Funding transaction
The funding transaction for a masternode is the transaction that assigns the 250 000 Stratis collateral to a given address. It is recommended that only a single transaction output be used for this, to keep the size of the proofs communicated between peers to a minimum.
There is also naturally a possible gap between the block height of the funding transaction and the block height of the registration transaction, during which some fund movement may have occurred. This should not be a problem, as full nodes will evaluate the solvency of the masternode and determine whether to propagate its registration to other peers via the inter-node protocol. Some possible attack/DoS vectors
The most vulnerable portion of the network are the light nodes. The proof mechanism therefore needs to be robust enough to allow the light nodes to participate in policing the masternode registrations without having the entire blockchain available.
The masternode operators also need to be protected from rogue full nodes attempting to stifle traffic to particular masternodes by censoring their registrations. This is mitigated by the decentralised nature of the Stratis blockchain. It is only required that a sufficient number of honest nodes participate to minimise or negate the impact of rogue nodes, as the registrations will percolate through the network via the blocks & inter-node protocol. A rogue full node cannot generate a fake proof of non-compliance, as the Merkle proofs will fail to be validated.
Masternode operators may generate copious registration transactions (i.e. spam) in an attempt to sway client nodes to use their server. This is mitigated by a rule that a client node will only keep the most recent valid registration for each known masternode, so spamming the network does not result in an increased likelihood that a client will select a particular masternode server.
It is important that a masternode operator avoid moving their collateral funds in such a way that they inadvertently provide an avenue for full nodes to construct a non-compliance proof. If funds need to be moved it is recommended that an entirely new address be used & a new registration performed. This will naturally cause the previous registration to be invalidated and removed from the caches of nodes on the network. The new registration will, conversely, be cached and used going forwards.
We are excited to announce the alpha release of the Stratis Masternode technology.
The Masternodes feature a Service Advertisement Protocol where services are registered on the blockchain and subsequently made discoverable by client applications.
Masternode Service Advertisement Protocol
This part of the protocol advertises that a Masternode hosts a particular service. It works as follows:
1. The Masternode operator chooses which services they wish to host then configures and starts the Masternode.
2. The Masternode performs a small micro transaction on Stratis mainnet which is committed to the blockchain in the normal manner.
3. The transaction includes a small amount of service specific tokenized data that is used by the Client Discovery Protocol. This data could be a standard internet address Uniform Resource Locator (url) or an IP Address, for example.
4. The Masternode monitors any changes to the data represented in the tokenized data and will perform a superseding update transaction if required.
Masternode Client Discovery Protocol
A client application, such as Breeze Wallet with the Breeze Privacy Protocol, can read the tokenized data on the blockchain as follows:
1. The client application includes a Stratis Blockchain technology component that receives blockchain blocks as they are added to the Stratis Mainnet blockchain. This is similar to a wallet that receives new blocks as it processes transactions.
2. The Stratis Blockchain technology component examines the transactions in the block and picks out the data.
3. The component passes this data to the main part of the application to be used for service connection or other application specific purposes.
The decoupling described creates a robust, trustless, decentralized advertisement and discovery mechanism that is resistant to manipulation or censorship.
Masternode Support in the Breeze Privacy Protocol (powered by TumbleBit)
The Breeze Privacy Protocol is the first Stratis Service to support Stratis Masternodes. The Masternode release includes the Breeze Privacy Protocol Service. Here the Masternode Service Discovery Protocol is used to advertise the internet address of the Breeze Privacy Protocol Service hosted inside the Masternode. When a user of the Breeze Wallet wishes to use the Breeze Privacy Protocol, the application has available a list of Masternodes hosting the service which it has discovered through the Masternode Service Advertisement and Discovery Protocol.
Testnet and Mainnet
The release of the Stratis Masternode is configured for testnet however the Advertisement and Discovery Protocol is mainnet ready.
Breeze Wallet with Breeze Privacy Protocol (powered by TumbleBit)
Download and try the beta testnet version of Breeze Wallet with Breeze Privacy Protocol here and try connecting to our Masternode:
Today we have reached another significant milestone in our roadmap as we release our Stratis Masternodes product.
This major release includes the following:
A live running Masternode running on Microsoft Azure.
The Masternodes fully support our new Service Discovery Protocol and are currently configured to run our Breeze Privacy Protocol service.
A new version of the Breeze Wallet with Breeze Privacy Protocol (powered by TumbleBit) that features the Masternode Client Discovery Protocol.
The Masternode technology implements a collateral verification feature that requires the node operator provide 250,000 Strat to be held in a watched address on the blockchain. This requirement helps to incentivize the supply of appropriate resources required to operate the network.
These technologies work together to solve the problem of providing useful services on the network where Masternodes host and advertise their services on the blockchain while client applications use the blockchain to discover and connect to those services.
This delivers a robust, trustless, decentralized advertisement and discovery mechanism that is resistant to manipulation or censorship.
Our first such service, the Breeze Privacy Protocol, is available as a Masternode service today with more exciting Masternode services coming soon.
Download a version of our Breeze Wallet with Breeze Privacy Protocol (powered by TumbleBit):
Breeze Wallet with Breeze Privacy Protocol Released
(Powered by TumbleBit and Stratis Blockchain Technology)
Breeze Wallet with TumbleBit has a new name: Breeze Wallet with Breeze Privacy Protocol. Breeze Wallet will be the first wallet of its kind that will not only provide a fully featured crypto wallet, it will also include a unique coin shuffling and swapping technology. The protocol takes small denominations of bitcoins from a source wallet in Breeze, shuffles and swaps the coins with others, and then transfers those coins to a destination wallet.
The process is powered internally by TumbleBit to add privacy to your coins. It is likely to be used by discerning individuals and businesses that accept cryptocurrencies and do not want to leave traces that may reveal their customer and supplier lists.
Alpha Available Now
Stratis Internal and select community testing of Breeze Wallet with Breeze Privacy Protocol is complete and we’d like to offer you, our community, the opportunity to take a look, download and try the Alpha. The new wallet is available now for Windows, Mac and Ubuntu. Download details are available here: (https://github.com/BreezeHub/Breeze/blob/tumblebit-alpha/Breeze.Documentation/alpha/option1.md ). This release runs only on testnet and is an alpha/experimental release.
The work has focused on developing a smooth user experience as well as deep integration into the Stratis Blockchain Technology. There is no longer a need to run BitCoin Core alongside Breeze Wallet when using the protocol to shuffle and swap coins. That functionality is now completely provided by Stratis Blockchain technologies. This work moves us closer to our vision where MasterNodes provide discoverable services – such as the privacy protocol – to the Stratis network in a decentralized, scalable, trustless way.
We’d like to point out that the Breeze Privacy Protocol is a CPU intensive service and although we will be providing a test server, places on the server are limited and part of the goal of the community alpha is to stress the server. Please do not be disappointed if you cannot get on this server – we are working with our community to add more server power. If you are interested in running a server please get in touch.
We’d like to also extend a warm thank you to our dedicated community testing team who have done an excellent job helping to get Breeze and the core NTumbleBit technology to a solid alpha release state. A special mention to badass, zomertje, sigma, demon and kabbie. And lastly to all our capable development team across all functions. Last but not least thanks to Nicolas Dorier and the TumbleBit dev team from MIT. This was a team effort and you guys are awesome.
This note is a contribution from our new team member Carlton Pringle (@carlton on Slack). One of the key missions in Carlton’s new role as Breeze / Tumblebit development Project Lead, is to coordinate the communications about progress in this exciting technology to internal teams, developers and the public at large.
As he gets more familiarized with the vision and accomplishments of our development team. He will be responsible for providing all the relevant updates and streamlining communications from the Breeze / Tumblebit team to our developers and general community.
Welcome Carlton and we wish you success in your key role, and without further ado… here is his first Breeze Update.
Facilitating Breeze Development Access
We want to simplify access and visibility for the Breeze Project, as we expect many peer reviews and collaborators to this exciting project now and in the future. To this aim we are launching the GitHub open source projects for Breeze / Tumblebit development under the auspices of Stratis.
BreezeHub hosts our TumbleBit Server Experimental build and showcases the Stratis secure node advertisement protocol, which will be utilized by the Breeze wallet to locate Breeze Tumblebit servers without the need for a centralized list. This is therefore a registration mechanism resistant to manipulation or censorship as it does not require trust in third parties.
Check out BreezeHub where you’ll find all our work on the TumbleBit Protocol in one place including code, documentation and all the latest info on the TumbleBit Server Experimental Build.
BreezeHub includes full instructions to walk you through the TumbleBit server installation. Give it a try and please reach out to our team of developers on Slack with your bug reports, suggestions, and comments.
Expect to see lots of activity on BreezeHub – including more incremental releases – as our vision of this exciting technology takes form. BreezeHub on GitHub
BreezeHub is hosted on GitHub and can be found at https://github.com/BreezeHub.
Acknowledgements: Thanks to @zeptin and @dan.gould for their hard work on this and thanks @jeremy for your support. TCP Server
This week also, Nicolas Dorier wrote a custom asp.net core server to replace the default Kestrel implementation that runs in asp.net core on Windows, Linux and OS X. This lightweight tcp server will be used within the TumbleBit Server in place of the previous http+json ptotocol to improve anonymity for TumbleBit users. It can be found here.
The Stratis team is releasing today the highly anticipated alpha version of the Breeze Wallet on the BTC testnet. Grab the latest release on our Github.
As announced earlier this year, Breeze Wallet is a proof of concept on the utilization of C# / .Net programming languages into cryptocurrencies, combined with the Stratis Platform capabilities.
The Breeze wallet is the first full SPV Wallet written in C#. This initial version will allow to execute test transactions with Bitcoin (BTC) on the BTC testnet. From this alpha-release the development team expects to gather information about the user experience, and potential issues and bugs in the Breeze Wallet. These would then be addressed before offering a stable, ready for production version.
This marks a solid milestone in our roadmap towards releasing the full capabilities of the Breeze Wallet. Leveraging advancements with Tumblebit technology, the Stratis development team continues to make advances in the integration of advanced features into the Breeze Wallet such as enhanced privacy and scalability capabilities, Proof of Stake, among others.
We would appreciate the participation of our community in helping test and experience this release of the Breeze Wallet, so that we can take your observations into consideration.
Thank you for your support!
Acknowledgements: We want to thank our team members: Wallet developers – Pieterjan Vanhoof (@dev0tion), Jeremy Bokobza (@jeremy) – also our UI designer – Philibert Benoît (@bep42) and developer Dan Gershony (@dangershony), and the rest of the Stratis team for making this release possible today. Special thanks to our community members @Neurosploit, @quantumagia, @molopony, @DogaOztuzun, @detroitpro and all of the others that have helped.
Please report any issues to either the #csharp_development channel on our Discord or on the GitHub repo.
Consent to display content from Youtube
Consent to display content from Vimeo
Consent to display content from Google
Consent to display content from Spotify
Consent to display content from Sound
Join The Stratis Build Hackathon with $100,000 USD in prizes,sign up now.