Both are Cryptonight-based coins. What is the main difference (on the technical side)?
Monero is a vastly different project from its CryptoNote origins. In the year-and-a-half since we took over as stewards of the Monero project we've added 246000 lines of code (ignoring modifications to external libraries such as unbound, miniupnpc, lmdb, etc.) and modified 13890 existing lines of code. Our focus has been on major improvements to both the protocol and implementation, as well as incremental refactoring and commenting.
To give you a stark example of the differences: Bytecoin currently has 13336 comments in its code, and Monero has 36072.
Off the top of my head, here are things that Monero has done that Bytecoin hasn't:
- Discovered
severe, fundamental flaws in the underlying CryptoNote protocol- Proposed
fixes for those flaws- Implemented fixes for those flaws in a hard fork
- Implemented a rolling hard fork mechanism
- Completely overhauled and improved the CMake build mechanism with the assistance of Kitware, the creators of CMake
- Improved and extended the wallet storage format
- Massively improved the (purposely obfuscated / broken) PoW hashing mechanism
- Added Electrum-style mnemonic seeds
- Created and added wordlists for various languages (English, Portuguese, Russian, Japanese, Spanish, Italian)
- Created a multilanguage subsystem for all CLI tools
- Added transaction auto-splitting
- Massively improved payment ID scanning
- Added support for
OpenAlias- Created and implemented a scheme for address + payment ID serialisation
- Created and implemented a scheme for stealthed payment IDs
- Implemented a cryptographically secure DNS seeding system
- Implemented a cryptographically secure distributed checkpoint referencing system
- Moved from in-RAM database to a backend-agnostic blockchain database
- Created an LMDB blockchainDB implementation (with the help of Howard Chu, the creator of LMDB)
- Created a BerkeleyDB blockchainDB implementation
- Created an OS-agnostic raw blockchain format
- Built tools to convert between blockchain implementations, as well as import and export them
- Added support for FreeBSD, 32-bit Windows, 32-bit Linux, ARM v6, ARM v7 (and above)
- Added QoS (bandwidth control) to the wire protocol
- Implemented a proper background forking (daemonising) mechanism that supports Unix forking and Windows services
- Added a core crypto implementation based on
SUPERCOP ref10- Switched to a triangular distribution for output selection
- Created a "trusted daemon" system for remote daemon use
And in which one would you invest?
Both will probably be non-existent in a few years. If by some chance Monero survives it will find its use as a privacy-centric currency / store of value, not as an investment vehicle. The non-fixed emission (to maintain mining incentives
ad infinitum) means that it will never have the same scarcity as Bitcoin, but I think it's already been demonstrated that scarcity in altcoin distribution is wholly overrated.