S14 E7: Martin Habovštiak on Firefish & Rust Bitcoin Development

Martin Habovštiak is one of the most prolific Slovakian Bitcoin developers. Better known as Kixunil, he currently maintains the Rust Bitcoin repository on GitHub and made plenty of significant contributions to projects such as Electrum, Mempool.space, Wasabi wallet, BTCPay Server, and Lightning Dev Kit. Martin is also the creator of channel factories on the Lightning network. And when I interviewed him during Pizza Day 2023 at Paralelni Polis, he had just completed coding work on Firefish: a multisig system which enables a trust-minimized way of borrowing fiat money against your bitcoin (with no institution in the middle that can steal).

During this conversation with Martin Habovštiak, we also covered topics such as the Slovakian branch of Paralelni Polis, the differences between C++ and Rust, to which extent non-financial Bitcoin transactions (Ordinals, STAMPs, Counterparty) are harmful, and how Bitcoin can scale and become more private.

Martin Habovštiak (Kixunil): Bitcoin Enthusiast and Rust Coder

Martin has been heavily involved in Bitcoin, contributing to projects like Rust libraries for Electrum Rust and BTC-based servers. Recently, he finished working for Firefish and is now exploring other opportunities. In the open-source realm, he’s contributing to the Rust Bitcoin library and maintains several other repositories.

Martin’s involvement with Rust Bitcoin began when he fixed a bug in Electrum Rust. He found Rust to be a well-suited language for Bitcoin applications due to its speed, ability to parse the entire blockchain, and security features. Now he’s a co-maintainer of the Electrum Bitcoin Rust (Electrs) repository and aims to improve the library’s API and reliability.

Paralelni Polis: A Symbol for the Czech and Slovak Bitcoin Community

Paralelni Polis started as a building in Prague, created by a collaboration of hackers and Czech artists. It served as a symbol for the community, where people discussed various topics like Bitcoin, liberty, 3D printing, and art. Inspired by this, Martin and others decided to create a similar space in Bratislava. However, the Slovakian branch has lost its drive during the pandemic.

Firefish: A New Approach to Bitcoin Loans

Martin discussed the concept of Firefish, a protocol similar to BlockFi but with key differences. Firefish is based on multisig on Bitcoin directly, distributing trust among multiple parties instead of relying on a single custodian. This provides better security as three people would need to collaborate to scam the fourth, making it harder for any one party to steal the funds.

Firefish is designed to be user-friendly and addresses the issue of stablecoins. It allows users to directly borrow fiat without the need for stablecoins. The protocol also incorporates time locking, meaning that borrowers cannot withdraw their funds until a certain time. This adds an additional layer of programmability to the contract.

The Debate: C++ vs Rust

The conversation shifted to the debate between C++ and Rust as programming languages. Martin Habovštiak believes that while other languages like Python, JavaScript, and Java offer security features, they are slower, which is not ideal for applications that require speed, such as Bitcoin. He emphasizes the importance of Bitcoin being written in a fast and secure language, which is why Rust was chosen for projects like Firefish.

Martin Habovštiak’s Contributions to Bitcoin Projects

Martin has contributed to BTC Pay and the Lightning Network Daemon, where he found and fixed bugs and improved configuration handling. He also worked on BTC RPC Explorer, where he implemented authentication mechanisms. He works on these projects because he needs them for his own projects and finds it rewarding to contribute.

Optimizing Bitcoin: Martin’s Suggestions

When asked about any optimizations or changes he would make to Bitcoin, Martin suggested removing the limitations on time tracking computation to prepare for a future hard fork. He also discussed a potential solution for bumping transactions without the need to prepare them in advance. This could be achieved through a soft fork, where the new nodes would only consider the subsidizing transaction valid if the original transaction is already confirmed in the same block.

Privacy Proposals for Bitcoin

Arbogast shared his thoughts on privacy proposals for the base layer of Bitcoin. He mentioned a proposal he has been working on to make channel factories more private, where the members of the channel factories wouldn’t know how much each other has. This proposal would require Patterson commitments and bullet proofs, but it could be more efficient and scalable compared to adding noise to the chain like in Monero.

The Impact of Non-Financial Transactions on Bitcoin

Arbogast believes that non-financial transactions, when the chain is not already full, are more harmful than helpful. However, he acknowledges that when the chain is full, having non-financial transactions that are easier to verify can be beneficial for the speed of verification.

The Importance of Bitcoin Fees

Martin argues that low fees cannot last forever and that high fees are necessary to incentivize miners to continue mining and secure the network. He compares the need for high fees to buying insurance before an event happens, emphasizing personal responsibility and choices.

Scaling Layers and Different Proposals

Martin expressed interest in drive chains but suggested exploring more secure alternatives first. He mentioned the Liquid federated sidechain but acknowledged that it is not widely used. He also explained the challenges of increasing block size in a secure way and highlighted the limitations of extension blocks.

Overcoming Barriers to Bitcoin

Martin emphasized that the cost of setting up and running a node is a significant obstacle for many individuals. He believes that the main focus should be on providing user-friendly Bitcoin software, educational programs, and resources to make it easier for people to participate in the network.

Time stamps:

Martin Habovštiak’s Work on Rust Bitcoin Library [00:02:01] Martin discusses his work on the Rust Bitcoin library and his contributions to fix bugs and improve the library.

The Story Behind Paralelni Polis [00:06:06] Martin explains the origins and purpose of Paralelni Polis, a collaborative community of hackers and artists aiming to improve society.

The Future of Paralelni Polis [00:09:22] Martin discusses the challenges faced by Paralelna Polis in Slovakia (Bratislava), including the impact of COVID-19 and the difficulty of restarting the community.

The security of multisig [00:12:00] Martin Habovštiak explains how the multisig feature in FireFish provides better security by requiring the collaboration of multiple parties.

Collaboration and trust in the contract [00:13:23] Martin discusses the challenges of trust and collaboration in the FireFish contract, particularly for borrowers and oracles.

Advantages of FireFish over traditional custodians [00:14:27] Martin highlights the main idea behind FireFish, which is to provide better security than traditional custodians by using multisig and avoiding stablecoins.

Bug discovery in Rust Bitcoin code [00:23:42] Martin Habovštiak talks about the imperfections of code reviews and the occasional bug discovery in Rust Bitcoin.

Bitcoin’s need for a fast and secure language [00:24:45] Exploration of why Bitcoin requires a fast and memory-safe language like Rust due to its large chain and the importance of synchronization speed and full node adoption.

Rust as the language of choice for portability and security [00:25:53] Explanation of why Rust is the preferred language for applications that require both portability and security, especially in the context of handling money in Bitcoin.

Transaction Bumping and Channel Factories 00:35:08 Discussion about the efficiency and limitations of transaction bumping and the use of channel factories in solving transaction fee uncertainty.

Subsidizing Transactions via Soft Fork 00:36:42 Exploration of the idea of creating a transaction that subsidizes another transaction without a direct link, potentially through a soft fork.

Privacy Proposals for Base Layer of Bitcoin 00:38:32 Discussion about a proposal to enhance privacy in channel factories by hiding the amounts transacted between participants and the comparison of different privacy approaches in Bitcoin.

The importance of high fees for Bitcoin’s survival [00:47:39] Martin Habovštiak explains that high fees are necessary for Bitcoin to survive and incentivize miners to secure the network.

Alternative scaling solutions and the risks involved [00:50:40] Vlad discusses different scaling solutions such as Drivechains and extension blocks, their potential benefits, and the associated risks.

Challenges and considerations with Extension Blocks [00:56:38] Martin Habovštiak delves into the implications and limitations of extension blocks, including their impact on privacy and the need for secure protocols.

The barrier for newbies [00:59:28] Martin discusses the barrier for newbies in interacting with Bitcoin and the misconception among developers that setting up Bitcoin software is easy.

Solving current problems [01:00:39] Martin talks about the need to solve current problems in Bitcoin, such as the lack of easy-to-use software, education programs, and storage optimization.

Motivation for working on Bitcoin [01:04:10] Martin Habovštiak shares his motivation for working on Bitcoin, which is liberty and the desire to prevent the recurrence of oppressive regimes like communism.

Vlad Costea

I'm here for the freedom, censorship-resistance, and unconfiscatability. What about you?

So, what do you think?

Follow Me