MWEB is Litecoin’s single most significant breakthrough. It’s avant-garde, it’s cypherpunk, and it marks a giant leap in the right direction. What it does is to provide an optional privacy and scalability layer that every user can access permissionlessly. It also establishes Litecoin’s maturity as a project, as it now dares to diverge from the Bitcoin Core codebase.
Before MWEB, privacy in the context of Bitcoin and Litecoin faced four main criticisms:
1. Adding privacy requires a hard fork that may split the community.
2. Adding privacy diminishes monetary supply audibility and might cause hidden inflation.
3. Privacy protocols cause scalability issues due to increased transaction size.
4. Regulators and centralized exchanges would ban/delist any coin that adds privacy.
MWEB, which stands for MimbleWimble Extension Block, combines two different elements which were once proposed for Bitcoin: the MimbleWimble privacy and data compression protocol, on top of the Extension Block scaling proposal. In order to achieve privacy, coins can now be sent to a parallel private blockchain that’s being secured by the same miners. The process of joining this extension block is called ”pegging in”, while leaving it to return to the base layer is referred to as ”pegging out”.
How is the extension block different from a merge-mined sidechain? Information about every extension block exists within each Litecoin block. While the sidechain is independent from the main chain, the extension block is an integral part of the design which signals its existence every 2.5 minutes.
Basically, Litecoin is now a combination of the Grin++ and Bitcoin Core codebases, but with an extra scalability layer which allows the main chain to remain transparent. It’s also important to mention that this upgrade became possible with a soft fork activation, so it’s 100% compatible with older clients that may be lagging or might have technical disagreements with MWEB itself.
Through MWEB, Litecoin acquires the holy grail of sound money qualities: fungibility, which entails that one monetary unit is equal to any other in the same amount. While it’s easy to say that 1 BTC equals 1 BTC, you can still discriminate between coins depending on their provenance: money that’s linked with the Silk Road, North Korean hackers, or an exchange hack might get rejected by certain economic participants, while freshly-mined coins are usually more desirable. But on Litecoin’s MWEB layer, fungibility becomes a reality through a lightweight and scalable implementation of confidential transactions with native CoinJoin mixing functionality and stealth addresses. There is no way to discriminate between MWEB litecoins because the participants can’t tell them apart — so everyone has the exact freedom of transactions and benefits from the same amount of confidentiality!
Sure, the privacy in Litecoin’s MWEB can’t compare with that of a network such as Monero. Opt-in privacy, which is acquired by moving money from a transparent layer to an opaque extension block, has certain limits: for instance, you can know the origin of some main chain funds and track the liquidity that pegs into MWEB. For as long as the coins are being transacted on the Mimble Wimble layer, they have pretty good privacy and are safe from lurkers. But if the exact same amount (minus transaction fees) gets withdrawn from MWEB to a normal base layer address, then some may assume that the funds belong to the same person.
For instance, as of June 25th 2024, the amount of liquidity that’s locked into MWEB adds up to 44.2k LTC. If someone pegs in with his 50k LTC and later withdraws 49k to his ltc1 address, then there are legitimate reasons to believe that the same user is behind this transaction. In this particular scenario, the privacy benefits of MWEB are minimal and only relate to the transactions that happen on the extension block. On the other hand, if the user makes multiple daily withdrawals of 200 LTC or less to different addresses, then he/she will have broken the link between the initial peg-in and the later peg-outs within a year. Sometimes privacy is about being indistinguishable from the crowd.
As Charlie Lee explained in S15 E34 of the Bitcoin Takeover podcast, there are 4 dimensions to Bitcoin and Litecoin privacy: network-level privacy, sender privacy, receiver privacy, and amounts privacy. If you run your wallet on Tor or with a VPN, you get network-level privacy — this is only about hiding your IP address from the rest of the P2P network, to avoid linking the activity of your wallet with your geolocation (given by your internet provider). On the other hand, if you generate a new address for every new transaction you’re receiving, then you benefit from receiver privacy. In this scenario, based on interactions at the social layer, only the individual senders can know which addresses belong to you.
However, you need technology such as MWEB is order for senders to transact without revealing to the receiver how many coins they have in their wallet. In real life, if you use a $5 bill to pay for a carton of milk that costs $4, then you get your $1 in change and nobody watching this transaction can see what happened in your wallet except for the $5 you take out and that $1 that you put back in. Likewise, tapping your credit card won’t reveal to the merchant (and everyone else around you) how much money you have in your account. But if you use Bitcoin or Litecoin without MWEB, any transaction you send will reveal to the receiver how much change came back to your wallet. The UTXO model partially mitigates this issue through coin control, but the MWEB layer completely fixes it. Someone who receives LTC over MWEB will not know how much money the sender might have. The only clue is the amount they received (the assumption being that this sender may have more), but everything else is shrouded in advanced cryptography.
Then there’s the issue of hiding amounts for all transactions. Within the MWEB layer, outside observers can only know how many coins are currently locked and might be transacted between participants. Their only clue about what’s going on is given by the amounts that come in and out of the extension block. While this isn’t as great as Monero (where everything is hidden by default) and Zcash (where this privacy happens on the same layer), it’s still a major breakthrough because all of this was possible with a non-disruptive soft fork. Some extra CoinJoins on the base layer (with technology borrowed from open source projects such as Wasabi) can be of tremendous help to boost privacy, as peg ins and peg outs can take place from CoinJoins and into CoinJoins.
Furthermore, if the Drivechain soft fork gets activated on Litecoin, then the Zcash sidechain will provide excellent privacy — and there will be the option to swap LTC from MWEB to ZLite and vice versa. A whole new era of fungibility is upon us, and Litecoin finds itself at the avant-garde of this movement!
Repeat after me: confidential transactions with default CoinJoin mixing features and stealth addresses, on top of an extension block. This is what the MimbleWimble Extension Block is all about!
But wait, there’s more: David Burkett, the architect of MWEB, has also made a couple of significant advancements to the MimbleWimble protocol. First and foremost, he figured out a way to enable participants to receive coins without being online while the transaction takes place. This is extremely important, as the user experience is identical with that of Bitcoin and Litecoin. Thanks to this feature, content creators, charities, and fundraising campaigns can just post a QR code or a single address in order to receive coins without having to run a node 24/7. Furthermore, they benefit from great privacy: it’s only their business to know how much money they received and they might not even know where it comes from. These people and organizations will only be aware that the particular address that they posted has a designated purpose, so people sent money to it with a particular motivation in mind.
David’s second breakthrough was that of making addresses work in the context of the MimbleWimble protocol. By design, MW is not supposed to have receiving addresses. But since this is an integration that’s made on top of Litecoin, now we have the ltcmweb address format to complement the user interface.
There’s also something to be said about the fact that Bitcoin can simply copy the MWEB design to fix its own issues with privacy and scalability. However, at this time it seems like Bitcoin is mostly focused on enabling a covenant soft fork that can empower devs to build trust-minimized sidechains for lots of different use cases. It’s a much more tame approach that probably takes into account the interests of institutional investors and tries to minimize political risk. But it’s also a move that makes Litecoin a much more interesting solution for peer to peer electronic cash.
Thanks to MWEB, Litecoin now has its own identity and a value proposition which is very much different from Bitcoin’s and Grin’s. This middle ground between a transparent base layer and a private extension block might just be the investment thesis that will once again turn Litecoin into a top 10 coin. Once the development is complete and every LTC wallet out there adds MWEB, it’s up to the community to use the privacy layer and popularize it through social movements, events, memes, and bullish narratives. Though Litecoin might be the digital silver, fungibility brings it closer to being like gold — a metal that you can melt and cast in different shapes and quantities without any significant material losses.
BTCTKVR LITECOIN EDITION
After this theoretical lesson, let’s talk about practical matters: how do you use MWEB? For this tutorial, we’re going to use three of the most popular Litecoin wallets: Litecoin Core, Electrum, and LiteWallet. The examples from Litecoin Core are based on version 0.21.3, released on March 29th 2024. Electrum-LTC, on the other hand, received a significant update in June 2024 thanks to the contributions of Hector Chu — now there’s a dedicated single-sig setup for MWEB which guarantees that every transaction happens on the privacy-friendly extension block. At the time of writing this article, LiteWallet doesn’t have the MWEB integration yet — however, I will be using examples from Newborn: the mobile wallet that’s currently being used for testing by LiteWallet developers, and is expected to get merged into LiteWallet sometime in late 2024.
The best way to use MWEB on a desktop computer involves downloading Litecoin Core for your operating system. It’s the full node client which unlocks pretty much every feature that’s available on the Litecoin network. For more information about the benefits and requirements of running a full node, refer to the dedicated article from this magazine.
Once you’ve set up Litecoin Core and you’re fully synced with the network, go to the ”Receive” tab and tick the ”Generate MWEB address” box on the right side of the graphic user interface. Write the purpose or destination of this address in the ”Label” field, and then click on ”Create new receiving address”.
Your new address should look like this: ltcmweb1qqfqfg0rnzlda6plm4memypplp33cj6lp0kr22j734y3mugnmkgpvqqe4g3tj8fhdrsm75kyy233u369pzhgrh6mz79g44w38jdq3nwsfhsss4xuj
What you have to do next is to send the address you just generated to your friend and wait for confirmations: if your friend is using a normal on-chain address (starting with L, M, or ltc1), then the funds will go through a the peg-in process and you will have to wait for 6 on-chain confirmations (approximately 15 minutes) before the coins become safe to spend. On the other hand, if the transaction comes from another MWEB address, then the transaction is considered final after the first on-chain confirmation occurs in roughly 2.5 minutes.
If you want to peg your own coins from Litecoin Core into MWEB, first go to the ”Preferences” option in the menu and pick the ”Wallet” tab. Here, make sure you tick the ”Enable coin control features” box and restart the Litecoin Core client. Once you’re back, go to the ”Send” menu and click on the ”Inputs…” button on the top-left side of the interface. Here, you will be able to choose which UTXOs (coin stacks from your wallet) you want to send to your MWEB address. For good privacy, don’t pick multiple inputs and only peg in one at a time — batching the transaction will only make it more obvious for blockchain analysts that the funds in these addresses belong to the same user and were sent to the MWEB layer at the same time.
In the event that you have your coins elsewhere (Electrum, a mobile wallet, an exchange), the procedure is similar: just paste the correct MWEB address and allow the network to run the process. There might be some wallets which don’t recognize the privacy-friendly address format (especially the exchange ones). Don’t worry, though: you will just have to make two transactions. One to your full node wallet using a normal ltc1 address, and then a self-transfer from Litecoin Core which pegs your funds into MWEB.
If you own a large UTXO and you only want to peg in with a fraction of your coins, you should also enable the ”Custom change address” feature and paste another address from your wallet in the corresponding field. Then go to the ”Pay To” field and paste the MWEB address to which you’re gonna make the peg-in. Next up, choose the amount you want to send to the privacy-friendly address. As for the transaction fee, 0.0001 LTC per kilobyte (1 litoshi per vbyte) should get you into the next block. Just to be sure, check the network fees on a blockchain explorer such as explorer.litecoin.net.
The next step is to click ”Send”, double check that the destination address, the amounts and the fees are correct, and then confirm the broadcasting of your transaction. Keep in mind that these Litecoin transactions are irreversible unlike Bitcoin, which has RBF to allow you to broadcast the same transaction with a different fee to make it return to your wallet before the first block confirmation, everything is final after you press the ”Send” button.
On mobile, the situation is even more simple: all you have to do is to tap on the ”Receive” button at the bottom of the user interface and toggle the switch that lets you change the ltc1 address for one that starts with ltcmweb1. If you’re going to send your own mainchain coins to MWEB, then copy this newly-generated address and then navigate to the ”Send” menu. Here, you will have to paste the address and type the amount that you want to send.
In the version of Newborn (LiteWallet prototype) that I’ve been testing, there is no option to do coin control (pick which UTXO you want to use for your transaction). But you can use fractions of your balance… and ideally, you should consider moving all the coins that you’re willing to spend to MWEB. The privacy benefits are great even if your transactions pegs out of the extension block, as there is no clear record of your coins’ provenance.
Interestingly, this MWEB mobile wallet is not entirely SPV — meaning that you don’t rely on somebody else’s Electrum server, as is usually the case with light clients. Instead, your phone downloads block filters to enable self verification and much better privacy. It’s almost as good as a portable personal node, with the added benefit that you can also point the mobile wallet to your own node for the purpose of faster synchronization. With this new approach to mobile wallets, Litecoin is making some serious structural improvements that are worthy of praise.
In Electrum LTC, you can create a new wallet which only generates MWEB addresses. It’s great because it’s a light wallet (meaning that you don’t need to sync a full node) and it works on both Windows and MacOS (with a Linux port on the way). In version 4.3.2, which was developed by Hector Chu and which I was able to test the next day after release, the way to create a new MWEB wallet is to follow this path: ”File -> New/Restore -> Name your wallet -> Standard Wallet -> Create a new MWEB seed -> (write down your 12 words) -> (verify your 12 words) -> (set up a passphrase to unlock the wallet file) -> Finally use your wallet!”.
The Electrum interface is very simple: you have a “History” tab which shows you all transactions, a “Send” tab that lets you broadcast transactions to any Litecoin user, and a “Receive” tab where you can generate new payment addresses that you can even set up to expire after a certain amount of time. If you’re going to transact between your phone and your computer, or you want to recover your LiteWallet funds on your laptop, Electrum is the best way. Unfortunately, Litecoin Core does not support the BIP39 standard to let you recover funds with the seed phrase consisting of 12 words — but Electrum works just fine.
If you want to recover your LiteWallet MWEB funds in Electrum LTC, then follow this path: File -> New/Restore -> Name your wallet -> Standard wallet -> I already have a seed -> (type your 12 words and make sure you make use of the predictive input) -> Click the “Options” button and choose “BIP39 seed” -> MWEB -> Enjoy using your funds on desktop!
At the time of writing this article, MWEB is in the early stages of being integrated into hardware wallets such as Ledger Nano S and Trezor One. There are also rumors that Cake Wallet, the most privacy-friendly multi-coin wallet out there, is planning to support MWEB — which would be super cool, as users could swap LTC for XMR (and vice versa) with great privacy. Most of the groundwork has already been built by MWEB architect David Burkett, Litecoin Core devs such as (Loshan, Hector Chu, and Ultragtx), as well as the LiteWallet team of developers (Kerry Washington, Ivan Ferenčak, Josi Kie, Gean Martinez, and Charlie Lee).
So now that you know what MWEB is and how you can use it, it’s time to go to the Moon! Arise, chikun!
As a global organisation we’re always looking for smart and enthusiastic people to join the Foundation. If that’s you, then please fill in the form below and we’ll get back to you ASAP.
As a not-for-profit organization, the Litecoin Foundation relies on the generosity of the community. Any and all donations to help further the development and advancement of Litecoin are greatly appreciated!