General - bitcoin-atom/bitcoin-atom GitHub Wiki
Bitcoin Atom [email protected]
Revision v0.1 https://bitcoinatom.io
Bitcoin Atom (BCA) is a SegWit enabled Bitcoin fork with atomic swaps, hybrid consensus (PoW / PoS) and lightning network, enabling P2P decentralized transactions.
Introduction
Bitcoin Atom (BCA) brings a truly decentralized way of digital asset exchange – with on-chain atomic swaps on board. By using built-in hash time-locked contracts (HTLCs) and its own HTLC API, Bitcoin Atom attempts to disrupt the way we exchange cryptocurrencies today, giving independence from intermediaries and any centralized entities.
We believe that most cryptocurrency trades should be conducted on-chain in a decentralized way, as per the original Bitcoin’s approach to transacting in a completely trustless environment.
Atomic Swaps (AS), currently implemented via HTLCs on-chain and potentially via Lightning Network (LN) off-chain, bring an ability to swap assets directly between blockchains without any intermediaries involved. This ability is called atomic cross-chain trading, and we propose the Bitcoin Atom’s support for it at its core, by bringing AS API and a set of cross-chain trading utilities into the original Bitcoin core software and forking it into BCA.
Bitcoin Atom’s AS model is expected to bring transparency to digital asset trading, as attempts to churn volume via on-chain atomic swaps will be detectable by passive observers. This means that users cannot show up with a small amount of coins and then create a ton of fake volume covertly.
The BCA network is additionally secured by utilizing the so-called hybrid consensus: both PoW (Proof of Work) and PoS (Proof of Stake) models are put in place, increasing network stability and reducing the power of miners, hence lowering the 51% attack probability. Despite having Proof-of-Stake in addition to Proof-of-Work, Bitcoin Atom is not inflationary in terms of emission as PoS only serves the goal of decentralizing network power. Max supply of BCA remains the same as of the original Bitcoin (21M).
Project's core values: Independence, Decentralization and Transparency.
Implementation
Bitcoin Atom is a fork of the Bitcoin blockchain with major protocol upgrades that occurred on January 24, 2018 (block number 505 888). At this predetermined block number, the original BTC blockchain forked into BCA, and any transactions made since then will be completely separate on the Bitcoin (BTC) and Bitcoin Atom (BCA) networks. Bitcoin Atom then went live on mainnet and became a fully functional cryptocurrency.
All Bitcoin holders who possessed their private keys at the moment of the fork (block number 505 888) received Bitcoin Atom at the rate of 1 BTC = 1 BCA.
Subsequent to mainnet launch, the BCA team will focus on atomic cross-chain trading toolkit development, as well as integrating the LN model with off-chain swaps into Bitcoin Atom. The roadmap covering these milestones can be found on the official BCA website.
Specification
- Ticker Symbol: BCA
- Max Supply: 21 Million
- Distribution: Mining, Minting, Claiming
- PoW algorithm: SHA256
- PoW Block Interval: 10 Minutes
- PoS Block Interval: 10 Minutes
- Block size (actual): 1M (2-4M)
- Difficulty adjustment: EMA (from block 589,500)
- Avg tx confirmation time: 5 Minutes
- Atomic swaps: Yes
- Segwit: Yes
- Replay protection: Yes
- Unique address format: Yes
Downloads
Node Binary Downloads for Windows, MacOS and Linux https://github.com/bitcoin-atom/bitcoin-atom/releases
Source Code https://github.com/bitcoin-atom/bitcoin-atom
Social Media / Info
- t.me/bitcoinatom
- facebook.com/atombitcoin
- twitter.com/atombitcoin
- medium.com/@bitcoinatom
- reddit.com/user/BitcoinAtom
- github.com/bitcoin-atom
- bitcoin-atom.slack.com
- en.wikipedia.org/wiki/Bitcoin_Atom
Exchanges
- OKEx
- YoBit
- Exrates
- Bitlish
- More TBA
Wallets
- Coinomi
- Atom Core (full node)
- MyAtomWallet (web wallet)
- More TBA
Mining Pools
- MultiPools
- Bilbotel.fr
- More TBA
Q&A Regarding Various Aspects of Bitcoin Atom’s Feature Set and Network
Can Bitcoin Atom atomic swaps currently be performed by two parties on the mainnet?
Yes, swaps can be performed both in the testnet and mainnet environments, with all supported coins.
What cryptocurrencies can Bitcoin Atom do atomic swaps with now?
BCA has a full atomic swap compatibility with the following cryptocurrencies:
- BTC (Bitcoin)
- ETH (Ether)
- BCH (Bitcoin Cash)
- LTC (Litecoin)
- DASH (Dash)
- DCR (Decred)
- PART (Particl)
- SYS (Syscoin)
- VIA (Viacoin)
- VTC (Vertcoin)
Expected to be included in the list soon:
- All ERC20 tokens*
- Zcash
*This is significant. There are currently over 37,000 ERC20 tokens. A list is available here, starting with the ERC20 tokens having the largest market caps, and which are therefore the most well known.
Please see this compatibility chart for other cryptocurrencies: https://swapready.net
How do other existing cryptocurrencies interact with BCA to perform an atomic swap?
Currently there is a mechanism which lets one create a digital lockbox both in BCA and in another cryptocurrency (see compatibility chart linked above), effectively conducting the atomic swap between different blockchains.
This is not fully automated at the moment and is performed via a separate tool. We have an HTLC API in development, which is expected to fully automate atomic swaps across different blockchains.
Is this atomic swap capability done through your HTLC API?
Per our reply above, this is done via raw HTLC scripting at the moment, though we plan to shift to using the HTLC API, and thus to an automated way of swapping coins across various blockchains, once it is released.
As shown in our roadmap presented on bitcoinatom.io, the HTLC API implementation is scheduled to be finalized this month, February 2018.
P2P Atomic Swaps from Your Desktop or Browser
Once the HTLC API is released, we plan to publish GUI clients (both desktop & web) to securely swap supported cryptocurrencies (see the list linked above).
The availability of desktop and Web GUI clients means that you will be able to conduct direct atomic swaps between cryptocurrencies from your desktop or browser via a simple point-and-click interface, free of exchange-based slowdowns and without high exchange fees.
Please describe in detail how on-chain atomic swaps are performed with Bitcoin Atom
Swaps are currently executed by conducting the following steps on both chains, by using command line tools with low-level scripting under the hood:
- Generating a new address for the swap
- Creating an HTLC contract (sending a contract tx)
- Auditing an HTLC contract provided by the other party
- Redeeming funds paid into the contract on the other chain
- Refunding the contract transaction if swap did not take place
Did your team utilize an existing HTLC framework, or build your own from the ground up?
Our team utilizes existing hashlock and timelock constructs, which are implemented by using the Bitcoin scripting language and its analogs in other cryptocurrencies supporting atomic swaps. These low level contracts are used to create HTLC lockboxes in Atom.
Can you provide some additional details of how the swap works?
For example, if you and I were to execute a swap between BCA and BTC, would we both supply wallet addresses for the input and output tx, where the funds would be received and sent after the HTLC conditions are me.
Both of us would generate new addresses which will receive coins as a result of a trade.
In case I want to trade BTC for BCA, I generate a new BCA address to receive BCA coins, and provide it to you.
You generate a new BTC address to receive BTC, and give it to me. Once we have exchanged our receiving addresses,
I create and send a contract transaction, conditionally sending a certain amount of BTC (e.g. 1 BTC) to your receiving BTC address.
This is called the atomic trade initialization. Right after this step, you audit my contract transaction, verifying the amount, your receiving address and a refund period.
If everything is okay, you conduct a second transaction, conditionally sending a corresponding amount of BCA (e.g. 10 BCA) to my BCA address.
After receiving your transaction, I audit your transaction as well, checking all of the values which it contains.
If that is okay, I then proceed with the trade, redeeming my newly acquired BCA from the contract.
This reveals a special secret value to you, allowing you to redeem your BTC right away after my redemption is successful.
If either party in such a swap attempts to defraud the other, at any point, anyone can cancel the trade and refund the initial deposit.
Is fee-splitting a condition which is observed in your HTLC, or does each party pay their own respective fees based on the crypto they are tx’ing?
Each party involved in a single on-chain atomic trade has to pay a tx fee twice: first tx fee on the original chain and second tx fee on the other chain, coins of which he is receiving as the result of the trade.
In other words, each atomic trade counterparty has to pay transaction fees for both the swap (contract) transaction and the redemption transaction on each chain.
However, paying a tx fee on both chains is still cheaper in many cases for most cryptocurrencies, as compared to paying % fees to centralized exchanges, and is certainly true for changing higher amounts without intermediaries.
Further, off-chain atomic trading should minimize even these overhead costs for tx processing on both chains. Please note, that most of the atomic trade steps described above may be automated and made much more user-friendly, with a GUI overlay, which is exactly what we are now working on.
Generally the exchange of value is pre-arranged by both parties — does the contract only tx the respective amounts in the wallet address, or is it assumed that the entire balance of the wallet address at the start of the transaction are given up, and therefore an exact amount of the currency must be deposited in the start address?
The latter is correct: we treat new addresses with contract transactions as digital lockboxes, thus an exact amount of the currency must be deposited by the trade initiator prior to the trade. This is a technical requirement to immediately enter a trade.
However, orderbook functionality, with bids and offers, prior to the direct atomic trade matching, can be effectively implemented without locking any coins in advance.
This is one of the user-friendly Atomic Swap trading approaches, which we are working on at the moment.
In other words, pre-arranging trades and/or locking coins on different addresses (when trying to place cross-blockchain limit orders) is not required in most cases prior to the trade, and can be automated in a user-friendly way.
Does BCA standardize the type of information that can be used to construct the private key, such as a seed, or image?
Yes, BCA is utilizing the standard BIP44 to generate accounts and addresses, and BIP39 to generate the seed, just as the most up-to-date version of BTC does.
The seed is available both as a text (recovery mnemonic phrase) and an image (QR). In addition, BCA is always tracking updates from the Bitcoin codebase, thus ensuring full compatibility with the latest BTC standards, while also introducing advanced cross-blockchain trading capabilities.
How is transaction finality achieved?
Transaction finality is the same as in BTC, 6 confirmations received by the transaction is considered a safe value to ensure the transaction’s finality. This happens once 5 blocks of any type (PoW / PoS) are generated after the transaction is included in either a PoW or PoS block.
What is the expected rate of tps (transactions per second)?
BCA is a SegWit enabled Bitcoin fork, currently capable of processing ~21 tps and more than 50,000 tps after lightning network activation, which is scheduled to happen in 2018. To put this in perspective, Bitcoin (BTC) currently has a transaction rate of roughly 3–4 tps.
Which blockchain browser supports visibility of transactions performed on the BCA blockchain?
We are currently working on implementing two open-source block explorers concurrently, and plan to release them within a few days. Once released, links will be available on Bitcoin Atom’s overview on CoinMarketCap.
Was there a pre-mine or allocation to the BCA team? If so how much?
There was zero premine.
Since approximately 1M coins, or roughly 5% of the supply of BCA, has already been mined, isn’t this likely to affect the price of Bitcoin Atom, over time?
We wanted to reward our initial supporters: miners and mining pools, who we had multiple discussions with while building BCA, and who we believe will help the project achieve its goals in the long run.
And it’s pertinent to note: because of the hybrid consensus protocol implemented in Bitcoin Atom, Proof-of-Stake blocks are already being generated on the mainnet, stabilizing and further securing the network.
We don’t foresee any negative impact on the price of Bitcoin Atom from this quantity of initially mined coins for two key reasons:
-
Most cryptocurrency coins in general, and Bitcoin forks in particular, have a large quantity of coins created initially, in multiple ways, and for multiple reasons. This alone doesn’t seem to particularly affect the price, especially over more than the shortest periods of time.
-
The primary driver of a coin’s price is its value as perceived on the open market. In the case of Bitcoin forks, this is driven by a combination of association with Bitcoin (BTC), and the forked coin’s specific features. We are confident that Bitcoin Atom’s unique and powerful features will help it to have significant value over time.
Can you describe the Bitcoin Atom consensus algorithm?
The consensus algorithm is hybrid in Bitcoin Atom, which means that it combines both PoW (proof-of-work) and PoS (proof-of-stake) approaches towards generating blocks on the network. These are different mechanisms, each with their own implementations, which are interconnected in the core BCA protocol, and are designed to work in parallel within the protocol.
The Bitcoin Atom hybrid PoW and PoS model can be seen as a seriously enhanced Peercoin consensus model, with a few major improvements. Coin staking is working out-of-the-box, without any special activation or configuration. Target block time is 10 minutes for each model independently.
PoS generation is activated automatically by the node once your BCA coins are more than 2 days old.
PoW generation utilizes the same algorithm as BTC does (SHA256), for the sake of inherent compatibility with existing mining hardware and software, and therefore, of larger and more rapid adoption.
How are both PoW (Proof-of-Work) and PoS (Proof-of-Stake) models utilized in the same protocol?
Bitcoin Atom has inherited the original Bitcoin’s PoW model with the most up-to-date Bitcoin codebase, and integrated the upgraded PoS mechanism which was firstly introduced by Peercoin. Both mechanisms are designed to work in parallel, increasing the network’s stability and security.
Average block time in PoW / PoS is 10 minutes, thus yielding 5 minutes block time with both models applied. Proof-of-Stake block minting does not imply a yearly interest, as BCA is a deflationary cryptocurrency, with a finite block amount similar to Bitcoin. However, all stake minters gain transaction fees reward from every PoS block they mint.
SegWit and Lightning are supported by BCA as key features, and our hybrid consensus approach works exceptionally well with these scaling technologies.
Is the difficulty adjustment pegged to a 5 minutes average block time confirmation regardless of hashpower?
Correct, average block time will tend to 5 minutes as a proof-of-work difficulty retargets a few more times, and proof-of-stake minting will start taking place on the network.
When does BCA expect to allow coin-splitting with the major hardware wallet providers such as Trezor and Ledger?
Understandably, we can’t provide any detail until agreements are reached. However, we can say that we are in communication with both those companies, and quite a few others, as well.
We remain optimistic that they will all see the value of Bitcoin Atom for their customers, some soon, and some a bit farther down the road. And, as always with support for new technologies and offerings in this space, we expect the communities for these wallets will want Bitcoin Atom support, and that their input will likely have influence.
Does BCA standardize the type of information that can be used to construct the private key, such as a seed, or image?
Yes, BCA is utilizing the standard BIP44 to generate accounts and addresses, and BIP39 to generate the seed, just as the most up-to-date version of BTC does. The seed is available both as a text (recovery mnemonic phrase) and an image (QR). In addition, BCA is always tracking updates from the Bitcoin codebase, thus ensuring full compatibility with the latest BTC standards, while also introducing advanced cross-blockchain trading capabilities.
How many full-time developers are actively contributing to Bitcoin Atom source code?
Our team has 3 full-time developers actively contributing to the project, and 2 part-time developers / advisors.
What is the roadmap for creating awareness, acceptance and adoption of Bitcoin Atom?
The technology is fairly revolutionary, and our timeline is relatively aggressive, and we understand that we have to both release code, and do so relatively close to our estimates, in order to have the kind of adoption that Bitcoin Atom truly merits.
To date, we delayed initial source code release by just a week, which is not a huge delay, given the complexity of this fork. We built several large infrastructures to support Bitcoin Atom’s unique feature set and capabilities, and still released code very shortly after the fork took place.
This timing, which ended up very close to our roadmap estimates, combined with BCA’s currently-available features, demonstrates that we can deliver on the product.
We hope that the press will pick up on our achievements and releases, and we are optimistic that this will happen. We are already starting to get a ton of email asking for various partnerships with wallets, exchanges and mining pools, as well as from members of the press regarding writing articles about Bitcoin Atom.
And if anyone reading this is interested in writing about Bitcoin Atom for publication, or is interested in partnering with us for mining, wallet support, or as an exchange — please just email [email protected] with as much detail as possible, and we will respond ASAP.
To stay current on Bitcoin Atom technical developments, please bookmark this link to the Bitcoin Atom Wiki:
https://github.com/bitcoin-atom/bitcoin-atom/wiki
Disclaimer
Credit goes to DCR, VTC, LTC, PPC, NVC, EMC and BCA dev teams.