S16 E10: Eric Voskuil & John Carvalho on Bitcoin
The audio keeps playing while you browse the site.
Read the transcript81,945 words, every line links to the minute it was said
Ask this episode
This record-breaking episode of the Bitcoin Takeover podcast, whose running time exceeds 8 hours, features John Carvalho and Eric Voskuil discussing the state of Bitcoin. They express disillusionment with its current trajectory, lamenting the focus on speculation and its limitations as a mainstream currency. They delve into the history of Bitcoin maximalism, contrasting its initial focus on technological superiority with the current emphasis on dismissing all other cryptocurrencies as scams.
A significant portion of the conversation revolves around the intricacies of monetary theory, including inflation, the Cantillon effect, and the role of custodians in tokenized assets. Carvalho argues against the common Bitcoin maximalist view that monetary inflation is inherently linked to price inflation, emphasizing the importance of monopoly control in driving price inflation.
He also explains why increasing the block size doesn’t solve Bitcoin’s scaling issues and advocates for a multi-chain ecosystem. The discussion touches upon alternative scaling solutions like Lightning Network and sidechains, with Carvalho expressing skepticism about their effectiveness and centralization tendencies. The hosts also discuss the importance of a stateless money, the limitations of tokens and stablecoins, and the challenges of achieving true privacy in Bitcoin transactions.
Finally, they touch upon the risks associated with hardware wallets, using the Ledger hack as a case study. Throughout the conversation, Carvalho emphasizes the importance of understanding fundamental economic principles and criticizes the Bitcoin community for often overlooking these nuances.
You can listen to this interview with Eric Voskuil & John Carvalho on YouTube, X, Spotify, Apple Podcasts, and this native player (most privacy-friendly)
Topics Discussed with Eric Voskuil and John Carvalho:
Introduction and Sponsors – 00:00:50
This episode of the Bitcoin Takeover podcast (season 16, episode 10) features guests John Carvalho and Eric Voskuil. The episode is sponsored by Sideshift, Citrea, Bitcoin.com News, Layer Two Labs, NoOnes, and HODLING.ch
State of Bitcoin – 00:01:17
John Carvalho and Eric Voskuil express disillusionment with Bitcoin’s current state, criticizing its focus on speculation and limitations as a mainstream currency. They discuss the shift in Bitcoin maximalism from technological superiority to dismissing other cryptocurrencies. Carvalho challenges the link between monetary and price inflation, highlighting monopoly control’s role in the latter. He advocates for a multi-chain ecosystem, expressing skepticism about scaling solutions like Lightning Network and sidechains due to centralization tendencies. The discussion also covers stateless money, limitations of tokens and stablecoins, privacy challenges, and hardware wallet risks (using the Ledger hack as an example). Carvalho emphasizes the importance of understanding fundamental economic principles, critiquing the Bitcoin community for neglecting them.
Bitcoin Maximalism – 00:01:32
The speakers discuss Bitcoin’s current state, expressing concern over its mainstream adoption being driven by speculation rather than its intended purpose. They lament that Bitcoin, initially conceived as anti-government, is now being embraced by governments, citing El Salvador as an example. They also argue that the primary motivation for most Bitcoin users seems to be profit-driven speculation, resembling a Ponzi scheme.
Bitcoin as a Ponzi Scheme – 00:02:27
The provided text discusses the evolution of Bitcoin maximalism from a belief in Bitcoin’s technological superiority to a stance of dismissing other cryptocurrencies as scams. It mentions Chris D Rose’s early, and somewhat accurate, predictions about Bitcoin’s trajectory and his involvement with Counterparty, a platform aiming to replicate Ethereum’s functionality on Bitcoin. This reflects the early maximalist view that Bitcoin could encompass all functionalities of other cryptocurrencies. The text also highlights the current state of Bitcoin maximalism, characterized by downplaying scaling issues and focusing on metrics like user count and transaction volume, rather than addressing fundamental technological limitations.
Transaction Fees – 00:04:57
While Bitcoin’s transaction fees are currently low (around $0.30), compared to Tron’s ($2-$6), the speakers highlight that Bitcoin’s fees become prohibitive with increased volume, especially for token transactions. This makes issuing and managing tokens on Bitcoin impractical.
History of Bitcoin Tokens (Omni, Counterparty, Mastercoin) – 00:05:53
John Carvalho and Eric Voskuil discuss early Bitcoin token platforms like Omni, Counterparty, and Mastercoin. Carvalho recalls Omni’s simplicity, using Bitcoin transactions and op_returns for token functionality. He contrasts this with Counterparty, which, unlike Omni, required its own token to name assets, otherwise resulting in randomly named assets. Although Omni predates Counterparty and Mastercoin, it was later abandoned in favor of altcoins before interest in Bitcoin-based tokens resurfaced.
Definition of Tokens – 00:08:01
John Carvalho expresses a lack of interest and knowledge about tokens, viewing them as pointless. He defines them as non-Bitcoin assets issued on a blockchain. He recalls briefly exploring colored coins in 2013 but quickly dismissed the concept due to its perceived lack of security provided by the Bitcoin model.
Custodial Problems with Tokens – 00:09:12
Custodians introduce a critical vulnerability into any system, especially monetary systems. Using historical examples like silver and gold certificates, the speaker explains how these instruments represent a promise backed by a custodian (e.g., the US government). The value of these certificates hinges on the custodian’s fidelity, as demonstrated by the gold standard’s failure. The inherent weakness lies in the custodian’s potential to default, rendering the certificates worthless. Bitcoin, unlike certificates, is considered actual money because it doesn’t represent another asset. The US dollar, while not backed by a physical commodity, also functions as money due to government enforcement and taxation.
Bitcoin and Fiat Money – 00:11:09
John Carvalho argues that both Bitcoin and fiat currencies are fundamentally fiat money because their value isn’t tied to a physical commodity or promise but relies on social consensus. He emphasizes that true money doesn’t require a custodian, unlike tokenized assets which introduce a central point of failure. Carvalho uses examples like tokenized gold, concert tickets, and land deeds to illustrate how custodians remain the weak link, retaining the power to invalidate ownership regardless of blockchain records. He concludes that tokenization on the blockchain offers a false sense of security and doesn’t solve real-world problems of trust and efficiency.
Why Bitcoiners Talk About Money – 00:15:49
Bitcoiners’ focus on money is often questioned. While they emphasize its qualities as a medium of exchange, unit of account, and store of value, its limitations in scalability and its use primarily as a speculative asset raise concerns. Their interest in defining money seems to stem from a desire to portray Bitcoin as inevitable and superior, rather than focusing on its practical utility in commerce. The emphasis on theoretical monetary properties contrasts with the reality of Bitcoin’s current usage, which is primarily speculative. This raises the question of whether the focus should shift towards more practical applications and addressing scalability issues rather than abstract monetary discussions.
Stateless Money – 00:17:44
John Carvalho views Bitcoin primarily as stateless money. He believes this is Bitcoin’s fundamental purpose, overshadowing other potential uses. Carvalho’s perspective on money is rooted in his libertarian and anarchist background. He emphasizes that money’s core function is as a medium of exchange, solving the “coincidence of wants” problem. While acknowledging the academic classifications of money (store of value, unit of account, medium of exchange), he prioritizes the medium of exchange function as the fundamental reason for money’s existence and evolution.
Austrian Economics and Bitcoin – 00:21:01
John Carvalho discusses the Austrian School of economics and its influence on Bitcoiners. He explains that many early Bitcoin adopters, identifying as libertarians, were drawn to Austrian economics, particularly the concept of subjective value. Carvalho points out that the school’s name derives from its origin in Austria, not from any inherent Austrian quality.
He mentions Carl Menger and Eugen von Böhm-Bawerk as key figures in developing the subjective theory of value. Carvalho criticizes Ludwig von Mises for his overly critical stance on state money, arguing that while state money can be problematic due to its inflationary nature, Mises’ critique goes too far by denying its status as money altogether.
He contrasts Mises with Murray Rothbard, whose work “Man, Economy, and State” offers a more nuanced perspective on state money. Carvalho notes that many Bitcoiners misinterpret or misapply Austrian economic principles, particularly those concerning inflation. He clarifies that monetary inflation, the creation of new money, is not inherently linked to price inflation, the decrease in purchasing power. He emphasizes that monopoly control is a key driver of price inflation.
Monetary Inflation vs. Price Inflation – 00:26:01
John Carvalho argues against the common Bitcoin maximalist view that monetary inflation (increasing the quantity of money) necessarily leads to price inflation (decreasing purchasing power of money). He points out that while this is a common belief, it’s not always true. He uses the example of gold, which has seen continuous monetary inflation through mining but hasn’t experienced persistent price inflation.
Carvalho criticizes those who conflate the two concepts without understanding the underlying economic principles, suggesting they are motivated by a desire to denigrate money rather than a sound understanding of economics. He emphasizes the importance of supply and demand in determining price and highlights the role of monopoly control in driving price inflation, rather than simply monetary inflation itself.
Cantillon Effect – 00:29:00
John Carvalho discusses the Cantillon Effect, explaining that it’s often misrepresented by Bitcoin maximalists. Cantillon originally observed this effect in the context of gold mining controlled by a king with a monopoly. This king could set prices arbitrarily high, benefiting disproportionately from the newly created money. Carvalho emphasizes that Cantillon wasn’t describing a free market, but rather one under monopoly control. He argues that in a competitive market, the production of money at market price doesn’t cause price inflation. Instead, competition drives prices down to the cost of production, including capital costs. He criticizes Bitcoiners for misunderstanding this concept, believing that monetary inflation inherently leads to price inflation, without considering the role of monopolies and market competition.
Dollar Inflation and Gold – 00:33:59
John Carvalho argues that dollars backed by gold under a trustworthy custodian and produced in a free market are not inflationary. He points out that the US dollar historically had low inflation, though some existed due to custodial issues. Decoupling gold from the dollar allowed for printing, leading to price inflation not because of printing itself, but because of the monopoly on money production by the state.
If everyone could print dollars, they would be produced at market cost, eliminating inflation. He uses the example of Vietnam’s Dong to illustrate how overprinting leads to the devaluation of currency. State money is inflationary due to anti-counterfeit laws and the state’s monopoly, allowing for seigniorage (profit from minting/printing). This monopoly control, not production itself, drives price inflation. Bitcoin, like gold, is produced at market price.
While Bitcoin has a constant production rate, its difficulty adjusts based on demand, keeping its price close to production cost. Unlike gold, where quantity varies, Bitcoin’s cost of production varies, but both respond to supply and demand. Carvalho criticizes the misunderstanding in the Bitcoin community that money production is inherently inflationary, arguing against the idea that producing other currencies would lead to infinite inflation.
Misunderstandings in the Bitcoin Community – 00:41:42
John Carvalho observes that many Bitcoiners base their understanding of economics on limited reading, leading to misinterpretations and wasted time. He points out the misunderstanding of the Bitcoin subsidy, which, while technically a form of monetary inflation, isn’t a subsidy in the traditional sense as it’s paid for at market rate. Carvalho highlights the community’s tendency to get caught up in semantics, using the “subsidy” example to illustrate how specific word choices can lead to unproductive arguments and hinder progress. He criticizes the Bitcoin community’s frequent dismissal of valid arguments as mere semantics, especially when discussing fundamental economic principles like supply and demand.
Bitcoin Semantics – 00:43:21
John Carvalho discusses the semantics of Bitcoin and monetary theory, emphasizing the subjective nature of supply and demand. He argues against the common misconception that monetary inflation directly causes price inflation, highlighting the role of monopoly control and distribution. Carvalho explains that “supply” isn’t simply a quantity but represents the seller’s subjective value, while “demand” reflects the buyer’s subjective value. He points out that Bitcoin, like fiat currency, has no intrinsic value but carries a production cost, making it a unique form of money. Carvalho criticizes the simplification of economic principles within the Bitcoin community, particularly the misunderstanding of supply and demand’s influence on price.
Bitcoin Divisibility – 01:00:13
John Carvalho discusses Bitcoin’s divisibility, arguing against the common belief that it’s infinitely divisible. He contends that increasing divisibility would require adding more units, effectively causing monetary inflation. Even if distributed evenly, the implementation of such an increase would determine its impact. Carvalho questions the need for further Bitcoin division, particularly given its current structure with 2.1 quadrillion units. He challenges the idea of simply adding decimal places, suggesting that increasing the quantity of units would be more accurate, but raises concerns about the economic implications of such a change, especially if achieved through mining or multiplying existing balances. He uses this point to further his argument against the conflation of monetary inflation with price inflation.
Bitcoin Deflation – 01:03:41
John Carvalho discusses the deflationary nature of Bitcoin, contrasting it with gold. Unlike gold, Bitcoin’s fixed supply means no more can be produced, even if the price rises. He explains that increasing demand with a fixed supply theoretically leads to price deflation (increasing value) of the currency. This aligns with the Bitcoin maximalist view that holding Bitcoin will lead to wealth, as demand increases and supply remains capped.
However, Carvalho challenges this view, arguing that the assumption of Bitcoin being the sole universal currency is flawed. He questions the source of this theoretical wealth generation and emphasizes that this single-currency scenario is unlikely. He points out that Bitcoin’s initial price increase from zero doesn’t validate the theory of infinite price appreciation.
Maxi Price and One Coin Assumption – 01:07:43
John Carvalho challenges the “maxi” assumption that Bitcoin’s limited supply and rising demand will inevitably lead to a constantly rising price. He argues this assumption ignores the reality of competing currencies, primarily government-issued money, and the negative feedback loop of rising fees as demand increases. Carvalho points out that as Bitcoin transaction fees rise, making it unusable for certain transactions, demand overflows into other cryptocurrencies like Litecoin. He suggests that a multi-chain ecosystem is inevitable, where different blockchains serve different needs and price levels, and that attempting to force all cryptocurrency demand onto Bitcoin is unrealistic and ultimately limits its potential.
This overflow of demand, he argues, is a natural market mechanism that prevents any single cryptocurrency from becoming cost-prohibitive for all use cases. He dismisses the idea that an infinite number of Bitcoin-like chains would render them worthless, emphasizing that value is tied to production cost and demand. Carvalho also criticizes the maximalist view that monetary inflation necessarily leads to price inflation, highlighting the role of monopolies in driving price increases.
Competition Between Monies – 01:13:42
John Carvalho argues that different monies compete with each other based on economic principles. When a money becomes too expensive to use, people will move to alternatives. He uses the example of Bitcoin’s high fees driving users to other cryptocurrencies like Litecoin. Carvalho points out that various forms of money, including gold, dollars, and even stablecoins, compete with Bitcoin depending on individual needs and circumstances.
He emphasizes that Bitcoin’s primary value proposition lies in its ability to circumvent state controls, which is particularly relevant for people in countries with restrictive monetary policies or unstable governments. While acknowledging that speculation exists in all monetary systems, Carvalho focuses on the fundamental properties of money and how they compete to serve different purposes. He uses this competitive dynamic to explain why solutions like Liquid, which he views as a separate altcoin rather than a scaling solution for Bitcoin, do not address Bitcoin’s core value proposition of permissionless money.
Scaling Bitcoin – 01:22:41
The provided transcript excerpt doesn’t directly discuss technical solutions for scaling Bitcoin. Instead, it focuses on the socio-economic factors surrounding banking and monetary systems in developing countries, using examples from Zimbabwe to illustrate how state control and manipulation impact people’s financial decisions. This context is used to argue against the idea that Bitcoin’s primary value proposition is providing banking services to the unbanked, suggesting that the problem is not a lack of access to banks but rather a lack of trust in state-controlled financial institutions.
Bitcoin for the Unbanked – 01:26:14
While Bitcoin can be a lifeline for people facing oppressive currency controls and inflation, its current focus on speculation and scaling limitations hinder its potential as a currency for the unbanked. John Carvalho argues that the focus should be on understanding the real costs associated with using Bitcoin, such as transaction fees, node operation costs, and privacy implications. He suggests that instead of trying to maximize throughput on a single chain, a multi-chain ecosystem might better serve diverse user needs. If Bitcoin becomes too expensive, users will simply switch to alternative chains, negating the efforts to maximize throughput on the main chain. He criticizes the Bitcoin development community for not considering these economic realities and for dismissing alternative solutions.
Maximizing Throughput – 01:36:11
John Carvalho argues that increasing the block size is not a sustainable solution for Bitcoin’s scalability issues. He points out that while a block size increase might temporarily alleviate fee pressure, it ultimately delays the development of faster nodes and doesn’t address the underlying problem. He cites the example of Bitcoin’s block size increasing from one to four megabytes, which only briefly reduced fees before they rose again.
Carvalho believes that layering solutions like the Lightning Network, while legitimate, haven’t gained significant traction and involve trade-offs in security and complexity. He advocates for a multi-chain ecosystem as a more effective approach to scaling, suggesting that different chains with similar rules to Bitcoin but varying mining algorithms could be a viable solution. He questions why, given the ongoing efforts in layering solutions, more energy hasn’t been directed towards developing a multi-chain ecosystem. Carvalho also expresses his view that changes to Bitcoin should be market-driven rather than dictated by engineers.
Right to Fork – 01:45:45
Carvalho asserts the right of users to fork Bitcoin if they disagree with its direction. He emphasizes that every new rule effectively creates a new coin, whether it’s a soft fork or a hard fork. He uses examples like Taproot, SegWit, and Bitcoin Cash to illustrate how forks create new chains with potentially different rules and values. Carvalho clarifies that soft forks are not backward compatible in the true sense, as they rely on miner censorship to enforce the new rules on those who haven’t upgraded.
He highlights his own project’s approach, which allows users to configure and run different Bitcoin versions with different rule sets, ensuring autonomy and avoiding imposed upgrades. He explains how his project allows users to enable or disable specific forks, even those implemented by Satoshi without explicit announcements, and to run various test networks. This approach, he argues, provides true user autonomy and allows for experimentation with different rules and chains without forcing upgrades or compromising security by running outdated software.
Running Old Bitcoin Versions – 01:51:35
John Carvalho discusses the importance of maintaining and understanding Bitcoin’s history through its forks. He points out that simply turning off forks doesn’t address the need to preserve the historical context of changes. He emphasizes the value of documenting each change, even minor ones, to understand their impact and potential unintended consequences. Carvalho uses examples like BIP 34, BIP 30, and BIP 90 to illustrate how seemingly simple changes can introduce unforeseen issues and require subsequent patches or reversals.
He highlights the complexity of these changes and criticizes the lack of thorough documentation by Bitcoin Core. The conversation then shifts to the broader topic of Bitcoin’s role as money and the trend towards centralized solutions like Lightning Network and custodial services, raising questions about the future direction of Bitcoin and its potential to replace traditional credit-based systems.
Bitcoin as Money vs. Credit – 01:56:26
John Carvalho discusses the distinction between money and credit, arguing that Bitcoin is fundamentally money. He explains that credit involves settlement, risk, time, and cost, while money, being final, does not. Carvalho uses the example of Lightning Network, categorizing it as a “money certificate” similar to the dollar representing gold. He points out that while Lightning transactions represent on-chain transactions, they are not money until settled, thus functioning as a form of credit.
He further clarifies that unconfirmed Bitcoin transactions also represent a form of credit extended by the vendor to the buyer. Carvalho emphasizes that the settlement terms of a transaction, whether it’s a Bitcoin transaction or a traditional purchase, are defined by the agreement between the parties involved. He concludes that understanding these fundamental economic principles is crucial for the Bitcoin community.
Settlement in Bitcoin – 02:07:45
The discussion explores the concept of settlement in Bitcoin, particularly in the context of everyday transactions. It examines the social implications of unconfirmed transactions, drawing parallels with traditional payment methods like checks and credit cards. The conversation highlights the complexities of chargebacks and reversals, emphasizing the implicit contracts that underpin most transactions. Lightning Network is discussed as a potential scaling solution, but its centralization tendencies and inherent vulnerabilities are also acknowledged.
The hosts question the suitability of Bitcoin for everyday purchases due to its limitations in handling credit and the need for trust. They propose the idea of a peer-to-peer credit system integrated with a variable settlement system as a potential alternative, but also acknowledge the challenges in implementing such a system due to the inherent nature of credit and trust.
Peer-to-Peer Credit Systems – 02:14:47
John Carvalho proposes a peer-to-peer credit system based on individual ledgers rather than a central authority like Bitcoin or Lightning Network. Users extend credit to each other, creating a network of IOUs tracked on their respective ledgers. This system allows for routing credit through social connections, with occasional settlement in an underlying asset when necessary. Carvalho contrasts this with Bitcoin’s trustless model, arguing that credit inherently involves risk and cannot be guaranteed cryptographically.
He critiques the concept of “risk-free return” and “full reserve lending,” emphasizing that lending always involves fractional reserves and the possibility of default. He uses the example of a Bitcoin covenant guaranteeing loan repayment to illustrate how such schemes lead to an imputed value of zero for the loan. Carvalho cites Rothbard’s distinction between banking (custody) and lending to clarify the misconceptions surrounding fractional reserve banking.
Fractional Reserve Banking – 02:26:32
The speakers discuss the necessity of lending and credit in any economy, including one based on Bitcoin. They argue that a system of trust and reputation, potentially decentralized and peer-to-peer like OpenBazaar, is essential for lending to function. This system would need to incorporate risk assessment and conflict resolution mechanisms. They contrast this with the trustless ideal often associated with Bitcoin and Lightning Network, highlighting that Lightning, while aiming for trustless transactions, functions more like a money certificate with limited security. The conversation touches upon the challenges of creating a truly decentralized and anonymous marketplace, referencing Silk Road and OpenBazaar, and explores alternative systems for digital commerce and peer-to-peer lending.
Bitkit Wallet and Spending vs. Saving – 02:36:13
John Carvalho and Eric Voskuil discuss Bitkit, a mobile wallet supporting on-chain Bitcoin (“savings”) and Lightning Network (“spending”). Transferring between them requires configuring a Lightning Channel. They debate the technical differences and trade-offs compared to atomic swaps with other cryptocurrencies like Litecoin, highlighting the complexities of price agreements, liquidity, and limited real-world acceptance of altcoins. Carvalho argues that increasing the block size doesn’t solve scaling issues due to security trade-offs and advocates for a multi-chain Bitcoin ecosystem where different chains compete and scale horizontally, rather than vertically on a single chain. He emphasizes the importance of maintaining Bitcoin’s core principles of permissionless operation and user privacy, regardless of the specific chain implementation.
Block size increases and Bitcoin adoption – 03:00:00
John Carvalho argues that simply increasing the block size is not a viable long-term scaling solution for Bitcoin. He believes that if Bitcoin adoption reaches a certain threshold, continually increasing the block size will ultimately fail. He questions the need to scale for hypothetical future adoption when current usage isn’t fully supported. He suggests that focusing solely on block size increases will eventually exclude users due to transaction costs.
Scaling Bitcoin and transaction validation – 03:01:00
Scaling Bitcoin is problematic because validating transactions requires checking the entire blockchain history, which becomes increasingly cumbersome over time. Simply increasing the block size isn’t a viable long-term solution. Sharding the data is suggested as a potential way to address this issue.
Bitcoin overflowing into Litecoin and quantum resistance – 03:02:00
Carvalho discusses a hypothetical scenario where Bitcoin becomes too expensive for everyday transactions, leading users to migrate to a more practical alternative like Litecoin. This shift, potentially driven by factors like the need for quantum resistance, would render Bitcoin’s transaction history less relevant, allowing for significant pruning of the blockchain data. This pruning would effectively archive the old Bitcoin blockchain, making it unnecessary for most users to download and validate, except perhaps for those still holding small amounts of Bitcoin.
Pruning historical data and exchange price – 03:03:00
John Carvalho discusses how Bitcoin’s naturally occurring usage patterns address concerns about scaling and exchange price. He argues that atomic swaps, where users determine their Bitcoin’s value during transactions, negate the need for continuous block size increases. This organic process allows for pruning historical data and facilitates a multi-chain ecosystem using a single Bitcoin binary. He contrasts this with the complexity and centralization tendencies of solutions like the Lightning Network.
Lightning system complexity and Bitcoin’s value proposition – 03:05:00
Carvalho and Voskuil discuss the complexities of the Lightning Network, highlighting the technical challenges involved in maintaining watchtowers and managing exit problems. They also address the tension between Bitcoin’s value proposition as a speculative asset versus its potential as a utility. Carvalho argues that while the “number go up” aspect drives much of the interest in Bitcoin, its utility and demand are crucial for its security and long-term viability.
He suggests that if demand exceeds Bitcoin’s current capacity, alternative solutions like a block size increase, other coins, or the Lightning Network become necessary. However, he expresses skepticism about these solutions, particularly the Lightning Network, due to its complexity and potential for centralization. He emphasizes the importance of balancing Bitcoin’s speculative appeal with its practical use cases and exploring alternative scaling solutions if demand continues to grow.
Bitcoin as an investment and speculation – 03:07:00
John Carvalho explicitly states he doesn’t view Bitcoin as an investment or speculative vehicle. He entered the Bitcoin space driven by interest in its potential uses rather than financial gain. He has never promoted Bitcoin as a get-rich-quick scheme and believes that focusing on price speculation is irrational from an economic perspective. His primary concern is Bitcoin’s security and widespread adoption as a usable currency, not its potential for generating wealth.
Optimizing Bitcoin throughput and developer motivations – 03:09:00
Some Bitcoin developers are focused on optimizing Bitcoin’s throughput, while others prioritize enforcing specific dynamics. There’s a suspicion that developers focused on throughput are motivated by personal gain (pumping their own bags), exemplified by Adam Back’s perceived shift towards speculation. While individuals are free to pursue their own interests, undisclosed conflicts of interest, like owning Bitcoin, can lead to suboptimal decisions for the network. This raises concerns about the motivations behind certain technical arguments, especially when financial incentives aren’t transparent.
Scaling Bitcoin and speculation – 03:11:00
John Carvalho argues that focusing on scaling Bitcoin, specifically BTC, primarily serves speculative interests. He believes that efforts to keep Bitcoin as the dominant cryptocurrency are driven by the desire to increase its value, rather than genuine technological improvement. He contends there’s no real difference between scaling BTC and promoting speculation, as the limitations of BTC’s scalability make these efforts primarily about maintaining its dominance and price appreciation.
Shitcoins, scams, and Bitcoin’s security model – 03:13:00
John Carvalho asserts that the narrative of Bitcoin maximalists protecting people from scams is no longer valid, arguing that those involved in altcoins are speculators, not uninformed victims. He criticizes the maximalist tendency to label anything other than Bitcoin as a “shitcoin,” regardless of its technological merits. Carvalho’s definition of a shitcoin centers on projects that falsely claim Bitcoin’s security model without possessing it, citing proof-of-stake Ethereum as an example. He emphasizes the importance of individual responsibility in investment decisions.
Litecoin’s extension blocks and Mimblewimble – 03:15:00
Litecoin has implemented extension blocks using Mimblewimble, a privacy-focused technology that also improves scalability by pruning old transactions. These extension blocks allow for increased block size via soft forks without affecting the base layer. They also address some miner incentive issues by allowing miners to collect transaction fees on the extension blocks. Mimblewimble is being merged with Dogecoin. The speaker expresses surprise that this scaling solution isn’t a bigger topic in Bitcoin, suggesting it could be added with a soft fork. John Carvalho clarifies that his prior comments on Litecoin predate his awareness of Mimblewimble and that he uses Litecoin as a general example of alternative Bitcoin implementations.
Bitcoin’s security and the legitimacy of altcoins – 03:17:00
The speakers discuss the argument that Bitcoin’s security and legitimacy come from being the first cryptocurrency. They find this argument disingenuous, emphasizing individual financial sovereignty. They believe people should be free to use their money as they choose, including mining or spending alternative cryptocurrencies. The discussion touches upon the evolution of the cryptocurrency landscape, from the early, more experimental days of altcoins like Litecoin to the rise of exploitative ICOs and the current, more normalized meme coin market. They acknowledge that while scams still exist, many participants understand the risks and are essentially gambling on price movements. Ultimately, they express indifference towards altcoins, emphasizing their focus on Bitcoin.
Shitcoins and Bitcoin’s essential aspects – 03:19:00
John Carvalho discusses the distinction between genuine scams and projects that may simply be ill-conceived or based on flawed understandings of Bitcoin’s security model. He labels those that falsely represent themselves as Bitcoin as “shitcoins.” He acknowledges the theoretical possibility of numerous legitimate Bitcoin implementations, even with the same genesis block and rules. Carvalho criticizes the maximalist view that all altcoins are scams, emphasizing individual freedom to create and trade coins. He argues that forking and using one’s hash rate for other projects is a legitimate right, not an attack on Bitcoin.
Majority hash power censorship and attacks – 03:21:00
John Carvalho argues that “majority hash power censorship” is a more accurate term than “51% attack” when referring to actions like soft fork enforcement. He distinguishes between censorship (choosing which transactions to include in blocks) and theft (using hash power to reverse a transaction after receiving goods). Carvalho believes no miner is obligated to mine specific transactions and that all miners inherently censor by selectively choosing transactions due to practical limitations. He emphasizes the right to create or split off into a new coin, viewing it as a fundamental aspect of Bitcoin’s design, despite potential social implications and speculative behavior it might encourage.
Bitcoin speculation and market dynamics – 03:23:00
John Carvalho expresses concern over Bitcoin’s current state, dominated by speculation. While acknowledging speculation is a common practice, he argues it’s a zero-sum game, distinct from productive investments. He emphasizes that money itself doesn’t produce yield and cautions against conflating it with investment. Carvalho criticizes the focus on price over technological advancement and expresses disappointment in those prioritizing short-term gains over Bitcoin’s original value proposition. He believes this speculative focus is detrimental to Bitcoin’s long-term success.
Michael Saylor’s Bitcoin strategy and MicroStrategy’s history – 03:26:00
Michael Saylor’s strategy involves leveraging MicroStrategy’s resources to invest heavily in Bitcoin. He’s known for his speculative approach, with MicroStrategy’s history marked by periods of significant losses and gains. His current Bitcoin strategy involves borrowing money at low rates and using it to acquire Bitcoin, essentially betting on its price appreciation. This approach is compared to arbitrage against the Federal Reserve, exploiting the difference between low borrowing rates and potential Bitcoin returns. While this strategy could yield substantial profits, it also carries significant risk, especially given Bitcoin’s volatility. The speaker expresses concern that Saylor’s aggressive approach might create instability in the market and make him a target for unforeseen consequences.
Saylor’s Bitcoin investment and market manipulation – 03:29:00
The provided transcript excerpt discusses Michael Saylor’s Bitcoin investment strategy and the potential for market manipulation. The speaker expresses concern about Saylor’s use of loans to purchase Bitcoin while simultaneously having Bitcoiners invest in his company’s stock. This is likened to “winding up a toy for it to explode,” suggesting an unsustainable system. While unable to pinpoint the exact issue, the speaker suspects an impending implosion. The discussion then shifts to interest rate arbitrage, comparing Saylor’s approach to traditional banking practices.
It notes that Saylor’s strategy is more complex than simple arbitrage due to the fluctuating price of Bitcoin and his company’s stock. The analogy of banks borrowing from the Federal Reserve at low rates and lending at higher rates is used to illustrate the concept of arbitrage, but it’s acknowledged that Saylor’s situation is not directly comparable. The core concern remains the potential instability of Saylor’s strategy.
Saylor’s stock sales and Bitcoin’s future – 03:31:00
The provided transcript discusses Michael Saylor’s actions regarding MicroStrategy stock and Bitcoin. It highlights the seeming contradiction between Saylor’s public pronouncements of never selling Bitcoin and his actual behavior, including selling MicroStrategy stock. The speakers express skepticism about Saylor’s actions and the potential hypocrisy of Bitcoin maximalists who cheered for Saylor when the price was rising but may now criticize him. They also discuss the potential impact of Saylor’s actions on Bitcoin’s future, acknowledging the potential benefits of increased development money and security interest but cautioning against losing sight of the end goal of Bitcoin beyond mere price speculation.
Blockstream’s accomplishments and the Chia project – 03:33:00
John Carvalho expresses disappointment with Blockstream, despite initially having high hopes for the company. He questions the use of resources and points to the development of federated sidechains and a slow block explorer as examples of Blockstream’s shortcomings. He contrasts this with their initial promise and the significant capital they attracted. Carvalho also mentions a conspiracy theory surrounding Blockstream, acknowledging he’s not alone in his skepticism.
Blockstream’s influence and SegWit – 03:35:00
While Blockstream developers contributed to SegWit, it wasn’t solely a Blockstream accomplishment. The Bitcoin community, including developers who’d built reputations before Blockstream, played a crucial role. It’s suggested SegWit or something similar might have happened without Blockstream. However, Blockstream does exert influence, sometimes blocking other proposals. Adam Back’s intervention in the “Cult of the Covenant” Telegram chat regarding CTV is cited as an example of Blockstream’s influence.
Adam Back’s influence and Blockstream’s hype – 03:37:00
While Adam Back is viewed as level-headed and technically proficient, his perceived influence and the “excessive pumping” around Blockstream are criticized. The discussion highlights concerns about Blockstream’s potential to stifle innovation and control development, citing the CTV incident as a suspicious coordinated attack against Jeremy Rubin. The speakers emphasize the importance of independent centers of expertise outside of Blockstream and Core, advocating for a more open and resilient Bitcoin development ecosystem.
Bitcoin Core’s power and the need for competition – 03:39:00
Despite Bitcoin Core’s current dominance, achieved through superior implementation, the speaker believes that competition is essential for its long-term health and stability. They draw parallels with early internet browsers, where initial dominance eventually gave way to competition. While acknowledging Core’s influence and occasional divisiveness, the speaker emphasizes their independence and desire for a more competitive landscape that would push all Bitcoin software developers to work harder.
Initial block download performance and Bitcoin Core’s architecture – 03:41:00
The provided transcript segment discusses initial block download performance comparisons between an unspecified software and Bitcoin Core. On an eight-year-old Dell workstation, the unspecified software achieved a full sync and index in 37 minutes, reaching performance equivalent to Bitcoin Core’s “assumevalid” up to block 850,000. In contrast, Bitcoin Core took 24 hours on the same hardware. The context suggests this discussion is part of a broader conversation about Bitcoin’s scaling challenges and alternative solutions.
UTXO store and Bitcoin Core’s performance – 03:43:00
John Carvalho discusses Bitcoin Core’s performance limitations, highlighting the slow synchronization speed, especially on machines without hardware acceleration for SHA hashing. He points out that the UTXO (Unspent Transaction Output) store is a major bottleneck, calling it a “premature optimization by Satoshi” that should be removed. Carvalho observes significant performance differences across different hardware configurations, with synchronization times ranging from 37 minutes on a machine with hardware acceleration to over 24 hours on a less powerful machine.
He contrasts these times with his own experiences, where Bitcoin Core feels like an outdated application. Carvalho mentions that some Bitcoin proponents dismiss these performance concerns without proper investigation, mistakenly believing such slowdowns are impossible. He argues that the UTXO store’s design is the root of the problem.
Parallelism in Bitcoin Core and assumed UTXO – 03:45:00
By removing the UTXO store, Bitcoin Core avoids sequential validation of each block. Parallelism is achieved by splitting the syncing process into downloading, validating (order-independent), and confirming (order-dependent). Previously, the speaker believed the confirmation phase couldn’t be parallelized due to chain-wide order queries. However, by moving 90% of the work to the parallel validation phase, significant performance improvements were achieved, especially during initial block download with “assume valid.” This allows parallel processing of blocks across multiple cores, drastically reducing confirmation time.
Initial block download time and Bitcoin Core’s scalability – 03:47:00
John Carvalho discusses achieving a 4.5-hour initial block download time, which is network-limited. He contrasts this with Bitcoin Core’s performance and argues that its limitations stem from architectural flaws in Satoshi’s original design. Carvalho claims Bitcoin Core developers focus on minor optimizations instead of addressing this fundamental issue. He believes a complete re-architecture is necessary for significant improvement, a task he deems disruptive but essential. Carvalho suggests the monoculture within the Bitcoin community hinders innovative thinking and prevents them from recognizing and addressing these architectural limitations.
Monoculture in Bitcoin development and IBD performance – 03:49:00
The provided transcript excerpt discusses Bitcoin’s Initial Block Download (IBD) performance and the surrounding development culture. It highlights a resistance to significant changes and a focus on low-level optimizations. When performance improvements were proposed, the initial reaction was mixed, with some excitement but also cynicism and calls to prioritize these improvements based on IBD performance. Several previously stalled pull requests aimed at improving IBD were subsequently approved, leading to an intermediate release.
However, these improvements involved trade-offs, such as increasing memory allocation for signature or UTXO caching, which had previously been limited. While these changes did improve performance, some of the benefits were shifted to shutdown time, highlighting the complex interplay of optimizations within the Bitcoin codebase. The excerpt also mentions a shift in perspective among some developers, moving from cynicism to a more proactive approach to performance enhancement.
UTXO cache and shutdown time – 03:51:00
The discussion highlights the performance issues related to Bitcoin Core’s handling of the UTXO (Unspent Transaction Output) cache, particularly during shutdown. It mentions that long shutdown times, sometimes exceeding 15 minutes, were previously caused by a large UTXO cache size, which has since been capped. Even with optimizations, shutdown times can still reach a minute, even when utilizing all available memory.
The speakers criticize the reactive approach to performance improvements, arguing that competition often drives optimization efforts rather than proactive analysis. They point to “assume UTXO,” a proposed solution involving downloading a pre-verified UTXO set, as an example of prioritizing speed over fundamental Bitcoin principles. They express concern that such solutions undermine the decentralized nature of Bitcoin and question their actual effectiveness in improving validation speed.
Trust assumptions in Bitcoin Core and UTXO commitments – 03:53:00
John Carvalho discusses the increasing reliance on trust assumptions in Bitcoin Core due to scaling limitations. He points out that the UTXO commitment model, even with potential optimizations like accumulators, still requires total ordering and hasn’t improved performance. He argues that this reliance on trust assumptions is making the software slower and creating pushback against consensus changes, like block size increases. Carvalho believes this is driven by the community’s focus on a single implementation and the inability to demonstrate a more scalable alternative. He emphasizes the practical limitations of syncing the blockchain, noting that downloading the entire blockchain takes a significant amount of time, even on a high-speed network.
Bitcoin Core’s halting problem and theoretical download limits – 03:55:00
John Carvalho discusses the increasing time it takes to validate Bitcoin blocks. He points out that while the theoretical download limit is 34 minutes, current times range from 10-20 hours, and this processing time is increasing non-linearly as the blockchain grows. Carvalho argues that this unscalable trend will eventually lead to a “halting problem” where Bitcoin D ceases to function, requiring either a reimplementation or complete failure due to hardware limitations. He briefly mentions the mempool and its design flaws before taking a break.
Sponsorships and the future of Bitcoin – 03:57:00
The host mentions sponsors Sideshift, a platform for swapping various cryptocurrencies including meme coins, for Bitcoin (BCH, LTC, or other). He also highlights Bitcoin.com News for its improved journalism, particularly its geopolitical coverage, contrasting it with the more ideological reporting found on other Bitcoin websites. Finally, he briefly introduces two potential future directions for Bitcoin: Drivechains (miner-enforced sidechains controlled by miners offering a solution to the diminishing block reward gamble) and ZK rollups, suggesting these as topics for further discussion.
Drivechains and the Satoshi Nakamoto gamble – 04:00:00
Paul Sztorc’s Drivechain proposal, a scaling solution for Bitcoin, is discussed. It’s highlighted that Drivechain is not just a theoretical concept but has actual software available for testing on Bitcoin’s testnet via layer2labs.com. Additionally, an alternative scaling solution called “craa,” a ZK rollup claiming to be the first verified on Bitcoin, is mentioned.
ZK rollups and Crea – 04:01:00
Crea, a project building on Bitcoin’s Signet, aims to create a decentralized finance (DeFi) platform similar to BlockFi and Celsius but using auditable smart contracts and protocols. It allows users to use Bitcoin as collateral to borrow money. The hosts also discuss ZK rollups and Drivechains as potential scaling solutions for Bitcoin.
Drivechains and ZK rollups – 04:02:00
John Carvalho expresses skepticism about ZK rollups, viewing them as “engineers fidgeting around with toys” with no real utility for end-users. He hasn’t seen any significant breakthroughs or sound layer designs using ZK rollups. He notes that ZK rollup projects claim they’re trying to tap into the liquidity of wrapped Bitcoin on Ethereum.
ZK rollups and liquidity on Ethereum – 04:04:00
The provided text discusses Wrapped Bitcoin (wBTC) on Ethereum and the potential for users to seek more trust-minimized alternatives on Bitcoin’s layer 2. John Carvalho expresses skepticism about liquidity moving solely due to improved security, suggesting other factors keep liquidity on Ethereum. The conversation also touches upon drivechains, with Carvalho viewing them as separate monies regardless of miner backing, and raising concerns about their potential impact on Bitcoin’s security model. He questions the utility of drivechains, favoring altcoins as a less disruptive alternative. Eric Voskuil doesn’t offer an opinion on drivechains or ZK rollups.
Drivechains and altcoins – 04:06:00
John Carvalho expresses frustration with Paul’s staunch advocacy for Drivechains, suggesting it fractured their friendship. He believes the focus on complex scaling solutions like Drivechains, covenants, and ZK-rollups is unnecessary and advocates for a simpler approach: increasing the block size to 16MB, incorporating optimizations from Litecoin, and utilizing Mimblewimble extension blocks for transaction pruning. He points out that Mimblewimble has been tested on Litecoin for three years and questions why it’s been largely ignored, highlighting the current taboo surrounding block size discussions.
Scaling Bitcoin and cultural taboos – 04:08:00
John Carvalho and Eric Voskuil discuss the challenges of scaling Bitcoin due to cultural taboos within the community. They highlight the difficulty of proposing changes, like increasing the block size or implementing drivechains, due to the risk of being ostracized. The core maintainers, particularly figures like AA, hold significant influence over what gets implemented, and their aversion to “controversial” changes creates a cultural barrier. This effectively limits innovation and reinforces the existing power dynamics within the Bitcoin development ecosystem.
Engineer-driven change and Monero’s approach – 04:10:00
John Carvalho and Eric Voskuil discuss Monero’s engineer-driven approach to development, contrasting it with Bitcoin. They highlight Monero’s practice of regular hard forks (although reportedly discontinued) and its planned implementation of full-chain membership proofs for enhanced privacy. This would expand the anonymity set for transactions to encompass the entire blockchain, similar to Zcash’s approach. While acknowledging the potential benefits of such advancements for Monero, they question their applicability to Bitcoin and express uncertainty about the associated trade-offs. Carvalho emphasizes that engineer-driven change doesn’t align with Bitcoin’s intended development philosophy. He also mentions Roger Ver’s recent bullishness on Bitcoin due to the confidential layer technology that allows Bitcoin tokenization on the Xano network.
Confidential transactions and Xano – 04:12:00
John Carvalho discusses Xano, a project by Amir Taaki that aims to provide private and low-fee transactions for wrapped Bitcoin (wBTC) on Ethereum. He compares it to another privacy-focused project, DarkFi, which uses different cryptographic techniques (Halo 2 from Zcash vs. ring signatures from Monero). Carvalho expresses skepticism about the need for a separate token for DarkFi, suggesting it’s driven by investor demands. He highlights that these projects exist because Bitcoin hasn’t adequately addressed scalability and fungibility issues.
Fungibility and Bitcoin’s metadata – 04:14:00
The speakers discuss the concept of fungibility, questioning its practical relevance. They argue that true fungibility is difficult to achieve, especially in Bitcoin, due to the “taint” associated with transaction history and metadata. While Bitcoin tracks the inputs and outputs of transactions (UTXOs), factors like the location and subjective value of a dollar bill affect its fungibility. They conclude that the ability to transact without censorship based on the source of money is more important than perfect fungibility.
Privacy, metadata, and state surveillance – 04:16:00
True privacy in Bitcoin is difficult to achieve. Most privacy methods focus on managing metadata and controlling witnesses to transactions, but these methods often fall short. While coin mixing and other techniques might obscure some details, they don’t provide true anonymity against sophisticated surveillance, especially state-level actors who can analyze network behavior. Many privacy solutions are performative rather than practical, failing to address the methods used by those actively tracking transactions. A practical approach to privacy requires giving users more control over the witnesses to their data, recognizing that every network action has at least one witness.
Privacy, taint, and Bitcoin mixing – 04:18:00
The provided transcript excerpt discusses Bitcoin privacy, focusing on the tension between fungibility and metadata creation. Achieving true fungibility, where every coin is indistinguishable, would eliminate metadata useful for tracking transactions. However, this would also render features like tracking double spends and ownership impossible. The speaker argues against the necessity of extreme privacy measures for average users, suggesting that plausible deniability through simple transactions might suffice. They also touch upon the risks of using privacy-focused tools, which can attract unwanted attention from those monitoring illicit activities.
Bitcoin mixing and plausible deniability – 04:20:00
John Carvalho and Eric Voskuil discuss the illusion of privacy offered by Bitcoin mixers. They argue that while mixing can obfuscate transaction history for small, everyday transactions like paying rent, it’s ultimately ineffective against sophisticated analysis. They point out that the best-case scenario for mixing is to hide within a larger set of similar transactions, but even this is susceptible to tracking. Carvalho dismisses Bitcoin mixing as “fake” and largely ineffective. They also discuss the possibility of buying freshly mined coins from mining pools as a way to obtain untainted Bitcoin, but acknowledge a lack of evidence for this practice being widespread.
Mining and company registration – 04:22:00
Mining Bitcoin at a meaningful scale requires registering as a company, which introduces censorship and traceability issues, contradicting the need for private money. The discussion also touches upon the evolution of Bitcoin mining from its initial “one CPU one vote” ideal to the current reality of large-scale mining operations. Satoshi Nakamoto’s early attempt to control mining distribution by requesting early GPU miners to slow down is mentioned, along with the subsequent difficulty adjustments and block reward halving schedule.
Block reward and hash power – 04:24:00
John Carvalho explains that Satoshi’s reward rate, while seemingly arbitrary, ensured that early miners with significant hash power, regardless of the reward amount (25 or 50 Bitcoin), would maintain the same proportional advantage over others. This advantage persists until other miners increase their hash rate. The discussion then shifts to the importance of privacy in Bitcoin, with Eric Voskuil emphasizing its crucial role in core development. He suggests reducing transaction tainting as a key objective but expresses reservations about existing privacy solutions like mixing.
Privacy and mixing – 04:26:00
The speakers discuss the challenges of achieving sufficient privacy in Bitcoin, particularly regarding mixing. They acknowledge the importance of a large anonymity set for effective mixing but express doubt about the security and efficacy of existing solutions against significant threats. The limitations of Bitcoin’s privacy features are also discussed, referencing Satoshi’s original vision of generating new addresses for each transaction and the inherent linking that occurs with multi-input transactions. The desire for zero-knowledge proofs and the historical context of limited libraries for implementing them in the early days of Bitcoin are also mentioned.
Privacy in the Bitcoin whitepaper and zero-knowledge proofs – 04:28:00
Early attempts to improve Bitcoin privacy included Zerocoin and Zerocash, which aimed to integrate zero-knowledge proofs. Greg Maxwell, though acknowledging these as potentially promising, considered them not ready for Bitcoin and favored the development of CoinJoin. Amir Taaki subsequently created Dark Wallet, a CoinJoin implementation. However, it didn’t receive Maxwell’s bounty due to concerns raised by “John Dylan” regarding its use of Libbitcoin and the perceived risk of multiple Bitcoin clients.
Dark Wallet and John Dylan – 04:30:00
John Carvalho discusses Dark Wallet and its creator, Amir Taaki. Carvalho clarifies that despite Taaki’s frequent mentions of Dark Wallet, they rarely see each other and don’t discuss the project. Carvalho was involved with the Bitcoin project at the time Taaki was working on Dark Wallet, but wasn’t directly involved in its development, though some of Taaki’s work was integrated into Bitcoin’s codebase.
Carvalho recalls attending the Dark Wallet pre-release announcement in Austin, where he met figures like Peter Todd, Andy Greenberg, and possibly Vitalik Buterin. He also mentions “Phantomcircuit,” the individual who wrote the first line of code for Bitcoin and collaborated with Taaki. Carvalho recounts meeting this individual, a significant miner in Texas at the time, and their work on Bitcoin. He notes that neither Dark Wallet nor the Bitcoin project were ever fully completed, despite having releases.
Dark Wallet and Li Bitcoin – 04:32:00
John Carvalho discusses his involvement in the development of Li Bitcoin, highlighting the challenges of completing and maintaining a software project, especially after raising funds. He contrasts his experience shipping software to Fortune 500 companies and Microsoft with Amir Taaki’s approach to Dark Wallet and Li Bitcoin. While acknowledging Taaki’s ability to initiate projects, Carvalho emphasizes the importance of finishing and maintaining them, drawing on his experience creating and scaling software companies. He notes that he hasn’t been involved with Dark Wallet’s development but has observed Taaki’s improved ability to ship products over time.
Amir Taaki’s projects and software development – 04:34:00
Amir Taaki’s projects, including Dark Wallet, Dark Market (later Open Bazaar), DarkLeaks, and the Libbitcoin project, were characterized by innovative insights but an ad-hoc approach to development and maintenance. While conceptually strong, these projects often lacked the maturity and maintainability of production-ready software. Even Libbitcoin, despite considerable work, wasn’t fully mature. Taaki prioritized open-sourcing projects and relying on community maintenance. This approach, while valuable, resulted in projects that weren’t always robust or well-maintained. Later development on Libbitcoin focused heavily on improving code generation, continuous integration, testing, and cross-platform compatibility to address these shortcomings.
Dark Wallet funding and developer costs – 04:36:00
The discussion around Dark Wallet funding disputes the claim that developers misused funds. It highlights the relatively small amount raised (around $50,000 in Bitcoin at the time) compared to the cost of professional software development. The speaker emphasizes that this amount wouldn’t sustain a team of developers for long, especially considering current developer salaries. They also address the misconception that the Bitcoin’s later price increase makes the initial funding significantly larger, clarifying that the amount spent was equivalent to the original dollar value at the time of fundraising.
Li Bitcoin’s code size and developer salaries – 04:38:00
John Carvalho discusses the substantial cost of maintaining Bitcoin’s extensive codebase (half a million lines across 10 repositories seven years prior) and supporting various platforms and build systems. He highlights the expectation of a professional-quality product and the significant financial investment required for Bitcoin Core and related projects. Carvalho contrasts this with the perception that such development is easily done. He mentions that Bitcoin Core seems to have ample funding, while other projects struggle, and notes a concerted effort to direct funds towards Core. Carvalho emphasizes his personal commitment to not profiting from Bitcoin-related work, accepting only travel reimbursement for consulting. He points out the difficulty of finding experienced Bitcoin developers willing to work long-term without substantial compensation.
John Dylan and Greg Maxwell – 04:40:00
John Carvalho recounts an exchange where John Dylan denied being Greg Maxwell, a claim Peter Todd also echoed about himself. Carvalho details his past disagreements with Maxwell, citing an incident where he criticized Maxwell’s work on the encryption bit 151, which led to a private reprimand from Maxwell. Carvalho suggests Maxwell’s work resembled a VPN within the PTP protocol, raising concerns about potential misuse and the need for KYC protocols for exchanges and large miners.
Opportunistic encryption and BIPs 151/152 – 04:42:00
John Carvalho expresses his criticism of opportunistic encryption (BIP 151/152) in Bitcoin. He argues that it’s pointless in a peer-to-peer system where data is publicly validated. He questions its efficacy against malicious actors, who could simply connect to multiple nodes to trace transactions. He views it as a misplaced focus on technical details while ignoring the bigger picture. He also mentions dandelion, a privacy and mixing protocol, as another example of this issue.
Dandelion and privacy – 04:44:00
Carvalho believes Dandelion, a privacy enhancement for Bitcoin, wasn’t adopted for good reason. He argues that it offered weak privacy that could be detrimental to users. He suggests that the best approach for transaction privacy is using anonymizers like i2p or Tor when broadcasting transactions, rather than relying on solutions like Dandelion or opportunistic encryption. He extends this principle to mining as well. He also mentions BIP 37, a now largely defunct light wallet protocol, as another example of a less effective approach to privacy.
BIP 37 and Bloom filters – 04:46:00
The hosts discuss Bitcoin Improvement Proposal 37 (BIP 37) and its use of Bloom filters, which have been replaced by compact filters (e.g., Neutrino). They opted not to implement BIP 37 due to privacy and design concerns, viewing it as “faux security” and “counterproductive.” They favored superior alternatives and avoided other features like opportunistic encryption and Dandelion for similar reasons, prioritizing genuine improvements over superficial privacy enhancements.
Consensus cleanup and the Time Warp bug – 04:48:00
The provided transcript excerpt discusses John Carvalho’s involvement in Bitcoin’s development. He generally trusts the community’s decisions but sometimes engages when he feels his expertise is relevant. He mentions examples like opportunistic encryption and SegWit, where he either challenged the reasoning behind decisions or wished he had commented on implementation details. Regarding the “cleanup” (likely referring to a specific code cleanup effort), he was invited to a private discussion about security issues. He ultimately deferred to others involved, trusting their competence. However, he notes that he sometimes intervenes when he has extensive experience with the topic at hand. The excerpt ends mid-sentence as he begins to discuss his work on Node Sy and related projects.
Merkle tree malleability and 64-byte transactions – 04:50:00
John Carvalho discusses his disagreement with a proposal to invalidate 64-byte transactions in Bitcoin. He points out that the arguments for the invalidation were weak and that creating this arbitrary rule could have unforeseen consequences in the future. Despite the proposal being widely supported by figures like Gregory Maxwell and Peter Todd, Carvalho felt he was alone in his opposition. He argued that if such a change were to be implemented, it should be done with a clear understanding of its implications, even if those implications are currently unknown.
64-byte transactions and SPV wallets – 04:52:00
The potential removal of 64-byte transactions from Bitcoin is discussed. Despite arguments for removal being deemed invalid, it’s likely to proceed for the sake of slightly reducing bandwidth and computation costs, especially for Simplified Payment Verification (SPV) wallets. This would primarily affect the handling of coinbase transactions, which an SPV wallet would no longer need to download. However, the actual bandwidth savings are minimal, estimated at around 100 bytes per transaction, and current SPV wallet performance isn’t significantly impacted by downloading these transactions.
Coinbase transactions and malleability – 04:54:00
Malleability can be avoided if the coinbase transaction starts with a null point (hash of all zeros and index of all ones). This prevents the creation of fake block versions. A new rule requiring measuring the size of every transaction and discarding those exceeding 64 bytes after a certain point is also discussed. This impacts SPV wallets and servers handling the coinbase transaction. The hosts express concern that these changes are driven by implementation preferences rather than node security or consensus bugs.
Invalid block hashes and DoS vectors – 04:56:00
A bug in Bitcoin Core caused valid blocks to be rejected due to a collision of block hashes with previously seen invalid blocks. The issue arose from storing hashes of invalid blocks, which is unnecessary. The specific scenario involved two blocks with the same Merkle root hash but different Merkle trees. One block, containing a malformed Merkle tree, arrived first and was marked invalid. When a valid block with the same Merkle root subsequently arrived, it was incorrectly rejected due to the matching hash.
Core bug and ban list overflow – 04:58:00
A Bitcoin Core bug allowed peers to crash nodes by overflowing the ban list. This was done by repeatedly connecting under different IP addresses, exceeding the list’s size limit and causing a memory overflow. The hosts question the design of maintaining a ban list, arguing it’s inherently flawed due to the possibility of such overflows and the arbitrary nature of eventually having to discard entries.
Storing hashes of invalid blocks – 05:00:00
Storing hashes of invalid blocks is considered an inefficient use of resources. Instead of storing these hashes, which could be used as a denial-of-service (DoS) vector, they should be dropped. The discussion highlights the issue of malleability, where altering a block’s data can change its hash. While the initial concern was that malleability prevented storing hashes, the real problem is that storing the hash of an invalid block, even without malleability, is not a sound strategy.
An attacker could flood the network with invalid blocks, each with a different body but the same header, leading to the same hash being stored repeatedly. By manipulating the nonce, an attacker could further amplify this attack, effectively creating a DoS condition by overwhelming the system with these duplicate hashes.
DoS vectors and invalid blocks – 05:02:00
John Carvalho and Eric Voskuil discuss how invalid blocks can be used as a denial-of-service (DoS) vector. They argue that instead of banning or storing the hash of invalid blocks, nodes should immediately drop the peer sending them. This approach is more efficient than searching a ban list for every incoming block. They acknowledge that nothing prevents a dropped peer from retrying, but emphasize that quickly identifying and dropping them mitigates the DoS impact. They also discuss the importance of rejecting invalid blocks early without full validation and criticize solutions that inadvertently create DoS vulnerabilities.
Malleated Merkle trees and 64-byte transactions – 05:04:00
Malleated Merkle trees can be created without any cost by inserting duplicate transactions, leading to the same header hash. This vulnerability exists regardless of transaction size (e.g., 64-byte transactions). Detecting this requires checking for duplicate transactions within the block. Upon detection, nodes can either reconstruct the original block by removing the duplicate transaction or drop the peer and wait for a valid block. The 64-byte transaction proposal doesn’t address this malleability issue.
64-byte transactions and Merkle tree malleability – 05:06:00
64-byte transactions exploit a weakness in the Merkle tree calculation. By crafting a specific transaction of this size, an attacker can trick the system into thinking there are two transactions where there’s only one. This manipulation involves mining a specific coinbase transaction with a complexity of 2^24, which is feasible. A mitigation for this involves checking the coinbase transaction for a null pointer (all ones index and all zeros hash) in its first input. The speaker expresses confusion about Satoshi’s design choice to include this predictable garbage data in the first input of every transaction.
Null points and malleated blocks – 05:08:00
Malleated blocks can be quickly identified by checking the coinbase point at the beginning of the block. If it’s a null point, the block is valid; otherwise, it’s computationally infeasible for it to have been 64-byte malleated. Current Bitcoin implementations validate blocks twice, seemingly redundantly. However, removing one of these checks inadvertently reintroduced a malleability vulnerability, demonstrating that the second check was unintentionally safeguarding against this issue. This vulnerability was subsequently addressed following a fork.
Redundant checks and the inflation soft fork – 05:10:00
The speaker discusses the risks associated with making changes to Bitcoin’s code, even seemingly minor ones. They cite the example of reinstating a redundant check, which unexpectedly caused issues. They also mention the inflation soft fork as another example of a small change having unintended consequences. The core argument is that the complexity of Bitcoin’s code makes it difficult to predict the ramifications of any alteration, regardless of how insignificant it may appear.
The speaker expresses concern about the opacity of the code and the difficulty of understanding its logic, citing the example of “find and delete” which they rewrote multiple times before fully grasping its function. They conclude that the numerous implementations of Bitcoin D and the frequency of forks increase the likelihood of issues arising from opaque code.
Op code separator and code complexity – 05:12:00
The speakers discuss the complexities and fragilities within Bitcoin’s codebase. One example cited is Satoshi’s implementation of error handling in the consensus code, described as “stupid” but necessary due to the original design. Another example is the handling of transaction order in a block within the Merkle tree, which has no practical purpose but adds to the code’s complexity. The discussion highlights how seemingly minor changes can have unintended consequences due to the intricate and sometimes illogical structure of the code.
Transaction order in a block – 05:14:00
Transactions within a Bitcoin block have a partial ordering requirement. When processing transactions in a block, the order matters. Inputs spending outputs within the same block must appear after the output they are spending. A parallel processing implementation that disregarded this order and processed all inputs and outputs simultaneously broke consensus rules. This was because it allowed inputs to spend outputs that hadn’t been created yet within the block’s ordering. The correct implementation requires processing transactions sequentially to maintain the correct partial ordering and ensure consensus.
Forward references in blocks – 05:16:00
A Bitcoin consensus rule, “no forward references,” prevents a transaction within a block from spending an output that appears later in the same block. This rule, though seemingly implicit in the original code’s structure, was explicitly defined and named to enhance clarity and security. This example highlights how seemingly unimportant implementation details can have significant implications for consensus. The discussion further emphasizes the importance of scrutinizing all consensus rules, even those that appear self-evident, to ensure they are necessary for economic security and not merely artifacts of implementation choices.
Coinbase transaction rules – 05:18:00
John Carvalho discusses specific Bitcoin transaction rules, notably the ban on 64-byte transactions. He argues against these rules, citing their lack of practical purpose and the disproportionate focus on simplifying implementation for specific wallets (like SPV wallets) at the expense of overall network efficiency. He points out that the justifications for these rules, such as reducing download size for SPV wallets, are negligible compared to the processing cost of invalidating these transactions.
Carvalho also highlights the inconsistency in Bitcoin Core’s priorities, questioning why optimizations for SPV wallets are prioritized over other improvements. He expresses skepticism about the overall value of these rules and suggests they wouldn’t be implemented as a standalone soft fork due to lack of community support. He implies that these rules are being bundled with other changes, raising concerns about the justification for those changes as well.
Time Warp bug and Litecoin support – 05:20:00
The provided transcript excerpt discusses Litecoin support within a specific codebase and how it relates to Bitcoin. It explains that Litecoin support has existed for around 7 years and requires minimal code changes due to its similarity to Bitcoin. Two key differences are highlighted: one related to “script versus sha” for mining, and the other addressing the “Time Warp bug.” These differences are managed through configuration options, allowing the same binary to run both Bitcoin and Litecoin by toggling these settings and adjusting numerical parameters like block period. The example of activating the “easy blocks” fork for testnet is used to illustrate how configuration changes control different functionalities.
Quadratic op roll bug – 05:22:00
A quadratic op roll bug was identified in Bitcoin Core. Bitcoin script is a stack language without looping, relying on a stack to maintain state between opcodes. Bitcoin Core’s implementation deviates from a pure stack language by “cheating” on the stack, allowing operations beyond simple push and pop actions. The bug allowed forcing a large number of op roll operations within a single script, exploiting this non-standard stack behavior. While not strictly a bug, as it aligns with the design, it presented an issue due to the way Bitcoin Core’s stack is implemented.
Stack implementation and op roll – 05:24:00
The speaker discusses the implementation of Bitcoin’s scripting system, specifically the stack and the OP_ROLL opcode. Initially, a pure stack implementation was used with push and pop operations, later optimized for efficiency. OP_ROLL reorders the stack, which can be computationally expensive due to the use of a contiguous memory vector for the stack. Shifting elements within this vector requires rewriting portions of memory. While a linked list would be more efficient for such operations, it involves more memory allocations and pointers, making it generally slower than a vector. Therefore, the vector is preferred despite the quadratic complexity of OP_ROLL.
Templatized stack and op roll optimization – 05:26:00
To mitigate the performance issues caused by expensive stack operations, especially with OP_ROLL, the script processor was templatized. This allows it to use either a vector or a standard list as the underlying container for the stack. Both versions are compiled, resulting in a slightly larger binary size. During script execution, if an OP_ROLL is detected, the script is executed using the alternative stack implementation (list instead of vector). This approach avoids performance bottlenecks caused by potentially malicious scripts with excessive OP_ROLL operations, while maintaining support for the opcode and ensuring fast validation for typical scripts.
Non-standard transactions and direct submission to miners – 05:28:00
John Carvalho discusses non-standard transactions and their implications for Bitcoin. He points out that while concerns exist about direct miner submission enabling inclusion of these transactions, miners can already mine their own blocks with non-standard transactions, rendering preventative policies ineffective. He argues against “obscurity security,” emphasizing that ignoring the problem is not a solution. Instead, he suggests improving the script processor, which would be complex in Bitcoin Core but conceptually straightforward with proper implementation. Carvalho clarifies that policy implementation primarily focuses on DoS prevention through fee rates to avoid memory or disk overflow from free transactions. He dismisses concerns about non-standard transactions freezing nodes, arguing that if one miner can’t stop them, others’ actions are irrelevant.
Mempool policy and DoS – 05:30:00
John Carvalho discusses his long-standing policy of avoiding implementing restrictive mempool policies. He argues that such policies are ineffective in preventing unwanted behavior and only incentivize actors to circumvent them. He believes it’s more productive to address emerging issues as they arise. Carvalho uses the example of expensive, unanticipated transactions as a current problem requiring solutions. While acknowledging the complexity of the issue, he expresses confidence in the developers working on it and his willingness to defer to their expertise. He contrasts this collaborative approach with the dangers of a monoculture in software development, where limited perspectives can lead to flawed decisions. Carvalho emphasizes the value of diverse expertise and collaboration in addressing complex technical challenges.
Monoculture and competing implementations – 05:32:00
John Carvalho argues for competing implementations of Bitcoin. He believes that they can drive innovation and reveal superior approaches. He points out that differing implementations can highlight performance discrepancies and offer alternative solutions. Carvalho also discusses the burden of maintaining backward compatibility, citing the example of BIP 30 and the complexities involved in managing obsolete code and consensus changes.
He emphasizes how unnecessary consensus changes create difficulties for maintainers who must preserve the entire history of changes, unlike other implementations that can simply discard old code. Carvalho uses the example of a restriction on the number of hashes in a block as an example of how a soft fork can later necessitate a hard fork to reverse the initial change, further illustrating the complexities of maintaining a single dominant implementation.
Consensus cleanup and Berkeley DB – 05:34:00
The discussion centers around a historical Bitcoin fork related to the Berkeley DB change around 2013-2014. One of the speakers mentions their own software wasn’t affected by the initial fork because they used LevelDB. They explain that the fork stemmed from a hash restriction imposed by Berkeley DB. The exact limit of this restriction was unknown and likely varied between versions. The conversation highlights the ambiguity surrounding the consensus rules before the implementation of this restriction, raising the question of what truly constituted Bitcoin at that time.
Code vs. consensus – 05:36:00
The speakers discuss the relationship between code and consensus in Bitcoin. They argue that consensus dictates the rules of Bitcoin, not solely the code itself. While the code implements the consensus, the actual consensus among users can override the code if necessary. They use the example of how Bitcoin’s initial consensus was to have no block size limit, which was later changed. They emphasize that even if a mining attack or other code exploit were to occur, the consensus of the community would ultimately prevail, either by fixing the code or finding other solutions. Therefore, true consensus transcends the code and ensures the long-term survival of Bitcoin.
Bitcoin Knots and Luke-jr – 05:38:00
A listener asks about Bitcoin Knots, a Bitcoin implementation by Luke-jr. Eric expresses skepticism towards Luke-jr, citing his loss of Bitcoin and questioning the value and relevance of his recent work, particularly regarding Ocean mining and filtering/censoring transactions. Eric feels Luke-jr relies on his reputation and people’s blind support. John adds context, mentioning a past incident where Luke-jr restricted data size on Bitcoin to limit token issuance on platforms like Counterparty and Omni.
300 kilobyte node and Luke-jr’s views – 05:40:00
John Carvalho mentions running a 300 kilobyte node, clarifying that it wasn’t a fork by Luke-jr, but rather an exploration of the concept of reducing block size. This was around 2016-2017 and tied to his early, and now regretted, naive support for the idea that smaller blocks would encourage Lightning Network usage. Eric Voskuil views Luke-jr’s Bitcoin Knots client as essentially Bitcoin Core with minor parameter and code changes.
Bitcoin Knots and performance – 05:42:00
John Carvalho questions the use of Bitcoin Knots, a Bitcoin implementation by Luke-jr. He expresses concerns about its security and maintenance due to limited developer attention and questions the claimed performance benefits. Carvalho suggests the performance differences are insignificant, citing the example of the DB cache size adjustment as a minor tweak. He speculates that the primary motivation for Knots might be to implement individual policy or performance changes easily, possibly including censorship through ban lists.
Bitcoin Knots and censorship – 05:44:00
John Carvalho and Eric Voskuil discuss Bitcoin Knots, a Bitcoin implementation. While Knots proponents claim technical advantages, Carvalho dismisses these as insignificant, viewing them more as philosophical differences concerning policy and configuration. He suggests the primary motivation for running Knots is the desire to censor certain transactions, such as NFTs. Carvalho observes a noticeable number of Knots nodes on the mainnet. He mentions a Twitter user who advocates for Knots as a way to maintain Bitcoin’s purity and prevent spam, but Carvalho interprets this as censorship. He concludes that censorship is acceptable in Bitcoin, as all miners engage in it by choosing which transactions to include.
Censorship and miner incentives – 05:46:00
Miners must select transactions for inclusion in blocks, and while prioritizing highest fees seems objective, it’s computationally infeasible to always achieve this perfectly. Even with no spam, miners must still choose from valid transactions, making the selection inherently subjective. Software like Bitcoin D uses algorithms to create block templates, but these are essentially arbitrary selections within the confines of consensus rules. While adhering to consensus rules is objective, choosing which transactions to include from the pool of valid ones remains subjective, allowing miners to apply their own policies, including censoring specific transaction types.
Censorship and hash power – 05:48:00
Censorship in Bitcoin is not inherently problematic unless enforced by a majority of hash power. Regular censorship attempts, such as filtering transactions in the mempool, are ineffective because miners are incentivized by fees to eventually include those transactions. However, if the majority of hash power colludes to censor specific transactions, it becomes a serious issue, equivalent to state-level censorship or soft fork enforcement. This type of censorship prevents transactions from being confirmed regardless of fees. Attempts to “fix” filters either have no effect or inadvertently strengthen censorship by creating a soft fork scenario.
Soft forks and censorship – 05:50:00
The discussion centers around soft forks as a censorship mechanism in Bitcoin. Miners signal their intent to enforce new rules by censoring transactions that don’t comply. Once a sufficient threshold of miners signal, nodes activate the rule, effectively rejecting non-conforming blocks. This process, while intended for upgrades, can be used to invalidate transactions based on arbitrary criteria like the presence of non-standard scripts or excessive data in OP_RETURN outputs. However, due to the flexibility of Bitcoin scripting, effectively censoring specific data through soft forks is challenging. The motivation behind such purity pursuits is questioned, linking it to block space limitations and rising fees.
Ordinals and covenants – 05:52:00
John Carvalho expresses his perspective on Bitcoin’s development and the ongoing debates surrounding it. He questions the logic behind censoring certain valid transactions like Ordinals and anticipates similar resistance towards future developments like covenants. He emphasizes the importance of adhering to consensus rules and criticizes attempts to control which transactions are mined. Drawing from past experiences with Replace-By-Fee (RBF), he highlights the controversy surrounding it and expresses disappointment with Core developers’ handling of the situation. He advocates for a more consistent approach to Bitcoin’s development, respecting valid transactions and avoiding selective censorship.
RBF and zero-confirmation transactions – 05:54:00
John Carvalho discusses Replace-by-Fee (RBF), a protocol improvement allowing for replacing unconfirmed transactions with higher fees. He argues that while zero-confirmation transactions were never inherently safe, removing them entirely via opt-out RBF was unnecessary and driven by speculation. He points out that RBF offers a reasonable precaution, similar to other non-enforceable features like Dandelion or mixing. Carvalho emphasizes that infrastructure was built around zero-confirmation transactions, and merchants priced the associated risk by offering credit as a service.
Double spending and merchant risk – 05:56:00
Merchants accepting zero-confirmation transactions face the risk of double-spending, especially by larger miners or entities with significant hash power. While amateurs can attempt double-spending, their success isn’t guaranteed. Miners can prioritize transactions with higher fees, potentially replacing previously accepted transactions. However, double-spending carries legal implications and acts as a deterrent. Historically, services like Bitrefill employed a first-seen mempool policy to mitigate this risk, enabling zero-confirmation transactions with a calculated risk assessment.
First-seen mempool policy and RBF – 05:58:00
Carvalho and Voskuil discuss Replace-by-Fee (RBF) and the concept of “first-seen” transactions in Bitcoin. Carvalho argues that the “first-seen” policy, where miners prioritize the first transaction they see, doesn’t truly exist in Bitcoin. He points out that without RBF, sending two transactions simultaneously creates a race condition where some nodes see one transaction first and others see the second, making “first-seen” unreliable. He contends that RBF is necessary because miners will always choose the transaction with the highest fee. Voskuil counters that low-value transactions are less likely to be replaced, suggesting that the risk is lower in practice. Carvalho uses the example of Bitrefill to illustrate his point, implying that even small transactions can be subject to replacement.
Low-value transactions and RBF – 06:00:00
Discussion about sales and cost – 06:00:00
The provided transcript snippet discusses the relationship between sales and costs, specifically mentioning that a $20 sale would not be worth the associated costs. The context, however, does not directly relate to this snippet and focuses on broader Bitcoin-related topics discussed by John Carvalho and Eric Voskuil.
Computational cost of actions – 06:00:15
If an action has negligible computational cost, people are more likely to perform it.
Building infrastructure and system disruption – 06:00:20
The more infrastructure built upon a system, and the more dependent that system becomes on this infrastructure, the greater the potential for disruption by those controlling the infrastructure.
Threat actors and economic disruption – 06:00:26
The provided text snippet mentions “a random threat actor who’s trying to disrupt the economy.” However, the overall summary of the podcast episode doesn’t elaborate on specific threats or actors aiming to disrupt the economy. The discussion focuses more on the current state of Bitcoin, its limitations, and economic principles related to monetary policy and inflation.
Double spending detection and system control – 06:00:29
The provided transcript snippet discusses a system designed to detect double-spending attempts. This system could be shut down if a double-spend occurred. This functionality was highlighted as a key service provided by the system. However, the overall summary of the podcast does not elaborate on this topic further. The main discussion points revolve around Bitcoin’s current state, monetary theory, scaling solutions, and the importance of economic principles.
Safety and manageability of zero comp transactions – 06:00:41
John Carvalho clarifies that his argument about zero-comp transactions wasn’t about their inherent safety, but rather their manageability.
Security of zero comp transactions – 06:00:51
The provided text snippet discusses the lack of security in zero-confirmation Bitcoin transactions. It argues that despite past usage, relying on unconfirmed transactions is inherently insecure and a losing proposition.
RBF (Replace-by-fee) and its relevance – 06:01:06
John Carvalho dismisses Replace-by-Fee (RBF) as irrelevant, viewing it as an unnecessary policy. He believes RBF shouldn’t exist.
Bitcoin’s mempool and transaction handling – 06:01:25
Carvalho explains that Bitcoin itself doesn’t have a mempool. The mempool is a feature of specific implementations like Bitcoin Core, not a fundamental aspect of the Bitcoin protocol. He criticizes the practice of storing an arbitrary number of transactions in RAM as unreasonable, pointing out that Satoshi’s original design allowed for storing transactions in RAM up to a certain size limit (1MB or 4MB).
Mempool overflow and resource management – 06:02:08
John Carvalho points out that Bitcoin’s mempool, which stores unconfirmed transactions, is frequently overflowing. He argues this was predictable due to storing transactions in RAM, leading to issues like page swapping and potential storage on disk. This contradicts some claims within the Bitcoin development community that mempool overflow isn’t a problem.
Transaction storage and mining – 06:02:45
The primary reason for storing Bitcoin transactions is for mining. Relaying transactions to miners is important, but ultimately, transaction storage is essential for the mining process. While zero-confirmation transactions exist, they are considered insecure and shouldn’t be relied upon. Knowing about submitted transactions is useful from an informational standpoint, but their core purpose is to facilitate mining.
Miners’ incentives and fee maximization – 06:03:07
Miners are incentivized to maximize their profits. If they don’t, they risk being outcompeted by other miners. Since transaction fees will eventually be their primary source of income, maximizing these fees is crucial. The current mempool policy, with its limited transaction capacity, can lead to situations where incoming transactions displace others, potentially causing a loss of fees for miners due to the interconnected nature of transactions.
Mempool policy and DOS protection – 06:03:41
Transactions are written to disk after validation checks, which include script execution and contextual verification. This process is part of the implemented DOS protection policy.
Transaction validation and block context – 06:04:11
A mempool transaction isn’t inherently valid on its own; its validity is determined within the context of a future block. Validation involves assuming a future block with specific height, timestamp, and median time past of previous blocks. This assumed block context is used to assess the transaction’s validity, including checks against block size limits and sigops. Even after validation, the transaction is stored on disk, potentially leading to disk space issues if not managed properly.
Fee limits and DOS protection – 06:05:13
Setting a minimum fee limit for transactions acts as a Denial of Service (DoS) protection mechanism. Miners can choose to confirm transactions that meet the minimum fee requirement, ensuring they receive compensation for their efforts. While this policy might discourage low-fee or “child-pays-for-parent” transactions, it prevents the network from being overwhelmed by a flood of low or zero-fee transactions. The fee limit ensures that the transaction pool, even when full, eventually clears as transactions with sufficient fees are processed. However, complex transaction chains where a high-fee transaction depends on the confirmation of multiple low-fee transactions can still pose a challenge.
Transaction sets, graph processing, and fee maximization – 06:06:24
Miners face the complex task of maximizing transaction fees within a block, which involves graph processing to analyze interconnected transaction sets. This process considers block size, weight, SigOp limits, lock times, and other consensus restrictions. The challenge lies in the dynamic nature of the transaction graph, which constantly changes with new blocks and transactions. Ideally, miners aim to include as many transactions as possible to maximize potential future fees without overwhelming their resources or being vulnerable to denial-of-service attacks.
Mining empty blocks and hash rate – 06:07:34
This transcript excerpt discusses Replace-by-Fee (RBF), a feature that lets users replace an unconfirmed Bitcoin transaction with a higher fee to speed up confirmation. The speakers debate the necessity of RBF, with one arguing its usefulness in specific situations like a full mempool while the other suggests it’s generally unnecessary.
Replace-by-fee (RBF) and its purpose – 06:08:07
Replace-by-fee (RBF) was initially designed to allow users to replace a pending transaction with a higher fee by opting in. However, from a node developer or miner’s perspective, the primary goal is to maximize profit. Therefore, they will prioritize transactions with the highest fees, regardless of whether RBF was opted into or not. This incentivizes miners to choose the most profitable transactions, ultimately leading to the adoption of fee prioritization over RBF opt-in.
Infrastructure and RBF – 06:09:14
John Carvalho views Replace-by-Fee (RBF) as a positive step for Bitcoin. He acknowledges the inevitability of users making mistakes when sending transactions and believes RBF offers a way to address this. While initially an opt-in feature, it later became more generalized due to its usefulness. Despite supporting RBF, Carvalho ideally opposes the concept of a mempool altogether, suggesting a system without transaction replacement.
Transaction pool and conflict resolution – 06:09:44
The provided transcript excerpt describes the mechanics of a Bitcoin transaction pool and how conflicting transactions are handled. When two transactions attempt to spend the same output (a double-spend), they conflict and cannot both be included in the same valid block. Miners may choose to include either transaction in their respective blocks, leading to competing branches in the blockchain. The excerpt emphasizes the importance of miners storing validated transactions on their disks, even conflicting ones, to facilitate block building. It also touches upon the concept of transaction fees as payment for disk space, with higher fees incentivizing miners to prioritize certain transactions.
Disk space, fees, and DOS protection – 06:11:06
John Carvalho explains that if a node’s disk is filling up, it will increase the minimum fee level, reducing the number of transactions it accepts. He describes a scenario where two conflicting transactions, A and B, are sent with the same fee (X). Only one of these transactions can be confirmed, meaning the sender effectively paid for one transaction but broadcast two, demonstrating how simply increasing fees doesn’t prevent denial-of-service (DOS) attacks. Carvalho emphasizes that this mechanism isn’t about fee replacement but about DOS protection.
Fee rates and DOS protection – 06:12:22
Miners prioritize transactions with higher fees to maximize their revenue and protect against denial-of-service (DoS) attacks. They set a minimum fee rate (e.g., x per byte) and choose transactions that meet or exceed this rate. If a miner has two transactions with a fee rate of x and another with 2x, they would choose the 2x transaction. If the combined fee rate of multiple smaller transactions doesn’t meet the minimum, they’re rejected. This mechanism ensures miners select the most profitable transactions while preventing attackers from flooding the network with low-fee transactions.
Opt-in RBF and mempool full RBF – 06:13:45
John Carvalho believes that neither opt-in Replace-by-Fee (RBF) nor full-mempool RBF are pointless, but neither went far enough. He prefers Litecoin’s approach. He opposed implementing opt-in RBF because he felt it was gaslighting Bitcoin users by changing how Bitcoin was used. He objects to arguments that assume developers know what’s best for users.
Intent flagging in transactions – 06:14:45
John Carvalho argues against adding intent flags to Bitcoin transactions, suggesting that such policies are unenforceable. He uses examples like “first seen” and “replace” flags to illustrate his point, emphasizing that Bitcoin Core doesn’t dictate user behavior but merely provides the software. He suggests those who want different policies should use or create alternative node software rather than relying on Bitcoin Core to change. Carvalho acknowledges the difficulty of forking or replacing Core but maintains that the responsibility lies with the community to adopt and support alternative implementations if desired. He reiterates that Bitcoin’s rules are defined by consensus, and other aspects are merely policies open to individual interpretation and implementation.
Miners obeying user intent and system value – 06:17:06
John Carvalho argues that miners obeying user intent, such as flagging transactions with specific conditions (like RBF or time-bound deletion), doesn’t necessarily create a more valuable system. He contends that if such intent-based features were profitable, miners would already be implementing them. The lack of adoption suggests these features wouldn’t increase miner revenue, and the only potential advantage would be for miners who choose not to enforce them. However, Carvalho acknowledges the counterargument that users might make more transactions if they had more control over their intent, implying a potential for increased system value if these features were available.
Socialized gain and individual expense – 06:18:17
Carvalho points out a flaw in the argument for increasing Bitcoin’s block size, referring to it as “socialized gain for individual expense.” He argues that while some individuals may benefit from larger blocks, the cost and burden of implementing this change would be shared by the entire network. This, he claims, is a flawed economic model, drawing parallels to the failures of communism.
He uses the analogy of a customer’s relationship with a mobile provider like T-Mobile: continued usage is contingent upon satisfactory service. If the service fails, the customer will discontinue their patronage. This example illustrates the principle of individual expense versus socialized gain, suggesting that individual users will abandon a system that doesn’t meet their needs, regardless of potential benefits to the broader network.
Service reliability and profitability – 06:19:06
Reliable service providers tend to be more profitable. Using the example of T-Mobile and SIM swapping, the speakers argue that if a service provider consistently fails to deliver on its promises, customers will likely switch providers. They highlight how some actors might prioritize profit over adhering to agreements or rules, even if it negatively impacts users, because it’s financially advantageous.
First-seen mempool policy – 06:19:37
John Carvalho explains that while individual Bitcoin nodes may observe transactions in a particular order (“first seen”), the Bitcoin network itself does not have a global “first seen” policy for ordering transactions in the mempool. He asserts that the concept of a “first seen mempool policy” existed, but its purpose wasn’t related to its name.
Mempool policy and implementation – 06:20:06
John Carvalho discusses Bitcoin’s mempool policy implementation. He argues that the current “first-seen” policy, where transactions are accepted in the order they arrive, wasn’t a deliberate design choice but rather the simplest way Satoshi could handle transaction conflicts. If the node detects a conflict with an existing transaction on disk, the new transaction is rejected. Carvalho believes this straightforward approach was the most obvious solution for Satoshi, not a conscious decision to prioritize certain transactions.
User perspective on transaction priority – 06:21:14
From a user’s perspective, the last transaction seen should be prioritized. If someone writes a check and then another check is presented for the same recipient and purpose, the second check should supersede the first, implying an issue with the initial check’s amount. Prioritizing the last transaction prevents funds from being stuck. The Replace-By-Fee (RBF) protocol was introduced to address the accidental implementation of a “first-seen” policy that caused transaction delays.
Mempool conflicts and double spending – 06:22:10
The provided transcript snippet discusses mempool conflicts, which occur when two or more transactions attempt to spend the same Bitcoin. The speaker expresses concern about potential conflicts arising from transactions within their mempool. However, the overall podcast summary does not specifically address mempool conflicts or double-spending in detail. The broader conversation revolves around the current state of Bitcoin, monetary theory, scaling solutions, and the importance of economic principles.
CPFP (Child Pays for Parent) – 06:22:24
CPFP (Child Pays for Parent) is discussed as a complex feature beyond Bitcoin’s initial design. The conversation focuses on the challenges of implementing transaction selection and avoiding double-spends in a memory pool. Checking for duplicate inputs across all transactions is computationally expensive. Replacing an existing transaction with a conflicting one can disrupt the entire transaction graph. The simplest approach in early development is to reject new transactions that conflict with existing ones in the mempool.
Mempool management and fee rates – 06:24:30
The provided transcript segment discusses Replace-by-Fee (RBF), a method for managing Bitcoin transaction fees and mempool congestion. It explains the original concept of Opt-in RBF, where a user could replace a pending transaction with an identical one but with a higher fee to incentivize miners. This was achieved by including a flag in the transaction, allowing nodes to efficiently identify and process these replacements without disrupting the transaction graph. The discussion also mentions how RBF evolved to handle more complex fee structures and relationships between transactions (child pays for parent), although the specifics of these later developments are not detailed in this excerpt.
Mempool complexity and Peter Wuille’s work – 06:25:54
John Carvalho discusses Peter Wuille’s work on a distributed mempool, which involves complex graph processing of inputs and outputs to manage transaction conflicts. This approach allows holding conflicting transactions in memory until higher-fee transactions outweigh and replace them. However, the complexity of this approach, akin to a “traveling salesman problem on steroids,” makes performant implementation challenging, requiring heuristics and approximations. This difficulty led to the adoption of Replace-by-Fee (RBF) as a simpler alternative, though mempool overflow remains a problem.
Memory and disk resource management – 06:27:37
Memory is treated as the most expensive resource, while disk space is the cheapest. Transactions are stored on disk to satisfy fee policies. This approach is insufficient for mining. A single table holds all transactions, regardless of confirmation status. Compact block headers are used to confirm transactions. Metadata like transaction size, signature count, lock time, total weight, and double spends are necessary for validation. This information is retrieved from disk when needed.
First-seen policy and miner profitability – 06:29:25
The provided transcript excerpt discusses miner profitability in the context of a full mempool. It explores the implications of a “first-seen” policy for miners, arguing that simply adopting this approach wouldn’t necessarily lead to optimal profits or prevent miners from going out of business if they aren’t optimizing their fee selection based on transaction size. The discussion highlights the importance of fee optimization for miner profitability, especially when block space is limited.
Miners’ preference for first-seen – 06:30:04
Miners generally prefer to mine on the first-seen block they encounter. While the speaker expresses support for this approach, they also acknowledge the complexities and nuances involved in transaction ordering and optimization within a block. They highlight the immense computational challenge of optimizing transaction inclusion to maximize miner revenue, suggesting that the potential gains might be negligible compared to the effort required. The analogy used compares this optimization problem to the complexities of optimizing touchscreen responsiveness on a mobile phone, implying that the cost-benefit analysis might favor simpler approaches.
Computational cost and fee optimization – 06:31:10
Miners currently prioritize mining empty blocks due to their speed and validity, especially with the block subsidy as the primary reward. However, as the subsidy diminishes and fees become the sole reward, miners will need to optimize fee selection, considering computational costs like time and electricity. While optimizing for small fee differences might seem insignificant, it becomes crucial in a zero-sum game like mining. The discussion emphasizes the balance between computational cost and potential profit, suggesting miners should invest in optimizing what they’re hashing for to maximize returns as fees gain importance.
Security, Cipherpunk mentality, and the state – 06:35:25
John Carvalho discusses Bitcoin’s security model in the context of state power. He argues that a state with concentrated mining power has a significant advantage due to efficiency. He explains that censorship resistance relies on users increasing fees to incentivize miners to include their transactions, even against state censorship. However, he acknowledges a weakness in this model: if the state controls a majority of the hash rate, fee increases become ineffective.
He describes a hypothetical scenario where a global consortium, like the IMF, mandates digital signatures for all transactions, effectively controlling the flow of Bitcoin and reintroducing traditional financial surveillance. In this scenario, unapproved transactions are deemed money laundering, and miners are forced to comply with the regulations. This effectively neutralizes the decentralized and censorship-resistant nature of Bitcoin, bringing it back under the control of existing financial institutions.
Bitcoin’s security model and censorship resistance – 06:41:02
Bitcoin’s censorship resistance is linked to its design, specifically how it handles situations where state actors attempt to control or censor transactions. Even if state-controlled or influenced miners gain a majority hash rate, the system is designed to incentivize other miners to participate when transaction fees increase due to unconfirmed transactions. This dynamic competition among miners, driven by profit, helps maintain the network’s decentralization and resist censorship.
State censorship and fee increases – 06:43:00
State censorship resistance in Bitcoin is tied to transaction fees. Miners, incentivized by profit, will generally process transactions with the highest fees. If a state tries to censor certain transactions, those willing to pay higher fees can still get their transactions included. This premium, the difference between the state’s accepted fee and the higher fee paid, effectively subsidizes the mining operation, ensuring censorship resistance.
However, this dynamic also highlights a potential vulnerability: if the state controls a majority of the hash rate, they can enforce censorship. Efforts like Braidpool aim to mitigate the advantages of centralized mining and enhance privacy to counter this threat. Decentralization and operating at a smaller scale are crucial for maintaining censorship resistance against state actors who may censor transactions to protect their own monetary interests.
State’s incentive to censor – 06:46:15
The state is seen as the primary entity with the incentive to censor transactions. Current systems like voting haven’t effectively countered this. Miners already comply with certain regulations (like OFAC), and if the state mandated stricter censorship, miners without sufficient hash power would likely be forced out of business due to orphaned blocks. This control could extend to Lightning Network as well, further centralizing power.
Lightning Network and regulation – 06:48:41
John Carvalho expresses concerns about Lightning Network’s regulatory future, citing potential licensing requirements for Lightning Service Providers (LSPs) similar to money transmitters. He questions the motivation behind working on Lightning if censorship resistance is the primary goal, given the potential for its circumvention. Carvalho acknowledges the uncertainty of whether the state could incentivize miners to censor transactions or if users would pay enough to prevent it. He emphasizes the importance of understanding Lightning’s mechanics and criticizes those who ignore them, focusing instead on personal gain.
NGU (Number Go Up) and deference to the state – 06:51:10
Carvalho asserts that institutional, “White Market Bitcoin” lacks security due to its inherent compliance with state regulations. He argues that actors unwilling to defy these rules are irrelevant to Bitcoin’s security model, including major exchanges and miners. He points to France’s increasing criminalization of cryptocurrency transactions involving anonymization as evidence of this vulnerability. Carvalho dismisses much of the current Bitcoin discourse, particularly around price speculation (“Number Go Up”), as irrelevant, viewing it as a casino rather than a truly secure and decentralized system. He believes the focus should be on “Black Market money” to maintain Bitcoin’s core value proposition.
Reasons for discussing Bitcoin’s security model – 06:53:25
John Carvalho discusses Bitcoin’s security model on podcasts to educate those unfamiliar with its vulnerabilities. Many newcomers have only heard positive narratives about Bitcoin and are unaware of potential risks, such as a 51% attack that could compromise its value proposition. Despite these risks, Carvalho believes Bitcoin’s decentralized nature allows it to “keep coming back” even after such attacks, similar to gold’s resilience throughout history. He emphasizes the importance of working on the software and tools that enable Bitcoin’s recovery and long-term survival.
Bitcoin’s potential subversion and resilience – 06:55:50
Carvalho argues that Bitcoin’s scaling issues are not solely technical but stem from conflicting requirements between its use as black market versus white market money. He believes Bitcoin functions adequately for black market purposes and that focusing on complex, centralized scaling solutions for white market adoption complicates the system unnecessarily. He suggests that simplifying the requirements by prioritizing black market use cases would clarify Bitcoin’s direction and resource allocation.
Lightning Network subsidies and scaling – 06:57:36
John Carvalho argues that the Lightning Network, like other scaling solutions, is subsidized and won’t be tolerated by regular users due to its complexity. He believes that focusing on such solutions wastes resources that could be used for more practical developments. Carvalho emphasizes the importance of direct commerce and criticizes middlemen who exert control and introduce regulations. He uses the analogy of banks and the Federal Reserve to illustrate how subsidized entities can gain control of a system, highlighting the risks of centralized mining pools and protocols like Stratum V2. He argues against these centralized systems as they create vulnerabilities to censorship and control, ultimately hindering the decentralized nature of Bitcoin.
Mining protocols and security – 07:02:02
John Carvalho expresses concerns about miner censorship and the effectiveness of proposed solutions. He questions whether large mining pools truly solve the problem or simply create a false sense of security. He uses examples like Dandelion, Stratum V2, and Fiber, arguing that while well-intentioned, they don’t significantly improve security. Carvalho highlights Braidpool as a potentially promising solution due to its focus on the right problems, but remains unconvinced of its ultimate success. He criticizes the tendency of these projects to oversell their benefits, diverting resources from other potential solutions.
Braidpool and centralized mining – 07:04:44
John Carvalho discusses the limitations of various Bitcoin scaling solutions, arguing that they haven’t achieved much. He mentions Braidpool, which received funding after six years but hasn’t effectively addressed the scaling problem. He explains that compact blocks reduce latency and orphaning, especially for smaller miners who are disproportionately affected. However, larger miners use “spy mining” by connecting directly to competing pools, negating the benefits of reduced latency. Fiber, another proposed solution, offered a private relay network for faster communication but became centralized due to its vulnerability to spam. Its decentralized counterpart, a P2P network, offered no significant advantages over existing compact blocks. Ultimately, Carvalho concludes that these efforts haven’t meaningfully improved Bitcoin’s scalability.
Compact blocks and latency reduction – 07:07:23
While compact blocks did reduce latency, they didn’t meaningfully address the disadvantage faced by small miners. The current low orphan rate and latency are deceptive, as they are artificially maintained by the current centralized mining landscape. A more decentralized mining environment would expose the underlying latency and orphan rate problems.
Orphan rates and mining centralization – 07:08:16
The provided text does not contain a discussion about orphan rates and mining centralization. The conversation snippet focuses on the effectiveness of mixers for privacy in Bitcoin transactions, expressing doubt about their sufficiency in a threat environment.
Privacy and threat environments – 07:08:40
John Carvalho expresses cautious optimism about Bitcoin privacy, acknowledging the complexity of the issue and his ongoing learning process. He believes in the potential of zero-knowledge proofs to decouple inputs and outputs, significantly enhancing privacy. While acknowledging the persistent challenge of identifying parties in transactions, he suggests that sufficient anonymity for necessary actions might be achievable. He defers to experts in cryptography, focusing on his own expertise in software engineering.
Social graphs, reputation, and identity – 07:10:23
The speakers briefly touch upon the challenge of balancing social graphs, reputation, and identity with privacy in Bitcoin. They acknowledge the tension between these concepts, as digitized trust and self-sovereign identity seem to work against privacy. The concept of social scalability, as defined by Nick Szabo, is mentioned. It’s described as technology enabling interaction and trade with untrusted strangers. However, the details of how this relates to Bitcoin or how it could be improved are not fully explored in this segment.
Social scalability and Bitcoin – 07:12:36
The speakers discuss the concept of social scalability in the context of Bitcoin. One perspective views Bitcoin as a tool for social scalability, enabling trade with strangers globally without needing extensive personal information. However, counterarguments suggest that true social scalability requires a degree of social interaction and identity verification, challenging the notion of complete anonymity. The discussion explores the tension between anonymity, privacy, and security, with one speaker arguing against the idea of anonymity as a default mode of operation. The conversation also touches upon the idea of minimizing witnesses and metadata to enhance privacy in Bitcoin transactions, while acknowledging the importance of voluntary interactions and individual freedom.
Individual empowerment and anonymity – 07:16:48
While Bitcoiners often tout “Don’t trust, verify,” trust is essential for a functioning society and market. Low-trust environments are unproductive and dangerous, whereas high-trust societies, like Japan, offer certain advantages. Trust facilitates trade and social interaction, enabling scaling and participation in society. A free market fosters trust through reputation systems.
Trust in society and the role of the state – 07:18:01
Trust is fundamental to societal operations, especially historically when assurance mechanisms were limited. Modern banking systems, while sometimes perceived as sources of scams, are often instruments used by the state, which is the primary perpetrator of large-scale financial manipulation. The example of Japan’s gold confiscation illustrates how state intervention can erode public trust. Checks and credit cards, both initially reliant on trust, have evolved in terms of societal acceptance and processing speed. Credit cards function as dynamically generated checks, with a complex verification process that was initially slower but now faster than cash transactions.
Payment methods and trust – 07:20:15
Different payment methods have varying levels of trust associated with them. Cash is considered relatively low trust due to the possibility of counterfeiting. Credit cards and checks are generally high trust, but issues can arise. The example of El Salvador accepting Bitcoin illustrates the challenges in using Bitcoin for everyday transactions, highlighting the potential for confusion and delays. Historically, stores used systems like Rolodexes to track problematic customers, which eventually led to the development of credit bureaus and credit reporting agencies as a market solution to trust problems. These agencies assess creditworthiness and help businesses decide whether to extend credit. Regulations now control these agencies and credit cards.
Credit reporting agencies and regulation – 07:22:17
The provided text excerpt does not contain any discussion about credit reporting agencies or regulation. Instead, it focuses on trust in society, online interactions, and briefly mentions hardware wallets like Ledger in the context of self-custody.
Hardware wallets and self-custody – 07:23:46
John Carvalho expresses early skepticism towards Ledger hardware wallets based on their initial design and documentation. He details his history of identifying security vulnerabilities in tech products, including a competitor’s product during his time running a network security company, simply by analyzing their public information. He highlights his past concerns about Ledger’s security model, which were voiced in online forums and discussions with Ledger’s CEO, predating the Ledger data breach. Carvalho emphasizes that his skepticism wasn’t based on in-depth code analysis but rather on publicly available information about the wallet’s architecture.
Security vulnerabilities in Ledger – 07:27:14
John Carvalho discusses Ledger’s history of security vulnerabilities. He describes an early Ledger version without a screen, relying on a card with character pairings. The user would input characters from the card corresponding to prompts from the Ledger software. However, this system was vulnerable to malware, which could potentially collect enough information to compromise the device after a limited number of transactions. Carvalho also mentions Ledger’s use of four “attestation keys” with publicly known counterparts, raising concerns about potential security risks. He criticizes Ledger’s approach to security, citing a pattern of downplaying vulnerabilities and promising fixes in future releases.
Disclosure of secrets on Ledger devices – 07:36:27
John Carvalho discusses the Ledger hardware wallet vulnerability, highlighting that a shared secret was used across all devices, making them susceptible to exploitation. He explains that with root access, one could drain wallets or manipulate the bootstrapping process. Carvalho even explored the possibility of physically extracting the secret from the chip, estimating a cost of $100,000 at the time.
He emphasizes that obtaining this secret would allow draining a significant number of wallets via malware. He further criticizes the multisig implementation where signatures are brought together on a single, potentially compromised machine, negating the security benefits. Carvalho’s concerns extend to other hardware wallets, mentioning the Bitkey device and its screenless design as a potential point of analysis. He expresses general skepticism about Bluetooth handshaking for establishing trust in such devices.
Compromised machines and hardware wallets – 07:42:00
John Carvalho and Eric Voskuil discuss the security implications of hardware wallets, particularly in light of the Bybit exchange hack. They question the efficacy of hardware wallets when used on potentially compromised machines, highlighting the risk of malware presenting fake transaction details for signing. Even with a hardware wallet, using a compromised computer negates its security benefits. They explore the possibility of an inside job at Bybit, given the magnitude of the loss.
Carvalho emphasizes the importance of extreme caution when dealing with large sums of cryptocurrency, suggesting methods like using air-gapped computers and transferring transaction details via QR codes or new USB drives to mitigate risks. He criticizes the blind trust placed in hardware wallets, arguing that if a secure machine is required for their use, the hardware wallet itself becomes redundant. The discussion underscores the need for a more robust security approach than simply relying on hardware wallets, especially when large amounts of money are at stake.
Methods for transferring signed transactions – 07:48:25
The provided transcript excerpt does not discuss methods for transferring signed Bitcoin transactions. Instead, it focuses on security concerns and the speaker’s experience designing a hardware wallet. It touches upon topics like government surveillance capabilities and the precautions taken to secure sensitive information, but it does not delve into the specifics of transaction transfer methods.
Threat scenarios and hardware wallet security – 07:50:47
John Carvalho expresses concerns about the security of hardware wallets, highlighting the need for realistic threat assessments. He recounts a power-faulting exploit demonstrated on a Trezor device, where the attacker extracted the private key by analyzing power consumption variations during cryptographic operations. Despite this vulnerability, Carvalho commends Trezor’s transparency about their device’s limitations, contrasting it with Ledger’s marketing of “bank-level security” which he views as misleading. He emphasizes the importance of design, competence, and honesty in hardware wallet security, advocating for simplicity and acknowledging the potential for vulnerabilities. Carvalho criticizes Ledger’s history of security issues and questions their market dominance despite these flaws.
Hardware wallet usage and personal comfort – 07:56:40
John Carvalho uses a hot wallet on his mobile phone without a screen lock. He prefers this method due to his comfort level and past negative experiences with hardware wallets. He recounts a story about using a Trezor hardware wallet and feeling uneasy about it, prompting him to move his Bitcoin off the device the next day. Years later, the Trezor failed to boot, reinforcing his preference for hot wallets. He advises against blindly following others’ self-custody methods, emphasizing the importance of choosing a storage solution that aligns with one’s personal comfort and technical capabilities. He also mentions that he doesn’t like hardware wallets because he forgets how to use them and finds the user experience cumbersome.
Coldcard wallets and user experience – 08:02:23
John Carvalho discusses the security of hardware wallets, suggesting they may be a prime target for attackers due to their dedicated purpose of storing Bitcoin. He contrasts this with general-purpose computers, which he views as lower threat devices. He references Peter Todd’s argument that state-level actors could potentially subvert these devices for malicious purposes. The discussion also touches upon Opendime, another Bitcoin storage method considered less secure.
Security issues in the VX project – 08:03:25
John Carvalho discusses a security issue in the VX project (renamed from SX) involving a command for generating seeds. Originally, this command embedded a pseudo-random number generator (PRNG), which posed a security risk. Carvalho modified the project so that seed values had to be provided on the command line, preventing reliance on the potentially compromised embedded PRNG. He expresses concerns about hardware random number generators (RNGs) in general, arguing they are a significant attack vector.
He cites examples of vulnerabilities caused by flawed RNG implementations in Bitcoin Core’s Windows builds and Android. Carvalho advocates for alternative methods of generating randomness, such as dice rolls, and criticizes the reliance on hardware RNGs in major wallets, including Bitcoin Core. He points out that Bitcoin Core’s developers acknowledged the RNG issue but implemented an obscurity layer as a mitigation rather than a proper fix.
Seed generation and hardware randomness – 08:12:05
John Carvalho discusses seed generation and hardware randomness. He recommends using physical methods like dice or bolts for seed generation, along with proper documentation to avoid biases. He acknowledges the risks associated with specialized hardware, citing an incident where a random number generation function in “Mastering Bitcoin” led to vulnerabilities. Carvalho clarifies his role in the incident, explaining that he updated the code to explicitly use an insecure method after realizing the existing implementation was slow and used an insecure random number generator. He emphasizes the importance of true sources of randomness and highlights that generic PCs and hardware wallets don’t offer this security.
Mastering Bitcoin and random number generation – 08:17:41
Eric Voskuil discusses issues with the random number generator in Mastering Bitcoin. He explains that the original implementation relied on hardware, which was considered insecure. While he suggested improvements, ultimately the command was removed due to misuse and the difficulty of ensuring proper usage. Now, demonstrating Bitcoin’s behavior and generating random keys is more complex. He emphasizes the importance of not trusting hardware random number generators for serious Bitcoin applications.
Full Transcript of My Interview with John Carvalho and Eric Voskuil
Vlad Costea 00:00:50 Hello there and welcome to the Bitcoin Takeover podcast. This is season 16, episode ten. This episode is sponsored by SideShift, a Bitcoin.com news. You’re gonna roast me for this one, John. Layer two labs, no ones and hodling. And we are live with John Carvalho and Eric Buzzkill in an episode that’s going to be very controversial. Hello, gentlemen.
John Carvalho 00:01:13 Hey, Vlad. Hey, Eric. Hi.
Vlad Costea 00:01:16 So, obviously, we’re not very happy about the state of Bitcoin these days. We seem to be pushed in a position where we have to become friends with the guys we used to pretend to hate. Let’s start it from here. How does it feel to be winning? To be mainstream?
John Carvalho 00:01:38 Is that where we are? Is that what Bitcoin is mainstream now? I definitely think it’s come a long way as far as you know, calling it mainstream. You know, it’s getting talked about by presidents. And you know, we have El Salvador, you know, tweeting about how, when or whenever they’re buying bitcoin and this kind of thing.
John Carvalho 00:01:57 but as I’m sure the panel will agree. Bitcoin was not necessarily made to be embracing government. It’s kind of anti-government. And I think Eric would say that white market bitcoin is not really feasible. and it sucks because it seems like obviously most of the motivation to Bitcoin is to speculate on getting rich through it. And thus that leads many people to just behave like Ponzi evangelists.
Vlad Costea 00:02:28 Numbers go up, right? I mean, I remember when Chris DeRose was talking about this and I used to think he’s insane or that he lost it or something. It just seems like he was just a bit ahead of the curve, and he was able to foresee what’s coming.
John Carvalho 00:02:47 In some ways, I mean, Bitcoin Uncensored was pretty, spot on with a lot of things. But he also believed in Bitcoin cash and kind of went for a loop towards the end, so I don’t know what to say there.
Vlad Costea 00:03:02 He was also the marketer for counterparty for a long time, and he was one of the first toxic maximalists in this regard, because he was of the opinion that Ethereum is basically a waste of time, and counterparty can do whatever Ethereum does.
Vlad Costea 00:03:21 I think Vitalik article from 2015, which describes what he called at the time Bitcoin maximalism, was the response to this reaction where people said, yeah, whatever, play with your Ethereum, but we can just copy and paste the code into counterparty and make it happen on Bitcoin. And that seemed to be the prevalent attitude at the time. And this was what Bitcoin maximalism used to be about. Now it’s about just saying everything is a scam.
John Carvalho 00:03:52 I mean, there were always people saying dumb or slash interesting things about Bitcoin maximalism, but generally everything got really dumbed down. And I kind of think of it more like maximizing the, you know, how much people can use Bitcoin or how many people use Bitcoin, how many transactions, whatever, just trying to optimize that quantity. But yeah, I think in the early days most of us did just mean hyper bitcoin ization everything. You know Bitcoin is a black hole. Everything is going to have kind of succumbed to the gravity of Bitcoin. There’ll be nothing left.
John Carvalho 00:04:28 I don’t think any of us believes that anymore.
Vlad Costea 00:04:32 But it’s funny right? People look at the mempool today and they say see we told you we don’t need to increase the block size. We told you we don’t need to scale in any way because there is no demand for block space. We were very smart to keep it small because it seems like there is no real demand for it. And in the meantime, people pay $4 to transfer USDt on Tron.
John Carvalho 00:04:58 I didn’t realize Tron had become that expensive for tether.
Vlad Costea 00:05:02 It did because people use Western Union or Moneygram as a point of reference. And I think there’s a website. It’s called tether Gas Fees or something, and it compares how much it costs to send Usdc across multiple networks. And Tron is usually between 2 to $6. And Bitcoin is what, $0.30 right now.
John Carvalho 00:05:31 Right. But in the end, like you still can’t do tokens on Bitcoin because once you get real volume, the fees become extremely high and obviously defend. And then defending whatever mechanism you’ve used to establish those tokens becomes impossible depending on how you designed it.
Vlad Costea 00:05:50 Yeah, but coming back to the idea of Bitcoin maximalism. Tether started on Bitcoin on the omni layer or mastercoin.
John Carvalho 00:05:59 So it’s funny too because I always thought, sorry.
Vlad Costea 00:06:02 Go ahead. No. You always thought what?
John Carvalho 00:06:06 I always thought Omni was just simple enough. In other words, we don’t need taproot assets. Or it’s like if you want to do tokens on bitcoin, how much simpler can you get then encoding it inside of the op return, and just having another layer that interprets the encoding and just use Bitcoin transactions like.
And you could do lightning channels that way where you have the tokens native in the channels, like if that’s what you want, just do that. And it’s like so simple. but nobody wanted to revive Omni. Everybody let it die. Once everything moved to altcoins and everybody wanted to reinvent tokens on Bitcoin. I also think Omni was the first layer on Bitcoin.
Vlad Costea 00:06:47 I think it was Counter Party. It was launched in January of 2014, and in March I think Mastercoin was launched.
John Carvalho 00:06:58 I don’t remember how counterparty works. Is it like the consensus? Is it merge mined or I don’t remember if it’s actually just a separate, totally separate blockchain or what?
Vlad Costea 00:07:07 No, it’s not a blockchain. It’s a protocol that uses up return, just like Omni. I’m not sure about the specific differences between the two. I think counterpart.
John Carvalho 00:07:17 Somehow ended up with its own, with its own token you had to use, whereas Omni did make an ICO token, but you never had to use it.
Vlad Costea 00:07:27 So for counterparty, if you wanted to issue an asset. Only if you wanted to name it something, you had to use the counterparty token. If you only use Bitcoin for it, you would get something that’s called like an unnamed asset which has a random string of letters and numbers in it. So if you wanted sort of a vanity asset, you had to burn 0.5 counterparty tokens or something. You’re muted John.
John Carvalho 00:08:04 I was saying we were talking about how we’re unhappy with Bitcoin and now we’re into the history of tokens.
John Carvalho 00:08:08 I’m not sure where we want to go.
Eric Voskuil 00:08:11 Yeah, I’m not even in this. I don’t know anything about tokens I never cared. So you guys can have a conversation about it.
Vlad Costea 00:08:19 But what’s a token anyway? Is it just a non bitcoin asset that’s issued on the blockchain.
Eric Voskuil 00:08:26 I mean it’s clear to me. Yeah it’s sure. But it’s there’s no point in it. So I, I never you know I, I mean I think very very early on I don’t know 2013 when I first started looking, I was like, you know, this might be interesting.
I look at colored coins, you know, and then it didn’t take long before I realized that, you know, whatever it was that was providing the security model of Bitcoin, provided nothing, in that context. So, I just didn’t see any point in it.
And it doesn’t mean you can’t build up a lot of infrastructure and spend a decade working on it. And, you know, it appears to work. The point is that, it can be it can be subverted trivially.
Eric Voskuil 00:09:16 So, you know, it’s a it’s a custodial problem, right? The way money works is, first of all, people don’t really understand money. Obviously, there’s a lot of opinions on money, but money is the thing that doesn’t represent anything else, right? For example, a silver certificate, you know, say, oh, US gold certificates. Silver certificates? Those are credit.
Those aren’t money. Those are certificate that promises you to get the other thing that it certifies. That other thing is held by a custodian. In this in that case, you know, the US government, the Treasury, Federal Reserve, whatever the original current US, the current US dollar before it was linked from gold was a was a gold certificate.
You could take it in and get your goal. it represented something else. And of course, that something else depended on the fidelity of the custodian, which in that case would have been the fed. The custodian defaulted. Very easy. Right. The the gold standard worked for them, didn’t work for anybody else.
Eric Voskuil 00:10:29 Right. The because the custodian was the weak link in the security model. So look at Bitcoin. Well well sorry step back a step. Step back a little bit more. now we have the US dollar, which is not backed by anything. So it’s not a it’s not a certificate. It doesn’t represent anything else.
It’s just money right. Bitcoin is to you know going back to you know, take it back all the way to Mises. They don’t want to admit this. It actually is money right. Because it’s it’s government. It’s a tax. You know. And I’m a I’m an anarchist. I understand all that. But I deal with reality. The dollar is money.
It’s not credit. The reason it’s money and not anything else is because apart from being used as money, it doesn’t represent anything but itself. It doesn’t represent a promise to get anything from anybody. It’s a hope that somebody will value it more highly than you know, than you do. So you can trade it for something.
Eric Voskuil 00:11:31 that’s what makes it fiat. It’s not anything else. It’s just money. Right? And that’s what makes Bitcoin fiat. It’s not anything else. It’s just money, right? It can be you know, dollars can be used to, you know, as straws and wallpaper or toilet paper and, and bitcoin can be used for time stamping etc..
But those aren’t those, those, those uses don’t exist. The money doesn’t exist without being the money. The money is really the, the thing. And that’s what makes it fiat by definition, you know, basic economics definition. That’s what makes it money as opposed to credit. So money doesn’t require a custodian. Right.
That’s that’s an important observation. gold doesn’t require a custodian, somebody to trade your gold in for whatever it represents. Right. Silver dollars present dollars, all dollars. You know, they did, and it failed. Bitcoin. Nobody. Nobody’s a custodian of your Bitcoin. nobody exchanges it for the gold so that you can get stuff right.
Eric Voskuil 00:12:37 You get it because somebody else is willing to trade you for it and that’s it. So it’s a social consensus. Whatever. Right. So as soon as you take that concept and you and you and you slap on a custodial, you know, is it a completely unrelated feature? Right?
Like, you know, we’re going to use this Bitcoin mechanism to timestamp the existence of a contract that represents whatever say it represents gold, right. So we we tokenize gold. I own the gold because I own the keys that can sign for the sign, for the certificate that says I got the gold. So it’s a gold certificate on Bitcoin token color coins.
Same thing. Well, where’s the weak link in the security model? It’s the guy who’s got all the gold, right? Who’s the custodian for the gold? So say it’s concert tickets. It’s the. It’s the theater, right? It’s the stadium. Who physically controls the seats? They could say, screw your. Screw your Bitcoin colored coin. Ownership of that seat.
Eric Voskuil 00:13:34 if it’s land deeds, right? You remember the the, you know, the South America, Latin America was all going to put all their because all the they always had these problems with, with deeds and land. Right. They would just put it on the blockchain, it would tokenize it and they could prove who owned it.
Well, the problem is that the problems that exist in those, you know, parts of the world aren’t because they lost the records. It’s because the custodian isn’t trustworthy. Custodians like take Zimbabwe. Right? Custodians. You know, you say you put all your your land deeds on the on the, on the blockchain.
And the custodian says, great, we’re going to honor the, you know, whoever can sign for this, whoever can sign the certificate owns the land and it can trade freely, and we’ll honor that. And then one day they wake up and they say they’re not going to honor that because of political whatever. Right? Which they’ve done, they’re doing, say, now in South Africa also what they’ve done in Latin America many times.
Eric Voskuil 00:14:31 So how did tokenizing it solve anything? Nothing. It didn’t do anything. It just gave people a false sense of security. It’s the same problem as the Oracle problem, essentially, right? The custodian physically controls the asset. which generally, you know, publicly is the courts, the state, whoever. they can invalidate the contract.
So I just looked at it and said, okay, well, it’s interesting, but it’s not a more secure model than what we already have, and it’s less efficient. Right. just I looked at something like, you know, take StubHub or Ticketmaster or whatever and just subvert their whole business model by putting everything on, you know, blockchain tickets and the and the concert stadiums just honor whoever owns the ticket.
And so the secondary market is just a natural extension of the primary market. And it’s all great. but they don’t have to honor it. They can just ignore it. So it doesn’t change anything, and it’s much more efficient for them to just run a website that sells tickets, right? Which is what Ticketmaster is.
Eric Voskuil 00:15:36 So. So again, there’s no to me, there’s no use case. There’s no reason to do it. So I don’t work on it. I never have. And that’s why I don’t know much about it because I don’t care.
John Carvalho 00:15:50 Why do bitcoiners talk about money so much? And and the definition of money. And, you know, they want to say medium of exchange and unit of account and store of value and, you know, have all these acronym terms that they say these are the qualities of money. And when you meet these checklists, now you are money and you’ve graduated to, I don’t know what world dominance or something.
Vlad Costea 00:16:12 yeah. And they say that we never had real money before Bitcoin like nothing.
John Carvalho 00:16:17 Oh this is the hardest money right. And and so it’s it’s there’s so many the best there’s.
Eric Voskuil 00:16:21 So many fun topics. There’s so many fun times.
John Carvalho 00:16:24 I’m just.
Eric Voskuil 00:16:24 I’m.
John Carvalho 00:16:25 Dropping out like they talk about it so much. So so much. But they don’t care about it so much.
John Carvalho 00:16:32 In other words, why is it? Why is money interesting in the first place? Right? It’s because we use it as a way to do commerce, as a way to have an economy, as a way to make things flow. It’s, it’s it’s a utility. But they always talk about these qualities because they think they, they want to attribute Bitcoin to being something that is inevitable or obvious.
I don’t know, I can’t quite figure out why they’re so interested in it, because I’m interested in these ideas, because I want to design things that solve problems and networks and such. So it’s like I when I think of it, I’m like, okay, well, should we even care about Bitcoin as money for like most commerce because we know it can’t scale.
And why do we keep talking about bitcoin as money if we’re not going to use that as money. You’re all just trying to use it as this speculative store of value for the most part, and only as money when you finally realize you do want to sell it.
John Carvalho 00:17:25 and so, I don’t know, I just I’m just ranting a little bit, but that’s, that’s what that that’s my reaction when I listen to bitcoiners talk about money, it’s just like, stop. Like, why don’t we just talk about something useful, you know?
Eric Voskuil 00:17:37 Well, you raised you know, you raised a lot of, like, I could I could talk for a long time on most of the issues you raised there. why? Well, first of all, Bitcoin is money, and that’s why bitcoiners talk about money. I mean, that’s that that to me is pretty self-evident. some people don’t understand that Bitcoin is money or what money is.
That’s a more interesting question. But, there’s an interesting. So I’ve been, you know, before Bitcoin existed, I was a long time libertarian, you know, card carrying member of the US Libertarian Party for like 20 years before I gave it up and decided I wasn’t an anarchist. And the and the true sense of the word and, so Bitcoin came along.
Eric Voskuil 00:18:17 I mean, I looked at digital cash. I was very interested in these things for a long time. people, and, so, you know, when I found bitcoin, I actually had had not looked at it for quite some time because I had I had followed and I didn’t think it was going to work.
And so as soon as I did look at bitcoin, I’ve been working on it ever since. and so it’s, you know, a stateless money is an important thing and we can talk about why and all that. But that to me that’s really what Bitcoin is all about. All these other things that people want to do with it, they’re they’re interesting, but they’re not useful to me. it’s not why I’m here.
And as far as the speculation goes, anything that goes from zero to non zero has infinite growth. So Bitcoin has experienced infinite growth. And speculators are going to speculate on anything that’s growing at an infinite rate. so that’s also self-evident. That’s going to happen. I just you know, that community will exist until it gets slaughtered by, you know, the lack of perpetual growth.
Eric Voskuil 00:19:28 the fact that something’s gone from zero to non-zero doesn’t mean it goes from zero to infinity, right? So I’ve written a lot about that. That’s all interesting, but so you set aside the tokenizers, you set aside the speculators and ask yourself why we’re here. and, you know, you asked a lot of good questions about money.
And I think, you know, you you’ve over the years expressed a genuine kind of desire to learn and understand that most people don’t. And, I can’t say that I showed up even even showing up the Bitcoin with all the experience I had reading on economics and politics and, you know, for years, I can’t say that I really understood money until I really had to start trying to understand Bitcoin. but, you know this, there’s these properties of money which you enumerated, right, that, that the kind of academics will say, well, if it doesn’t meet these criteria, it’s not money, right? Or this is basically what, what money is it has these three primary characteristics.
Eric Voskuil 00:20:26 Right. Store value unit account medium of exchange. but really, you know, those are there’s no clear line. So people argue forever about whether it’s, you know, a general like store value or a general, you know, widespread medium of exchange. but money fundamentally is just a medium of exchange, right?
The money solves the coincidence of wants problem. And so, that’s why it exists. That’s why it evolved. It evolves naturally. It evolved naturally in many different independent societies. and it typically evolved from commodity money. So my so I have this interesting rant about Mises and I think, maybe I could focus my comments here a little bit.
A lot of bitcoiners see themselves as libertarians, at least, you know, kind of early cypherpunk type Bitcoiners. And they gravitated towards Austrian economics, which, by the way, is not related to Mises being Austrian. It’s related to, I’m going to draw a blanket name now. That. I’m awful with names. It’s fucking embarrassing. I’ll think of it in a minute anyway.
Eric Voskuil 00:21:56 Early economist who wasn’t who was in Austria were the primary. You know, the academics were all in Germany at the time. And he was Austria was like, you know, backwater. So it was a derogatory, you know, this Austrian, Austrian guy, but, you know, value.
That’s that’s so this is where value is subjective comes from. It comes from the Austrian school solving the, the, you know, the the definition of value. because Adam Smith didn’t get it right. And, you know, of course, nobody else had it right. We had the diamond water paradox. Why is why is water sometimes more valuable than diamonds?
And then, so, you know, we get the Austrian school which says, hey, you know, value subjective. And, we’re getting we’re getting it. okay. Thank you. So Bangor, you know, Bangor, who also deserves, there were two guys I can never remember. The other guy that kind of co-developed the idea in the same year, but.
Eric Voskuil 00:22:48 But the idea of subjective value. Right. And and so it’s all really interesting. It goes forward, it gets improved upon, as economics has, has been since the time of Adam Smith. And, Mises comes along who’s just, you know, another in the, in the line of Austrian economists who believe that value is subjective.
And Mises, I think rightly so, you know, is critical of state money. But he’s so critical of state money, he he loses his objectivity. And I’m critical of state money, right. I know it’s it’s a tax, but Mises makes a number of critical errors. And those have been I. So I’m I’m a big fan of Rothbard.
Not not all of his writing, but but Rothbard is man economy in the state with power market. It was originally intended to be kind of an update of Mises. I think he was hired by, you know, Mises Institute to to write this thing to to kind of bring it, bring myself up to date to make him contemporary.
Eric Voskuil 00:23:54 And he and he he’s very careful not to make some of the errors that Mises makes. and he doesn’t make some of the errors that people attribute to him to this day that he makes in other books. He’s very so he’s being formal and he’s being careful. and so, you know, a lot of bitcoiners who see themselves as libertarians or anarchists and who adhere to the Austrian school, which, you know, the idea of subjective value, get really adamant about their understanding of some of these ideas that they took from Mises, or a misreading of Rothbard, which they aren’t alone.
A lot of others have done the same thing. And so this gets this gets to the idea of money. So I’ll be more concrete. So in Rothbard Mises, in trying to denigrate state money goes overboard.
He he rightly points out that, so he he tries to he tries to argue that paper money, you know, issued by the state is not money. Well, that’s not he gold’s money. Paper money’s not money.
Eric Voskuil 00:25:01 That’s just not true money. It’s clearly money, right? So why is he trying to do that? He’s trying to do that because he’s trying to denigrate state money. Why is he trying to do that? Because it’s a tax. Okay, but what makes it a tax? Is it a tax because the government creates it?
No. The government Doug Gold it wouldn’t be a tax. so, he, he makes this argument that, the creation of money itself is price inflationary? Okay. So this is another thing that, that, that, you know, modern Austrians will do. They’ll they draw this distinction, which is fair. You know, there’s a distinction between monetary inflation and price inflation. Monetary inflation is in these terms is any creation of money.
Right. There’s new units of money. Price inflation is the decreasing purchasing power of that money for whatever reason. Right. And there’s a clear link drawn in their minds between monetary inflation and price inflation. And I’m always careful to. When I’m speaking specifically clearly right, I will make the distinction between those two terms, because people get all up in arms about, you know, which one you’re talking about.
Eric Voskuil 00:26:20 Okay. But, this is a this is a, quantitative view of inflation. And in other words, strictly the quantity of the, of the money is, is, you know, the increase in the quantity is monetary inflation and the decrease in its purchasing power is price inflation.
And the, the, the dots that connect those two are supply and demand determine price increasing supply which which in their minds means quantity means a decreasing purchasing power. You know, I think any, decrease in the price of the money. So why do I say this is an error by my system, by everybody else? So Mises goes on to say, clearly somebody.
So, so clearly he’s trying to draw out the critics ahead of time. He’s trying to he’s trying to he’s trying to, and run the critics who will say, well, wait a minute. Gold’s not price inflationary, right. Throughout history, gold has not exhibited price inflation. It it exhibits price volatility but not a persistent, you know, unidirectional inflation which you would expect because it has been continuously mined.
Eric Voskuil 00:27:40 You know it’s still you know there’s still a lot of gold produced every year. So I quote the response he gives to his own, you know, kind of strawman or his own. It’s not really a straw man. He’s he’s he’s, what do you call it? steel Manning, I guess.
Right. and I quote him. and despite being fairly rigorous in other aspects, most aspects of the book, he just completely gives it a hand wave. He says, I can’t really explain it, but that’s how it works. Basically, he says something like, you know, everything’s really complex and, you know, interrelated and therefore which basically means, you know, he’s full of shit because by his own criteria, economics is a an axiomatic system.
In other words, you have a set of axioms. You drive, you derive principles from the theory. Right? And he’s not able to do that. Well, why isn’t he able to do that? Because it isn’t true. He doesn’t understand what’s really happening.
Eric Voskuil 00:28:35 He has a desire to denigrate money. So he takes one truth and he extends it to another situation where it’s not a truth because he doesn’t understand the basis of the truth in the first place. So then I’ll set that aside for for a second.
And if you I don’t know if you you know, you said seven hours here so I can I’m going to just ramble as long as I want, but, then you take like the, Names again. Cantillon. Right. You take the candle on effect, which he refers to in, in, in human action as well. And so I looked up, you know, I looked up candle.
I looked up all the history of, like, you know, none of these things were like, you know, first, like, Cantillon wasn’t the first to make these observations, these go these go back much further. Same thing with other name. I don’t think of it so. So Cantillon effect is this idea that, you know, when the creator of the money, in this case gold Cantillon was observing gold mining, issues, the money gets the greatest purchasing power out of it.
Eric Voskuil 00:29:52 And then as it, you know, moves through the economy, you know, it’s a it’s a decrease, over time. And, and so people have taken this Mises took this, you know, kind of as fact. And people. Bitcoiners love this idea. And of course, it’s a legitimate idea.
And Cantillon was observing a real phenomenon. But Cantillon points out that the the gold is being mined in the King’s mines. This is not market mining. This is the king who, who, who legally controls all of the gold mining and wherever he’s talking about. So the king.
So an ounce of gold might buy, you know, a donkey and a king, you know, can, can, can who mines all the gold, can charge whatever price he wants for the gold. For the new gold. Right. He’s got he’s got monopoly control over the over the over the over the production of the gold. Nobody can compete with them. Nobody can lower the price. so that that ability.
Eric Voskuil 00:30:53 So he can he can he can make a coin, put a, you know, put a one on it, say, you know, here’s, here’s one. And, and, nobody else can go make a bunch of other coins at lower cost and and bring the price down. You can actually increase the price over time and just charge whatever he wants, as long as people are still willing to pay it.
So that difference between the cost of it being mined and the cost and the purchasing power that it that it has is under monopoly control is senior rich senior refers to the king, right? The person with the privilege of being able to have the ability to charge more than it costs to produce. Right.
And when I say cost to produce, that includes your capital cost, right. The profit you would make maybe 10% on doing the work. That’s your that’s part of your cost, right. Pays for your time. So so competition is what brings prices of all things down to their costs, inclusive of capital and the purpose of, say, compulsory labour unionism or monopoly control or patents.
Eric Voskuil 00:32:01 The purpose of all these things is to prohibit competition using guns, so that you can charge whatever the market will bear, not what it costs you to produce. That’s called a monopoly price and the production of money. Senor. Senor charge. Right. Senor Ridge, is the profit that you make, which is above your capital cost, right?
In economics, the profit is the amount above your capital cost. Profit that you make is a privilege that you get for being the king. And he was Cantlon was observing the king’s minds, right? The king got a better got a better return from the money than everybody else did. On down the line.
What if those mines are not under monopoly control? Then the money is produced at market price. There is no signage and there is no tax. And there is no what we call Cantillon effect. He was not observing a market production. So we fast forward to my sister and my sis. My sis attributes the Cantillon effect to market production of gold.
Eric Voskuil 00:33:06 Yet he cannot explain why competition in market of production of gold does not bring the price down to market price, or even if it does, why the production of new units. Is price inflationary? Right? Given that those new units are produced at the market price, he acknowledges that it doesn’t make sense and it explains it away as it’s complicated.
Okay. It doesn’t make sense. And this is one of the most important concepts that Bitcoiners do not understand, right. The production of money or anything at market price does not create price inflation of the thing that’s being produced. It’s actually what keeps the price stable. So, dollars, backed by gold. If you were to trust the custodian.
Right. With gold being produced in a free market are not inflationary. And US dollars to a great extent, we’re very low inflation state money. Right. They were they were still inflationary because they did the custodian wasn’t really trustworthy. But as long as they were freely exchangeable, they maintained a very, very low rate of inflation.
Eric Voskuil 00:34:27 But there was still ongoing gold production. Right. And people were still trading in new gold for dollars. Okay. so what happened? You decouple the gold from the dollars. Why do you do it? Well, the same reason you created the system in the first place.
So you can do it right now. You can print dollars. So why don’t why don’t why are dollars then price inflationary. And and gold is not. Well, it’s not because the state’s printing them. It’s because nobody else can print them. Right? It’s the same issue. It’s monopoly protection of the production.
If you and I and everybody else in the world could freely print dollars, genuine, bona fide, high quality, same, you know, same difficulty production, exact same dollars, we could produce them. They would get produced to the point where they were being produced at market cost, and each hundred dollar bill would have the purchasing power of about $0.20 today. We’d have a portability problem, but we would not have inflation.
Eric Voskuil 00:35:29 And that’s actually what happens when the state, you know, prints, prints and prints eventually. It’s it’s the it’s in it’s inflated the currency so much that those units are no longer profitable. So you get to the point where it costs $0.03 to make a penny. You’re going to stop making pennies. And that’s what we’re going to do. You go to.
You go to Vietnam. You know, the last time I was there, I think it was 5000 dong was the lowest unit they had. I’m pretty sure they started at one, but 5000 dong was worth. I don’t know, about five. It was. Maybe it was $1,000. It was about $0.05. And I looked it up and I’m like, that’s about what it cost to make it.
This is going to go away pretty soon. Okay. So. State money is inflationary because of anti-counterfeit laws. It’s because of the monopoly privilege. And the every state that makes its own money accounts for signage, which is a profit on the minting of the printing of the money.
Eric Voskuil 00:36:30 It’s no profit on coins. They’re they’re produced at face value. but that signage is attributable only to the monopoly production. It’s not attributable to the production in general. And that is a huge error. It’s not an error that Cantillon makes, but it’s one that gets attributed to him because people don’t understand. They don’t. They don’t see the fine print there, he says.
The king’s minds, right? which I remember, I remember reading going, okay, there it is, right there. He knew what he was talking about. Gresham, you know, he understood. You know why? Why the why, the why? The money would go away. People would hoard one money versus the other because the monopoly producer was, effectively clipping the coins, right?
Debasing the money. why could it do that? Nobody else. Because it was illegal for other people to do it. so. Bitcoin is produced at a market price, right? the fact that there’s a constant rate of production tends to confuse the issue for people, but it’s not really it doesn’t make it it’s not actually any different, but it does cause people a lot of confusion.
Eric Voskuil 00:37:50 when gold gets when when you’re when you’re mining gold and it gets, say the the the demand for gold for some reason has gone up, maybe we’re sending a lot of, you know, ships into space and we need a lot of gold or whatever. And the price starts rising. Well what happens?
More competition comes in. Find more gold than mine. More gold, probably. You know, supply increases, price comes down, and the price of gold stays constant. Right? Price of gold drops. The demand for gold drops. People just stop mining it. No more gets produced. So it’s not. It’s not It’s not, it’s not flexible in both directions.
Bitcoin is right. When you when gold when Bitcoin is being produced. If the demand for bitcoin is going up block block production increases, the rate of production increases. the difficulty adjustment kicks in periodically and says blocks are coming too fast. It increases the difficulty. Slows blocks down, becomes more expensive. Produced Bitcoin and it returns to its cost.
Eric Voskuil 00:38:50 And of course people predict these things. So it stays fairly, you know, extremely close to the cost line. The cost of producing the, the the the cost of producing Bitcoin stays very close to its market price. It works in both directions though we have difficulty adjustments downward as well. And so so the amount of bitcoin being produced does not change.
But it’s still just like gold is produced. All of it is always produced at the current market price or the best you know the best information available as to what the what the market price is so certainly volatile, but there is no sign rich, which means there’s no price inflation in Bitcoin production. so why why is that more confusing.
Well, it’s, you know, it’s because the the quantity does not change, unlike gold, but the difficulty of producing it, the cost of producing it changes. And and gold’s cost of producing it generally doesn’t change. Right. If you just take a constant cost of production, what’s going to happen? Price rises would just be more people producing.
Eric Voskuil 00:39:59 More of it will get produced at that constant cost. Right. So the theory is very simple, like the quantity varies in gold where the cost varies in Bitcoin. But price is A, is A, is a is a result of supply and demand. Right. And if you if you if you change either one, you’ve affected the price and they, they both do this.
So it looks like my son is moving and I’m, I’m washing out, which is cool. so I could I could say a lot more on it. I’ll, I’ll pause there. I’ll let somebody else talk for a bit. But, you know, money, money confuses people. And we get a lot of things.
You know, we talk about fractional reserve again. Mises. Rothbard. Rothbard not making the error. He never made that error that Mises made with the Cantillon effect. And he and he didn’t make the error with fractional banking that people think he did for the statements. but so much energy in Bitcoin has been put towards this idea of.
Eric Voskuil 00:41:06 that, that production of the money is inflationary. Even bitcoin. Right. That production of other currencies, all coins for example, is somehow, you know, if we allowed that then there would be infinite inflation and all the money would be worth zero. Well clearly that’s not observable. So what’s wrong with your theory?
Right. so there’s, there’s clear stark errors with, with people’s understanding. and I’ve been, I’ve been beating on this drum for ten years. And some people, you know, have come to understand. But most people, you know, they read the Bitcoin standard and the, you know, bullshit Mises economics and, you know, and some other stuff that wasn’t from ISIS.
And they and they, you know, that’s it. They they’re absolutely convinced they understand how things work. And I’ve just seen so much of what drives the community, being driven by that nonsense that, it’s not surprising to me at all that that huge amounts of time we’ve wasted and we don’t make the progress that we think we should be making.
John Carvalho 00:42:14 I took some notes while you were speaking, because I don’t know that I have anything totally coherent, but a few maybe questions or statements. I really liked when you kind of made me think about that. what we call the Bitcoin subsidy isn’t a subsidy because it’s paid for at market rate. I was a little disappointed because you used the word subsidy. And your 21 questions interview with Vlad that I watched.
Eric Voskuil 00:42:39 The technical term when using Bitcoin for the quantity of production. But it’s not, you know, it’s not a subsidy in the sense of somebody paying for somebody else’s stuff. Right?
John Carvalho 00:42:48 Yeah. But the as you would agree, the semantics become really important because Bitcoiners love interpreting things the, the slimy way. and so when you use it, you know, he means subsidy, you know, like.
Eric Voskuil 00:43:03 Well, it’s ironic, they’ll argue about the words incessantly and then come back to me and saying it’s, you know, I’m just playing semantics game. Yeah.
John Carvalho 00:43:11 Like, no, I see it all the time.
John Carvalho 00:43:12 I watch your arguments and it’s like, you know, you’re just being semantic. And I’m like, oh, you shouldn’t have said that, right?
Eric Voskuil 00:43:17 Like, I’m talking about supply and demand. We’re talking about price. We’re talking about supply and demand. Right. There’s a there’s a there’s an economic relation that we both agree on that supply and demand determine price.
John Carvalho 00:43:27 But they don’t. What people don’t like is the nuance you were describing, which is like when you talk about how you have monetary Inflation. They’re going to assume that monetary inflation obviously does have a relationship to price inflation. But it’s diffused and made a mystery by the function of supply and demand.
And so you don’t even know if the money. So depending on how the money inflation is distributed will partially depend and at what market rate it was paid. And then the Bitcoin market rate that’s paid is also highly variable, because oftentimes the cost of miner bitcoin and producer is significantly cheaper than the market rate. And so there’s all these kind of variables.
John Carvalho 00:44:03 Well nobody knows how to just say point to a phrase or an algorithm or a function that says, oh, it’s supply and demand isn’t enough for them because they want to be able to attribute all of these things.
Eric Voskuil 00:44:13 Okay. So so this is the semantic question, right? Like supply and demand is an economic concept. And it only holds true to the extent that you know what the word supply and demand mean, right.
Price, which is kind of a the point at which two people trade right is a consequence of the supply and the demand, but the supply is not a quantity. In economics, this is absolutely crystal clear.
And every time I have to point people to like, academic work and say, look, you’re not talking about supply. They get all freaked out, right? They say, well, you’re just talking semantics. I’m like, that’s the meaning of the concept in economics of how price is determined. Price is not the.
John Carvalho 00:44:54 Thing they want to hear as like, okay, this is an available supply.
John Carvalho 00:44:59 And then the the limit of the supply which you can use to.
Eric Voskuil 00:45:03 Use those terms, but they’re never clear enough, right. The available supply is in one context correct. In another context. Incorrect. Right. It depends. You really have to know what it means.
John Carvalho 00:45:13 So you don’t even know what’s available anyway. And what’s available can change.
Eric Voskuil 00:45:17 But you do what people who don’t understand it don’t get it right. And so this goes back to the manga. Manga in in defining the concept of subjective Objective value. Okay. Quantity is not subjective. Quantity can be measured. It’s objective. So as soon as you start talking about supply as a quantity, you have gone back to objective value. And you are wrong. You are wrong to use. You’re not you’re not wrong. Maybe in somebody else’s system or theory, but you’re wrong to use the equation or the relation of supply and demand determining price. Because when you say supply and demand determine price, you’re using subjective value, right? Concept.
Eric Voskuil 00:46:00 And that depends on you understanding that supply is not a quantity because that would be objective and.
John Carvalho 00:46:08 It’s relative to you. Right. Like it’s the supply available to you okay. Not the supply available to everyone.
Eric Voskuil 00:46:14 What is the supply available to you? It’s what another person is willing to trade in. So your demand say we’re talking about, you know, gold, I guess your demand for gold and somebody else’s demand. I see something else. You know horses, right?
Your demand for a horse and somebody else’s demand for a horse. So I’ve got something I want to trade for a horse because I’m demanding that horse. And I go to market and I say, I’ll trade you. I’ll trade anybody this for this horse.
And somebody’s got horses. And they’re willing to trade to get something for that horse. They don’t really care what, but they want something that’s worth more to them than the horse. Okay, so. Both parties demand the horse, right? The person who wants the horse demands the horse.
Eric Voskuil 00:46:58 And the person who has the horse demands the horse more than a lot of other things he could get for the horse. Right. Both parties have demand for the horse. So the supply of the horse, you can think of it as the counterparties demand for the horse.
It’s the negative demand, right? I have demand for a horse and I have demand for a horse, but we’ve also value other things more. And you know we trade right. So the the when you say supply available to you?
It still sounds to a lot of people like a quantity, right? It’s not a quantity. It’s the desire of that other person to unload that horse for maybe a cow. That’s the supply. It’s a demand.
John Carvalho 00:47:40 So if you look at subjective value.
Eric Voskuil 00:47:42 It’s subjective. So so so Menger describes both parties as having their own subjective values. He doesn’t break it down into like, you know, here’s a bunch of quantity, and here’s one guy that shows up and demands all the quantity from nobody, right.
Eric Voskuil 00:47:55 It doesn’t make any sense. He lists he lists scales, and Rothbard does this. Mises does. Everybody repeats this exercise that Menger went through where you rank, you know, this party and this party have a list of things that they prefer over everything else they have. Right?
So I’ve got a horse, I’ve got a cow, I’ve got a couple donkeys, some sheep, some chickens, you know, some some some land, you know, a house. I’ve got all these things that I can trade. And the other person has all these things they can trade and I rank them in priority of you know, I would trade of my own things.
I would prefer this over this, over this, over this or this. Right. And the other person does the same things. We come to market with our value scales and we say, he’s got something I value more than this thing that I value. Right. And we trade. That’s it. Perfectly symmetrical in that sense, not symmetrical in that everything stays equal.
Eric Voskuil 00:48:44 Both parties after a trade are wealthier, positive, some gain. Right. Another error. You know, they don’t really make better. They tend to understand that trade is positive some. But the trade itself, the process is symmetrical. There is no supply on either side. There’s just two demands.
It’s just that when we start using money right as an intermediary, we start thinking of the person with the money is the demander and the person with the non money is not the demander. That’s nonsense. Right? Both want to maximize their money by not, you know, by not giving up some or not or receiving more and both want to, you know, maximize their value to them.
So trade is a process of two people supplying and two people demanding. They’re both demanding, you know, the thing they’re giving up and the thing they’re receiving. And once you understand that, you understand that the quantity is not supply. It can’t be. It isn’t. And economics, you know, formal economics makes this absolutely clear.
Eric Voskuil 00:49:49 But no, Bitcoin understands this. I mean, there’s a handful that do, but they don’t understand this. That’s why that’s how you can explain why. You know Cantillon is right or Mises is wrong. Right. The increase in the quantity of gold does not change is not an increase in the supply inherently. It could be related to an increase in supply. But supply being a demand is entirely subjective. So we can’t say what increases or decreases it because it’s subjective. It’s human. Right? Humans are.
John Carvalho 00:50:22 Simply, Supply is a subjective value of the seller, and demand is the subjective value of the buyer.
Eric Voskuil 00:50:32 Right. And if you look at trade, I use the word trade because there isn’t a buyer and a seller. There are two trades. There are two people trading. There’s symmetrical. Right. So so Marshall comes along. It’s an later economist. Right. And he’s writing like textbooks for you know economics 101. And he develops he develops the graphs. Right. Like the supply demand graph, the intersection, the, cross-cutting decisions he calls them.
Eric Voskuil 00:50:56 And he comes up with these terms like supply and demand, that get very formalized. And people start thinking of these things as two different things. Right? They’re not they’re trading. People are just swapping stuff. So that’s how this idea gets lost and then misused. And even Menger, you know, to to a certain extent, I will do this.
Menger does this, everybody does this. They get casual with terminology. Right. And they’ll. They’ll occasionally refer to supply in a in a quantity sense. But I’ll give you let me see give you an example of this. so to understand how production of dollars, which is a quantitative thing right, produces price inflation, there’s some there’s some piece missing.
Right. If it’s not quantity what is it. And how many people I think will recognize that if you printed, you know, say we went on, you know, the US printed a $5 trillion. I think there’s, you know, somewhere around five, eight some in the world. There used to be three.
Eric Voskuil 00:52:03 We doubled the number of dollars, but we just put it in a vault somewhere. We just we just put it in the back of a room and nobody even knew about it. What’s the effect on price inflation? None. Right? Absolutely not.
John Carvalho 00:52:16 The distribution that would affect it.
Eric Voskuil 00:52:18 But the distribution is human, right? This is where we get to demand. So quantity absolutely trivially proven right is not what determines price inflation. It’s not quantity. It has to be something else.
And it’s not just okay we we took it and we threw it into the, you know into the air. And also now it now because of the quantity. Right. But that’s not enough either. Okay. So because supply is human. So let’s let’s go back to this idea of.
Of monopoly control. Right. If I can produce dollars and nobody else can produce dollars legally, and let’s assume nobody does. Right. To to dangerous. So I produce dollars. I produce $100 note at $0.20 today. You know, purchasing power of $0.20 a day.
Eric Voskuil 00:53:09 So I’ve got a, $99.80 cent signage revenue on every $100. Note that I produce. And I want to buy some tanks. Say, I want to buy 10,000. You know, Abrams tanks. And that’s going to cost, you know, $100 billion or something. And so I print that money and I spend it. So when I spend it to buy all the parts, to hire all the people, to do all the stuff, what is my demand for that money? $0.20 per $100, right?
That’s what it costs me. That’s what I have to surrender to get it. That’s my seller’s demand for the money. So the that that is where sign is that that is where price inflation comes from. Right. If I did not have that privilege signage, right, of producing $100 bills at $0.20, they would cost me $100, right? so let’s say I could only produce nobody could produce 100 because they were so complex and difficult or whatever.
Anybody could produce $100 bills, but they cost $100, right? I have to put, you know, maybe they cost $99 and then, you know, $1 is my is my is my margin, or they cost $90 and $10 is my is my cost of capital still? That’s market price just like bitcoin production right.
Eric Voskuil 00:54:35 So I produce that $100 billion of dollars by doing what? By mining the dollars, I had to expend $100 billion in my own time and capital to produce those dollars. Now, do you think I might be a little bit more reserved in my spending of those $100 billion than if they cost me $0.20 each? Right.
That’s my demand changing. If I can produce them, you know, into the future forever. $0.20, my demand for them is no more than $0.20. That’s the that’s the that’s the, The floor on my demand. I could have expressed a higher demand. If I can get more, I’ll take more. But. But if I, you know, if I can only get $0.20, I will.
And that’s how that’s how these units get produced, down to the point where they’re not in circulation anymore, because that’s actually what’s happened. They were spending spending the $100 note someday will be worth $0.25, and then it’ll be worth $0.20, and then it’ll go out of circulation. The floor on my value is 20 is $0.20.
Eric Voskuil 00:55:33 So that demand is a function of my cost to produce and my cost to produce. You know, my profit on production is a consequence of the currency control law. Sorry that the anti-counterfeit laws. So it sounds really obscure. The anti-counterfeit laws are the basis of all this, but it is right.
State money has the privilege of of prohibiting competition in production and therefore can extract a premium. And so when, when state when state started printing paper to receive gold, those were certificates. The paper wasn’t supposed to be worth the, you know, the $33 wasn’t supposed to be worth the ounce of gold. It was a it was a certificate for the gold.
But then when you when you remove the gold, the dollars kept trading at that price point. But they only cost $0.20 to make instead of 33oz of gold to make. That’s where that’s where we got price inflation, right. The if everybody else could have made those hundred, those those bills right, then there would have been a lot of them.
Eric Voskuil 00:56:33 Right. And they would have been worth $0.20 each, but it still would have functioned. It still would have been a, you know, viable money technically. Right. It just wouldn’t be very portable. It wouldn’t be very useful.
So, you know, there’s this theory that only states could produce fiat money because essentially because the anti-counterfeit laws are necessary for the paper money, for fiat money to function, because if everybody produced it, it would go to zero, right? The real reason is the state wants to earn that privilege. Right? That that huge, issuance privilege. So along comes Bitcoin, a money with no commodity value whatsoever.
First money in history that has no commodity value like gold, but still has a cost to produce and still has a market price for production that was not envisioned. Nobody had imagined that until it happened, right? And so we, for the first time ever, we have a money that’s a pure money. It’s not a commodity. It doesn’t have any any material value aside from its money ness.
Eric Voskuil 00:57:40 but it can’t be, you know, it doesn’t require anti-counterfeit laws to operate, which is why it’s interesting and confuses people when I say that Bitcoin is fiat. Fiat is money. That is not it’s not a commodity money, right? It has no other. It has no use value in the economic terms. Right? It has no use value.
Just like dollars don’t have material use value. They’re both fiat. Yeah, that’s the only criteria for being fiat. It’s just that prior to Bitcoin, only state money was envisioned to be possible to be fiat. Right? State money that was, you know, declared to be money. And but that’s the declaration is not the important part. It’s the fact that it’s protected by any counterfeit laws.
So Bitcoin being produced at market price is not price inflationary. Gold produced at market price is not price inflation. On the other hand Bitcoin is subject to monopoly control and so is gold. And as Cantillon observes, gold could be inflationary. Right. As the Romans observed, as the as the Queen of England observed, gold can be inflationary if you have monopoly control over it.
Eric Voskuil 00:58:50 and Bitcoin certainly can be inflationary if you have, majority hash power control over it, you can charge. even if there’s no new issuance, you can charge, hemorrhage on every transaction, making it impossible for people to hold without losing value. Right.
You can issue yourself new money anytime somebody exchanges the money and effectively make it inflationary. So it’s the monopoly control that makes it inflationary. It is not the creation of new units. And that depends on an understanding of supply.
And, you know, it’s so critically important. And yet people will still say you’re just talking semantics. Supply is just a quantity like I’m talking the absolutely essential true meaning economically of these concepts. And you don’t get it.
John Carvalho 00:59:42 So I want to ask another maybe truly nuanced question. you described all these all this stuff when you, you described money in Bitcoin and dollars and you mentioned the quote unquote cost to produce. But you don’t refer to money as a product. You refer to it as.
Eric Voskuil 01:00:01 I.
John Carvalho 01:00:01 Do sometimes. Money.
John Carvalho 01:00:02 Okay.
Eric Voskuil 01:00:02 I do. Yeah.
John Carvalho 01:00:05 Yeah. So in that sense, like. All right, I’m a little bit off topic. I kind of don’t have jumbled notes here, but, people talk about the divisibility of Bitcoin. A lot of bitcoiners think that it’s infinitely divisible and that that would affect nothing. In other words, just add more decimal places.
I have a much different view on this. I think that you can only add quantity of units because of the way Bitcoin works, and thus you only can offer monetary inflation. and then even when I point that out, you know somebody like Adam back or such will say, well that doesn’t matter either because it would be evenly distributed.
And I said, well that would depend on the design, right. Like it would depend on how they implemented the increase.
Eric Voskuil 01:00:50 I mean, I understand what you’re saying, but I need a little bit of context here. When you’re talking about you can only divide or you can only add. What are you referring to?
John Carvalho 01:00:59 I’m referring to article changes.
Eric Voskuil 01:01:02 Consensus changes. What are you. What are you referring to?
John Carvalho 01:01:04 in the abstract, whatever it would require. But what I’m referring to is there are 2.1 quadrillion units.
Eric Voskuil 01:01:10 Well, what problem are.
John Carvalho 01:01:11 You trying to coin?
Eric Voskuil 01:01:12 What problem is being solved by? I truly don’t understand what problem is being solved by.
John Carvalho 01:01:16 I don’t think Bitcoin needs to be divided more. I’m just I wanted to explore a nuance. You made me think about that I’ve tried in the past and that’s it’s simply that I think that people don’t think heartily enough about what the implications would be, even in a fair monetary inflation of Bitcoin.
In other words, like if you had we talked about this a little bit in the past, where I used to think that you could run out of Utx O’s, for example. but in other words, the the overall cost of Utx would change and be affected if you could make more utx shows out of more units. In other words, say one Satoshi or one base unit was reached $1 and then everybody would say, oh, we need more divisibility.
John Carvalho 01:01:58 It’s already $1. now, I don’t think that will actually ever happen for other reasons, but they will. They say this and then they’ll say, oh, it’s no problem. We could add more decimal places.
And I say, well, you would, you could multiply the quantity of units and then you could have more precision. But if you multiply. Yeah. But if you do this, you have to tell me how you plan to do this.
Because if you plan to do it through mining, that’s one way to do it. If you try to just multiply everybody’s balance by ten, that’s another way to do it. And does this actually have any economic effect that we would want to consider?
Eric Voskuil 01:02:33 I mean I’m I’m still I’m, I don’t I don’t I don’t need you to, you know, explain this aspect anymore. But I’m still a little bit fuzzy on like, you know what, what’s the question being answered by this, but I, I think I can I can respond anyway, write to a or comment anyway on what you’re, what you’re suggesting by putting it in a context that I have heard, and maybe it’s the same thing.
Eric Voskuil 01:02:58 so all the discussion, I gave about, you know, inflation, supply demand, monopoly, signage. Cantillon. Monopoly control. there’s this other aspect that Bitcoin will go, yeah, but this. Right. And it’s, it’s it’s worth considering that, that despite the fact that Bitcoin is produced at a market price, which means every unit that is produced is not price inflationary, it is also the case that, to just simplify the question, right.
It’s also the case that at some point there’ll be no more production. There’s also this tailing off of production, which is it gets that’s more complicated to, to, to contemplate. So just contemplate the point where there is no production. It’s not like gold.
We can produce more when the price goes up and it keeps the price stable, right? Keeps the market price. The market price. And it’s not inflationary. It’s deflationary. Right. I’ve written about this too. Right. In in theory if you. So here’s the here’s the theory there’s only and this this goes straight to the maximum thing.
Eric Voskuil 01:04:08 When we bring we bring Max back into this. when I say Max, Vlad, the, the, the, the idea that you would own if you could only have one money in the universe. Right. And it’s Bitcoin BTC, you have BTC, and at some point no more is being produced. But there’s demand for money because money’s useful. So people need some.
Right. And increasing demand means increasing, increasing demand on the supply and demand actually means when it comes to money means both parties. Right. Somebody wants money and somebody wants to give it up less, right? The demand increasing, affects both the seller and the buyer. Right. Sellers sell for more and buyers are buy for more when when demand is increasing and vice versa.
So demand is the only thing that determines the price of anything. And when it comes to money, you know, demand demand is essentially a proxy for the price. So when demand is increasing for the money the price is increasing, right. We’re having price deflation in the money because no more is being produced unlike gold.
Eric Voskuil 01:05:24 And that is unique to bitcoin right. No more can be produced whereas presumably any tangible commodity could be produced forever. Right. So so doesn’t that mean that Bitcoin is deflationary? Which means as demand increases, all the hodlers are going to continue to get rich? Right now. I pointed out in the very beginning that if something goes from zero to anything, it’s infinite growth.
And so that is not itself can be because that’s necessary. It’s not evidence of this phenomenon. Okay. It was going to go from zero to something before it became a stable money. And we may or may not be there. I don’t know, but that is not evidence of the fact that, price will go up forever because ultimately there’s a, there’s there’s no more production.
So if you accept the idea that there can be only one coin, right. And everybody just uses that coin as the only money because somehow they have to, then you’ve accepted this idea that you will get rich by holding the money, right? And of course, that those riches have to come from somebody producing something.
Eric Voskuil 01:06:45 It’s it’s not free. So the question is, you know, interestingly, where does that magic come from? but that so when we talked about what’s the maxi premise.
Right. Like I had some I had some lengthy conversations with, you know, the quintessential maxi who shall remain nameless years ago and when this when this term was starting to kind of get used the way it’s been used, somebody that I knew quite well, or, you know, I had known for some time and we, you know, respected economically and stuff.
And I was able to kind of get down to the point where, you know, the idea behind this maxi stuff was this assumption that there if there’s one coin, my value is going up. Right? It was the new premise, right? But it’s all based on this assumption that there’s one coin. And I’ll, I’ll, I’ll talk more about this later. But like that’s a big assumption. It’s never been the case. Probably never will be the case with any money.
Eric Voskuil 01:07:43 Nevertheless Bitcoin but but the assumption that there is no monetary inflation, therefore no effect on on therefore no ability to produce more. Therefore you have constantly rising demand is is the assumption. and it’s not an it’s not a valid assumption. It’s never been a valid assumption. People want it to be a valid assumption. And that’s where. So that’s where so much conflict comes from. And I’ve never accepted that.
John Carvalho 01:08:13 People there have never been more monies than since Bitcoin was created right.
Eric Voskuil 01:08:17 There. I mean, the primary money, the primary alternative to bitcoin presently is government money, right? It clearly is people. People believe in Bitcoin or say, you know, don’t use your Bitcoin. Use your government money. Right. Okay. There’s your alternative. It’s it’s it’s what’s it’s what’s showing that your your argument is not true. So there’s another whole aspect of this which I pointed out a long time ago, which was that Bitcoin is unique in two ways. One is this aspect of, I talked before about, I mean, too it could be a lot of ways, right? But two big ways.
Eric Voskuil 01:08:50 Right? Where as it gets more demanded, it gets harder to produce. That’s not true of anything else, right? so so you have this inversion where it’s the it’s the cost of production that changes, not the quantity of production that changes when you have changes in demand.
But the other the flip side of that is that when demand is rising, right? Which is what’s causing this, this price to increase, presumably, fees are rising and we’ve seen that, right? Right. You know, I, I wrote these things up before we had these giant fees that have come and gone.
But clearly, when we get to a certain demand level, Bitcoin is not usable for certain level, size transactions. And it’s, it’s it’s kind of always been the case, right? You know, like, microtransactions got wiped out pretty quickly. And, And, you know, and as, as the demand for Bitcoin rises, the cost of using it rises, which is a negative feedback loop, right.
Eric Voskuil 01:09:51 So that negative feedback loop absolutely limits the utility. I mean, the the, the price ultimately of of any single chain because, it will become cost prohibitive for most if not all scenarios at some point. Right. It has to. It has to stop going up. so. What what happens in those scenarios.
Right. Where where it’s becoming cost prohibitive to use, but there’s rising demand. People use other things. So if we force them, you know, if we if we take the maxi premise and we just force them to all use BTC, what do they do? Well, the, you know, the argument would be they use lightning. Okay.
We can talk about that. But or sidechains. I would argue they just all use a dollar, right? Or they use, you know, that’s that’s under the premise that we force them to only use one coin, meaning, you know, Bitcoin like thing. And if they don’t use that they’re going to use dollars euros rand you know one RMB whatever.
Eric Voskuil 01:10:59 But that assumption doesn’t hold. We don’t force them to use just one. We never have. We can’t. And so they use bitcoin or they use Monero or whatever. Right. The setting aside, the different features I you can make this you can make this kind of theoretical discussion with Bitcoin being BTC, BTC one, which is exactly the same, except, you know, slight change to the mining algorithm, right?
BTC 2345. You could have an infinite number of these. And I’ve had smart people tell me, well, if we did that then it would be worthless because it would be infinite supply, Right. And people actually think that some people actually think that. But we we can’t prohibit it.
So what it implies is we can’t prohibit Bitcoin from going to zero. Which is stupid. Right. So there’s something wrong with that theory. What’s wrong with that theory? Just like everything else is, Bitcoin has to be produced to have value. It has a cost to be produced. It’s like gold.
Eric Voskuil 01:12:00 It’s like silver, right? So if nobody’s mining it, it’s not. It’s not a money. It’s not a chain. Right. So and and if nobody the reason nobody’s mining it is because nobody’s willing to pay fees on it. Because nobody’s demanding it. So when demand overflows one chain, it flows into another chain. It causes fees.
It causes mining. It causes security. It causes an alternative. And that exists. And we’ve seen that when fees got really high in Bitcoin they flow over to Litecoin or some other coins. Now I’m not I have I have no real interest in things like tether or stablecoins or tokens or any of that shit. Right? So I’m just just.
Just ignore all that because that to me is is more like dollars, right? It’s it’s tokenization. It requires a, a what do you call it, a custodian. It doesn’t have the security model of Bitcoin. So if we’re interested in something that does what Bitcoin does, which is allows people to to have a market money as long as they can keep it from being, monopolized by, by state mining.
Eric Voskuil 01:13:09 how does this actually work? Well, that’s how it works. It already works that way. It’s always worked that way. You know, since the very beginning, when demand causes, price causes, causes the, the cost to use to rise to the point where it’s not usable for certain scenarios that demand overflows into other chains. That doesn’t preclude sidechains or lightning, right? That can also happen. But as we’ve seen, it still will push fees and it still will get expensive and it still will overflow into other chains. So if that’s going to happen.
John Carvalho 01:13:44 Are you okay with are you okay with thinking you described, like all the blockchains, as pretty much a spectrum? and I’m going to guess you’ll also be okay with saying, well, all of the money solutions could be put on that spectrum in some way, even if maybe it folded into subcategories and such. depending on your use case and where your problems you’re trying to solve. If all of that is sort of accurate, would you then be okay with me saying that the different money’s compete?
Eric Voskuil 01:14:14 Yeah.
Eric Voskuil 01:14:15 Money’s compete. Sure. Okay.
John Carvalho 01:14:17 I tried talking because I’ve tried talking with you about this before, and I couldn’t. I didn’t quite get this far, and you wouldn’t accept. I think it’s hard aspect.
Eric Voskuil 01:14:26 so, first of all, I. People always want to. I’m not saying you’re doing this, but people always want to kind of put me into like a category, right? Like, you know.
John Carvalho 01:14:38 My goal, I, I’m just trying to I’m trying to understand and be able to help other people. I know.
Eric Voskuil 01:14:42 I know, I know, and I but when you say like, are you okay with. Right? I want people to understand. It just it just kind of triggers my spidey sense and I and I go like, okay, it’s not about what I approve, right? I, I try very hard, as you guys probably know, to not make predictions.
John Carvalho 01:15:00 Is it rational to say.
Eric Voskuil 01:15:01 Right, right. I don’t I try not to make predictions and I try not to tell what people what they should do.
Eric Voskuil 01:15:08 I try to explain how things work from my the best I can. And what I’m explaining here is how it actually works. How it actually works is things get too expensive, they move somewhere else. That’s a basic economic principle and we can observe it clearly in Bitcoin. Right. And and one of those other places is similar altcoins Litecoin, for example.
I just want to use as an example. There’s no special reason, right? and I’m not even talking about other features. There’s reasons feature reasons why that might happen, like Monero for example. But setting all that aside, just let’s assume there were identical feature wise. Security wise, except for like hash rate, right?
We’re we’re talking about high hash rate change because there’s high demand, high fees, high cost to use. Right. There’s your high security chain. There’s your deep vault. Right. But then you want, you know, you’re kind of less secure money, which you maybe you keep in your house and then maybe your less secure money, which you keep in your wallet, which is easier to spend in lower amounts.
Eric Voskuil 01:16:10 Right? Well, lower. You got to have lower fees. Right. So these things spill over into other chains. That’s a natural progression. And it’s it’s it’s a natural analogy to how people secure things. Right. They you’re going to pay less to secure less. So on the other hand, to answer your question, more specifically, you ask about other stuff, right?
And I’m like, anything that has properties like money presumably can compete with Bitcoin, even if it’s not the same. Like for example, tether dollar token dollars, euros gold. They all some you know in some way compete with bitcoin. You know it depends on what scenario the person has in mind and what bitcoin is.
You know, what Bitcoin is presumably want is more of those scenarios being bitcoin and less of them being state money. As far as I’m concerned, if people are happy with their state money, I don’t care. I really don’t. it’s this is to me, this is to provide a choice for people to do what they prefer, not for me to tell them what they’ve got to do.
Eric Voskuil 01:17:13 So it’s a market. It’s it’s up to us to provide a better alternative. in some scenarios, for people to use Bitcoin where it provides value to them. And I look at where it provides value to them. And that to me is in its ability to do things that are not allowed when you’re using state money or they’re they’re expensive when you’re using state money.
One is, you know, having the money means you pay the inflation tax. You have state money, right? Having gold, you don’t pay the inflation tax. Okay. Great speculation. Let’s just get this out right up up front I’m not talking about speculation okay. Money does not earn.
So if you’re if you’re holding gold or if you’re holding bitcoin, if you’re holding dollars or euros or whatever as a speculation, you know, that’s fine. Go ahead. Do whatever you want. But I’m I operate always under the assumption that money doesn’t earn, it doesn’t gain. It doesn’t inherently gain or lose. It’s neutral. A good money is neutral.
Eric Voskuil 01:18:17 So we talked before about, you know, going from zero to something. And yes, that happens. We know that we talked a lot about inflation and why, you know, signage leads to, increasing supply and therefore increasing decreasing purchasing power. Those are all true things, right? But, none of this to me has anything to do with speculation on coin.
You. It’s not a speculation to hold gold over dollars, because you know that dollars are produced under monopoly protection and gold is not. You will hold value where you lose value with dollars, right? Dollars being more liquid has certain advantages, so you’ll end up using both. Bitcoin is more liquid in certain ways than gold and it doesn’t suffer.
Suffer the dollar tax unless you feel compelled to pay capital gains tax. And they may you may be paying some of the dollar tax right. So Bitcoin provides benefits only Bitcoin is a is a is a is a money that whose value proposition or which value proposition is that? It can avoid state controls, but it can only avoid state controls to the extent that people are willing to ignore them.
Eric Voskuil 01:19:32 Right. And some people aren’t right, I don’t. I pay my taxes. Right. but there are people in many parts of the world, who would rather take the risk of ignoring state controls, currency controls, or taxes to use Bitcoin to, you know, I, I, I use the people in Venezuela or Myanmar, you know, funding their, their, their, their revolution with Bitcoin and, you know, ghost guns. great. You know, that that may be worth it to them to do that.
And that’s, you know, to me, the main reason we do this, I don’t I don’t I certainly don’t I certainly haven’t worked for ten, 11 years on bitcoin to pump salers bags. I don’t give a shit. And I and I and I and or anybody else in the West, you know, we just don’t really need it. at least not to the extent that that that some other people do. So there’s all these other things that can compete with it for people who maybe don’t need it.
Eric Voskuil 01:20:32 Right? Like, maybe there’s a competitive speculative coin or there’s there’s a, you know, you can do smart contracts which have no security ultimately because they require custodial control or, you know, you use dollars because it’s just easier. Those are all competitive. But I’m only concerned personally in competing with the things that Bitcoin has value, that other things in scenarios where others don’t. Right. Permissionless money. That’s where all these other things fall apart. And that’s why Bitcoin exists.
John Carvalho 01:21:06 The reason why I wanted to establish that competitive dynamic across money is, is because a couple reasons. I find it to be a useful to device, and explaining the difference between what might be a scaling method for Bitcoin and what might not be. For example, people like including Blockstream like to call liquid a layer and thus it scales Bitcoin and such. And I like to point out that it’s almost indistinguishable, indistinguishable from any other altcoin other than the consensus mechanism, and that it’s simply a federation holding a peg to their own Bitcoin to Bitcoin, and that thus it can’t be scaling Bitcoin because it’s all transactions that will never happen on Bitcoin unless it’s competitive to Bitcoin.
John Carvalho 01:21:52 And this is a way to reason about explaining to somebody how liquid is just.
Eric Voskuil 01:21:56 And and the fact that the security model is, is, is, is not Bitcoin and doesn’t provide the advantages that I was just talking about, which is why I don’t care about it. Right? it might be useful for some people again, but it’s not why I’m working on Bitcoin.
And so one is that, you know, there’s there’s there’s kind of a underlying question, right? Is the objective. You know, I mean Bitcoin doesn’t have an objective right. But for people that work on bitcoin like me, what’s what’s my objective. It’s my objective to make sure that everybody in the world uses Bitcoin. Absolutely not.
There’s no reason it’s not necessary. it’s a it’s a it’s a it would be a, it would be a lousy requirement to place on the system. So why does the system exist? Who does it help? and you know, what can it do that other things can’t do? Right. People talk about, say, the unbanked, right? I’m not a big proponent of the unbanked theory.
Eric Voskuil 01:22:53 I’ve been to 90 countries, many of them many times. And, you know, sometimes motorcycle, you know, driving around and and like, you know, Africa, for example, like different country. Like I never encountered a situation where, you know, there were lacking there were lacking banks, even in towns that had nothing but dirt roads. It’s always a nice shiny new bank there.
It’s not that they can’t get them. They don’t want them. Right, because they steal their money. And and so, you know, in Zimbabwe, I talked to a butcher. He was he was he was actually working still as a tour guide, but he was took me to his house, which he was building himself, and he had a few cows.
And he was like, he was he was working on building his own business to be a butcher. And he we he really understood how money worked better than most people in the West. And he understood, you know, they were on the the fourth had just failed.
Eric Voskuil 01:23:46 They were working on the, on the what was it came. I mean, it’s not called the fifth, but it was the, bond notes which were coming out 1 to 1 with the US dollar, but they were still trading. And, you know, all the ATMs were empty.
All the people were lined up at the banks trying to get their $20 daily allotment of their own money out of their own accounts. And I’m like, so I’m standing there in the guy’s house and in his driveway and it’s still dirt floor. floors, still putting the roof on everything, and he’s got a couple of cows running around and I’m like, why?
Why do people put their money in the banks? Why don’t why don’t you just not do it? He said, oh, direct deposit is required by law. I’m like, yeah, but you’re going to run a butcher shop and you’re going to work for yourself, so you won’t have to put your money. You just have a cash business, right? He said, no, no, no.
Eric Voskuil 01:24:31 They come in and they inspect you. And if they think you’re not depositing your earnings, you’re screwed, right? I said, so you’re going to do it. He said, yeah, yeah. So even though I understood how it worked, they all do it right. So are they unbanked? Fuck no. Right.
They don’t want to be banked because that’s how the state robs them again and again and again and again. And the way they robbed the fourth was just absolutely ingenious, right? Mugabe. and so he just took wait until the people started putting their dollars, euros and rands in the, in the, in the local banks after the failure of the third and the year.
And then, maybe it was this. Yeah. After the so the And then and then and then and then and then they connected them up to the financial system. They opened up banks and the local banks opened up banks in Europe. And then they and it was all working good again. And they had credit cards.
Eric Voskuil 01:25:21 And then Mugabe went to the local banks and said, yep, I’ll take all those European accounts. Thank you. Took control of all the European bank accounts that had the dollars, the euros in Iran and international access, and left the local banks begging him for the depositors money from the European banks, which dried up pretty quickly because he spent it all.
And that’s why people were waiting in lines at ATMs, which were all waiting in lines at the teller counters when the ATMs are all empty, all across town. So people don’t want banks. Okay, so I look at these scenarios like, oh, we need to make sure it’s like a technology problem, right?
Is there a technology problem where people can’t get banks? No. Is there a business problem? No, it’s a state problem. And so, you know, Is there a gambling problem? Do we have a lack of, you know, places to gamble? No, there’s lots of places you can gamble. So I don’t really care about Bitcoin as a speculative mechanism either.
Eric Voskuil 01:26:20 you know, there’s there are currency controls that are onerous, and inflation, taxes that are onerous that prevent people from, you know, saving in money, having money, transferring money, the way they want to. And in some cases that’s extremely oppressive, keeps people poor. And, Bitcoin is a lifeline to some of those people. and that’s who I work for, basically.
And so I, I think the worst, the worst bug you can have in a software system is a requirements bug, right? You go out, you design this whole thing, and you realize you built the wrong thing. And that’s most of what I see in the whole Bitcoin ecosystem is just there’s a requirements bug. They’re building stuff that doesn’t make sense.
John Carvalho 01:27:10 And I had a second half of the competition thing being relevant, which was you. You touched on it, briefly as well, which is this when when people talk about, scaling methods for Bitcoin, particularly adding complexity and new software and things like this and the kind of, latest champion being UT exo sharing or many party UT exo sharing.
John Carvalho 01:27:33 I like to point out this competitive aspect because I say look at how much complexity and and fragility people have to put up with to use lightning, which is just two parties, which makes it, you know, so much more manageable in a network than when you start going to three or more. And, you know, I could tolerate, you know, all of the interest and things when it was two parties. But then when you turn it into three or more and you have this game and you have all these other network dynamics, you have to deal with coordination, etc..
Like, I just think they’re like way off base. They’re just totally like disregarding that people won’t tolerate that. They will just use something else. Nobody. Like, why do they think the demand to use Bitcoin would be so high that people would tolerate, you know, waiting in line and the risk of not being able to get in line or afford a place in line. and deal with just more complexity for holding and sending Bitcoin when they could just use something else.
John Carvalho 01:28:35 Like there are many things that have this, as you mentioned, speculative quality. And many times if that’s your goal, you’re probably better off choosing something other than bitcoin because your goal, you could get a much higher risk reward elsewhere, most likely. so yeah, I also like to point out the competition aspect between all of these things, because not only is it possible that you’re going to make a layer that competes with Bitcoin, but you’re going to make something that’s so unusable that people will now have to compare it to the alternatives. And so I don’t think that core developers weigh these kinds of considerations when they are aggressive in promoting things like covenants, etc..
Eric Voskuil 01:29:16 Yeah. I mean, when, when lightning was first, I don’t know if it was the first public proposal, but I remember it was it’s, I, was it, scaling Hong Kong and I saw the early presentations on it might have been the first. there was a side, you know, a breakout room. And we talked about right off the bat, people were hitting on the limitations and issues and stuff.
Eric Voskuil 01:29:39 And it wasn’t that they weren’t considered. They all the issues that have been encountered were understood. They were they were brought up by smart people in the room, right there. And I mean, maybe had already been discussed, you know, in other, other, other places online and stuff. But but they I decided to proceed anyway.
I mean, maybe because I felt like it was worth trying it out. Reasonable trade off, right? but, you know, a lot of hype. A lot of venture money came in, and, it was a fait accompli, right? This is it. This kind of work. but I don’t I never, I never, I never did any work on it, or any other side chain.
This is why I’m, you know, I don’t comment on too much because I’m fairly ignorant about it. Because the details. The technical details. Because I never worked on it. but the reason I never worked on it was because these issues, to me, seemed, ultimately prohibitive.
Eric Voskuil 01:30:44 And, they weren’t going to really solve any problem that I was seeing, right? They were going to just push the problem, like these would just get pushed in the chain anyway. But the same is the same is true. Did any of that? I’ve never supported anything. I’ve come out. Like the arguments I see from Luke and his in his, followers. don’t make any sense to me.
Like, you know, the fact that that sinking Bitcoin core is getting slower and slower, as you probably know. Right, is is to me, it’s kind of a lousy implementation, which is the consequence of Satoshi shipping a prototype and it being complex enough and fragile enough that nobody dared change it except us. Right. So, even the even the language ports and the altcoin ports are still based on the same architecture.
So we’re trying to change that. Okay. So the smaller block thing to me never made any sense. It’s getting faster and faster. I think the chain, or I should say cheaper and cheaper, not getting faster on the same hardware, but the but the hardware is getting cheaper and cheaper and it’s getting faster on, on current hardware.
Eric Voskuil 01:31:54 So, we’re demonstrating that and I hope to be able to, you know, ship that pretty soon this year. but so then there’s the then the, the block size increase aspect of it, which is, you know, that’s there’s a, there’s an aspect of the security model which has, you know, which is, which has to do with, what size of an operation you have to run in order to fully in order to validate, in order to use Bitcoin. I think, you know, the, the kind of core developers I’m not talking about Bitcoin Core, but, you know, including people like me have have generally stood a, you know, against just arbitrarily increasing block size because they see that it’s a it’s a it’s not going to achieve anything in the long run.
Right. Even if it was fine for now. Right. It’s and even if you took, you know, if Bitcoin you know, successfully ships and you know, we show that it’s getting cheaper and cheaper. And so you proportionately have a have a fork to continuously increase the size so that its, you know, sink time stays fairly constant.
Eric Voskuil 01:32:59 Constant across hardware even that is not going to solve the problem, because the problem is a lack of really understanding some of the stuff we talked about earlier. it’s really that,
John Carvalho 01:33:15 This is one you haven’t fully sold me on yet. yeah. I still have a little belief in the idea of a sweet spot, where basically, you know, you acknowledged earlier that maybe not everybody needs Bitcoin and not everybody, you know, Bitcoin maximalism and hyper bitcoin ization in these concepts. I also think that there are ideals and extremes that are that you can’t actually reach.
But that doesn’t mean that those, they aren’t directions worth walking towards. All all ideals. And so in this case, what if the proportion of humans that wants to use Bitcoin is slightly above, you know, or you know, or within the block size. That is reasonable. But I kind of like because I find.
Eric Voskuil 01:34:02 Size.
John Carvalho 01:34:02 As we talked earlier. Well, you mentioned earlier that the prices are exclusive as well. And the cost of running a node is exclusive, and centralizing the cost of sending a transaction is exclusive and centralizing as well.
John Carvalho 01:34:15 And so if people can’t afford to send transactions, but they can afford to run a node, then why wouldn’t we, you know, if we could identify somehow that there’s a demographic of people being excluded that would be included, but not would we not?
Eric Voskuil 01:34:31 That’s my that’s my point. Nobody’s excluded. They just use a different chain. They use Litecoin.
John Carvalho 01:34:35 Well, excluded from that’s the premise here. The premise here is maximizing. Right. The premise here is maximizing exactly that.
Eric Voskuil 01:34:43 Exactly.
John Carvalho 01:34:43 But I think you’d find that most engineers in most Bitcoin Core devs would agree with the idea of maximizing Throughput.
Eric Voskuil 01:34:52 It’s not a but it’s not a maximization problem, right? It’s just a trade off. It’s a straight trade off you. You’re trading off fees and time and cost. Right. So fees are a cost. And node size and and resources is a cost and ability. It’s really ability to hide. Right. The cost of you hiding your illegal operations and the cost of you getting your transactions through the system, those are the costs of using the coin.
Eric Voskuil 01:35:25 And if you. And as those costs increase, people are going to go somewhere else. And where are they. Where do we want them to go. I want them to keep using bitcoin right. But they’re not going to keep using BTC. If it’s too expensive they’re going to go to BTC one or BTC two because fewer people are using it.
John Carvalho 01:35:42 This is where you lose most most Bitcoiners because they’re buying everything is a bitcoin, right?
Eric Voskuil 01:35:48 Already The case already happens. It’s already done. I don’t even need to prove it. It already happens. So it. Like I’m just pointing out what is. I’m not pointing out.
John Carvalho 01:35:59 I’m pointing out that many Bitcoiners still.
Eric Voskuil 01:36:01 Trying to.
John Carvalho 01:36:02 Design designing for that outcome. What’s that? I think that many Bitcoiners still believe in designing for the outcome of maximizing the throughput.
Eric Voskuil 01:36:11 I’m sure. And maximizing the throughput on any given chain is a noble. It’s a noble goal. It’s what I work on. I’ve been working on it for years. Right. I’ve been working on making a single node faster and more easier to maintain.
Eric Voskuil 01:36:25 And,
John Carvalho 01:36:27 do you have an argument against that? If, say, fees were $1,000 per transaction for two years and that we that raising the block size would decrease, it would basically increase the throughput and allow more.
Eric Voskuil 01:36:40 It would it would trade off the throughput. And big core developers know this. They’ve argued this, most of them. Accept this. Right. So it’s not a controversial position that I’m holding. What what I’m pointing out is that their their resolution to the to that problem. Right. It has been side changing and I haven’t really seen that take off.
John Carvalho 01:37:04 I think your take on that as outdated. Nobody talks about side chains anymore except we drive chain people.
Eric Voskuil 01:37:09 I put lightning in the same category. All right. Layering.
John Carvalho 01:37:12 You would define lightning as a side chain?
Eric Voskuil 01:37:14 No, I should say layering. Okay. Layering is a trade off. It decreases security and increases complexity in exchange for increased throughput. That is one approach. It’s a valid approach.
John Carvalho 01:37:28 My argument would be that’s much harder to measure and allocate than a block size increase.
Eric Voskuil 01:37:34 I’m not I’m not saying about I’m not making any argument about whether it’s harder to measure or allocate. I’m just saying that it’s it exists. It’s legitimate. Right. Like there’s liquid, there’s lightning, there’s layering on BTC, there’s layering on other chains. But I’m pointing out that those things, what I said earlier was those things don’t seem to have taken off.
I presumably there’s reasons for that. those trade offs are real. They’re not inconsequential trade offs, which you have pointed out, I think fairly. and what I’m pointing out is that since before those even existed, there has always been other chains, and there could be a series of chains that are exactly the same rules as BTC, with the exception of a mining algorithm.
Difference. Right. So what if that already happens? No. Nobody that I know of has put any energy, any whatsoever. Nobody has put energy into an ecosystem that looks like that, yet it’s still the dominant ecosystem. That ought to tell you something because.
John Carvalho 01:38:41 What about.
Eric Voskuil 01:38:42 Work on layering has not produced anything close to the level of.
John Carvalho 01:38:46 We haven’t quite come up with BTC one BTC two though. What we have is BTC one huge gap and then the rest.
Eric Voskuil 01:38:54 I mean sorry Litecoin right BTC.
John Carvalho 01:38:57 But the gap in insecurity is so far.
Eric Voskuil 01:38:59 I don’t know what was the what was the last. You know somebody double click the like point. What was the last double spend on Litecoin?
John Carvalho 01:39:06 Well I will concede. And I was also going to raise the point that how do you explain that. Is it just that the blockchain blockchain design is so good that most blockchains don’t get attacked?
Eric Voskuil 01:39:18 It’s just a simple economic. It’s to it’s it’s not worth the cost of the attack. Right. if you do smaller amount, smaller size transactions and you wait long enough to, you know, confirm them, then you’re, you know, it’s just too expensive to attack. It’s big. Bitcoin hasn’t always had the hash rate. It has. Right. But it’s oh since I’ve been working on it I mean I don’t know if how you know comparable between you know, Bitcoin and other chains.
Eric Voskuil 01:39:42 But the hash rate on bitcoin has gone up quite a bit in ten years. Right. But we thought it was secure ten years ago. Okay. This argument doesn’t really make sense. It’s it’s a question of how much security is required for the level of transacting that you’re doing. And what I’m pointing out is that for years people have worked on layering and not achieved much.
I mean, lightning has some adoption, but I don’t really pay much attention to it. But it doesn’t seem that people are very happy with it overall. And there’s liquid, which I think is a ghost town from what I have read. Again, I don’t use it. And what else I don’t know. You know, and I’m not.
I’m setting aside all the tokenization and all that crap. there’s these centralized things, you know. But so when it comes to real bitcoin, you know, maybe layers on BTC. Where’s the volume. Right. Well there’s there’s some lightning. No no question. Lightning gets used. But this is the the problem that you’re raising is that that’s not working.
Eric Voskuil 01:40:40 And what I’m pointing out is even before they existed stuff, there were already alternatives that were working and continue to work with nobody putting any effort into a multi-chain ecosystem. Nobody.
John Carvalho 01:40:52 Well, what I’m trying to distill here and understand is the difference between where I have tolerance for blocksize increases and you have none. And I’m trying to understand your rationale on that.
Eric Voskuil 01:41:03 Look, I didn’t.
John Carvalho 01:41:03 I did some gain to it.
Eric Voskuil 01:41:05 I didn’t fight the last blocksize increase. I didn’t I wasn’t up in arms about, you know, forex increase. So all I noticed was that it, you know.
John Carvalho 01:41:13 Well, I’m not asking about what you’re I’m asking about the understanding and the dynamics and the logic behind it. Like, in other words.
Eric Voskuil 01:41:19 My point is simple. It can’t.
John Carvalho 01:41:20 Solve. Do you think that that was a waste of time to raise the block size?
Eric Voskuil 01:41:24 Yeah. It didn’t, you know, and there’s a lot of people that are having second thoughts about it now, right. And I just.
John Carvalho 01:41:30 I mean, for a few weeks we’ve had low fees, but most of the time I would say the average block size.
Eric Voskuil 01:41:34 I.
John Carvalho 01:41:35 Wasn’t talking about much over one megabyte that.
Eric Voskuil 01:41:37 I was just talking about the cheap spam, which is also a context, you know, aspect of low keys. And I don’t really use the term spam. I think any transaction that’s valid is legitimate. But, but, but the but the point is it solved. A you know, that aspect of it solved a non problem. It was an they were under pressure. They didn’t want to they didn’t want to lose the big war. So they gave it into a blocksize increase in conjunction with the other stuff that was happening. Right.
John Carvalho 01:42:01 Which was very pressure at the time. We had $25 Bitcoin fees and that was.
Eric Voskuil 01:42:06 And we still, you know, and we still have. Right. So so again, we came right back to having that and, and it didn’t solve the problem. Right.
John Carvalho 01:42:16 Well now my point would be that just what you said, if we had $25 fees when the block size was one megabyte and we reached it again when the block size was up to four megabytes, then we did something that had an impact because those blocks would have only been one megabyte.
Eric Voskuil 01:42:31 No, no, it’s just fewer people would have fewer scenarios would have. The scenarios that made it onto the chain would not have. Right. If $25 was the limit that people were willing to pay, they still would. Have paid only up to $25. It’s all the stuff that wasn’t worth $25. It would have not have made it onto the chain.
And largely that was. Inscriptions and other shit. Right? So the question that’s why people were having second thoughts about it. Because basically all we did was enable that. That’s one way to look at it. Right. And again, my point was I haven’t I didn’t take a stance against SegWit.
And I there’s some there’s some stupid shit about SegWit implementation that I don’t like but has nothing to do with the concepts. and, I didn’t take a stance against that attempt to make a blocksize increase, but my but I have said right. And I and I do believe that making that increase, delayed what I want to achieve, which is fast nodes.
Eric Voskuil 01:43:29 Right. If you increase forex, you’re delaying a couple of years. you know, the performance that I would like to achieve, but it’ll get there. But if you do it perpetually, it’ll never get there. It’ll never have truly fast, notes. We’ll have these.
John Carvalho 01:43:44 For what it’s worth. That’s not how I look at it. I look at all change for Bitcoin or proposal for change as something that should be driven by the market, not the engineers.
Eric Voskuil 01:43:54 I don’t nobody controls it, the engine. I’m not saying the engineers control it, I’m just saying that if it keeps happening, we won’t get there.
John Carvalho 01:44:00 I’m not I’m not commenting on what you’re saying. I’m saying in general that that, the culture of Bitcoin core and core developers and protocol developers tends to be that they assign certain solutions and they say with amongst themselves that they’ve reached some sort of consensus and thus it’s ready to, you know, impose upon the rest of the user base.
Eric Voskuil 01:44:24 Again, that’s one of the reasons why I don’t work on it.
Eric Voskuil 01:44:28 I don’t work on that application. I don’t like the design, and I don’t like the, you know, the the way the, the fact that it’s a singularity in the community, but I, you know, people. So I’ve always taken the position that the purpose of Bitcoin is for people to do what they want with their own money. Right.
And and people, people who mine a Bitcoin or or people who, you know, make their big block coin even if it’s not a bitcoin. Right. Or, or make their, you know, like it was Bram Cohen did his chia thing and and it was, you know, based on proof of space and time and you know, I critiqued the design and the objectives.
But I’m, you know, I, I like to I critiqued in that the explanations were incorrect and they eventually accepted that. But that’s just one of many examples where I like to explain to people how things work so they can make informed decisions, and so that I can learn.
Eric Voskuil 01:45:35 I learn by doing it, but I always support people’s, right to do what they want with their own money. And if that means forking. Go for it. Fork yourself off. Do what you want. Right you want or activate? Absolutely. Have at it. Do it all by yourself. you want to, you know, start a new coin.
You want to make a side chain, you want to do lightning. I don’t care, right? I’m not going to work on all of it. And I don’t care if you want to make box bigger and if at the whole community, you know, if enough people get together that that, that use BTC and they say we want, you know, ten gig blocks and they all every single person does it.
And nobody is mining, you know, Bitcoin or BTC anymore because they’ve all moved to this other coin. That just means the old one dies and that’s what people wanted. I’m okay with that. but I don’t promote for things.
Eric Voskuil 01:46:26 Promote things that I don’t see as being, you know, as achieving anything. And I don’t think just, you know, kind of trying to find the sweet spot for, for transaction throughput. And on layer one is going to achieve anything. there is no sweet spot. It’s just a it’s a linear trade off. you increase it, you increase the cost. I.
John Carvalho 01:46:49 I think what it is, I think that some of us think about it as if we don’t try to accommodate growth, that that could lead to death. And so if Bitcoin say what’s nobody using bitcoin anymore.
Eric Voskuil 01:47:03 What are they using.
John Carvalho 01:47:05 Whatever alternative offered what they needed.
Eric Voskuil 01:47:07 Are they using a coin with a bigger bigger block size. That’s basically bitcoin.
John Carvalho 01:47:12 Because.
Eric Voskuil 01:47:13 The block size means it means people moving to another coin. So what you’re describing.
John Carvalho 01:47:17 I know what you have. So you for the audience, I think I should disclaim that you have a little bit different way of describing what a fork is. In other words, would you consider that when we added taproot that we forked in the old Bitcoin was dead?
Eric Voskuil 01:47:32 It’s called a soft fork.
John Carvalho 01:47:33 We forked. I just want listeners to understand that you didn’t you didn’t spell that out. Most people don’t know that. That’s what you mean.
Eric Voskuil 01:47:41 So people have been sold this lie that soft forks are backward compatible. They are not right. If you go ahead and create a software and run your own node, start rejecting blocks. You’ll find out you’re not on the chain anymore.
If they’re not compatible, what makes them work for people that don’t upgrade or don’t accept the new coin, or the new rule is that miners prevent them from seeing those blocks. They get censored. So every rule, every new rule that gets added is a new coin that can split off from the other coin, or it can start from Genesis if it wants.
Fine, I don’t care, but but when you make a rule, you have created a new coin, and the question is only whether whether everybody who used the old coin is going with you or they’re staying where they were when Bitcoin Cash came along. Some people went with them.
Eric Voskuil 01:48:24 Some people stayed where they were. You know it when when SegWit came along. Same thing. Right? When when Ethereum decided to, you know, roll back. Some people went with the original one and some people went with the new coin.
They they both still exist, right? This is how it works. This is a new money. It starts at zero value. And as people adopt it, right, if everybody goes, then it has value.
So I know it sounds a little bit abstract, a little bit theoretical, but there’s really no other rational way to explain it. It’s not if I just arbitrarily throw some new rule into the mix, it’s not the same coin. Just because a bunch of people accept it doesn’t change.
John Carvalho 01:49:00 I can accept it. I just wanted to point. I wanted to force you to explain it to the audience because it’s right.
Eric Voskuil 01:49:04 Yeah, I appreciate that.
John Carvalho 01:49:05 I know, yeah. So I accept it largely because of how Bitcoin Core doesn’t patch old versions when they find vulnerabilities, they only patch the new version.
John Carvalho 01:49:17 And that’s why that’s another signal of hey, there’s no, you know, autonomy that you have here. If you if you follow core because you just have core and then eventually they find a CV, CV bug and they fix it in the new version and they don’t fix it in your version. Pre taproot version. By the way.
Eric Voskuil 01:49:34 We don’t we don’t impose any forks. I actually have a I have, you know, comments throughout the code of, of where I’ve gone back and researched as far back as I can go. forks that Satoshi implemented without telling anybody. Right. And, and trying to implement those as independent configurable forks, even if it causes a break.
You know, when you don’t implement them or don’t activate them so that when you when, when this has been the case for a long time, when you add a new when when when Bitcoin forks. Excuse me. When BTC forks in the bitcoin you know if if it’s activated and widely used we’ll we’ll turn on that fork by default.
Eric Voskuil 01:50:13 But you can turn it off. You can turn off all the forks. You can turn off you know Bip 16. You turn off Bip 30, you can turn off any fork you want or turn them on. You can turn on a Litecoin fork and run a Litecoin write test networks.
So we don’t impose those on you. we presume that most people are just going to, you know, follow the crowd. And so we activate by default the fork or we enable by the fork. By default the fork activations that are, that are running. But we kind of give you base bitcoin right, or whatever chain you want to be on. I think you know we have configuration for just configuration.
It’s not actually different. You know you don’t have to recompile but you can run mainnet testnet litecoin reg test, Litecoin testnet reg test whatever. And through configuration and you decide what you want to run. And we’re going to keep patching that right. And keep allowing you to run. So maybe the reason people want to run the old versions is because they want to run the old rules, and they can’t get the patch.
Eric Voskuil 01:51:10 Well, with our approach, you get the latest software, you get the patch, and you run whatever rules you want. We don’t impose them on you. So I like to run sometimes. Just just turn off all the soft forks and sink the whole chain, validate the whole thing and make sure it all still validates so that there truly there truly. Nobody’s been mining, you know, soft working compatible block into the main chain. that’s nice to see.
John Carvalho 01:51:33 Sounds nice.
Eric Voskuil 01:51:34 Yeah.
John Carvalho 01:51:34 I want to be able to run Bitcoin without taproot, and I can’t like.
Eric Voskuil 01:51:39 Well, that’s just a couple of forks and, you know, turn them off. Okay. So what happens with one. There’s there’s more than one reason for this. It’s not just about giving people choice right. Like to activate or not activate a fork. It’s about, maintaining the history. Where is the history? Right. If it if it’s all buried, you know, like, it’s very it’s it’s hard to go back and and figure out, like, the subtleties of these different changes over time and what they you know, what they meant, what they did.
Eric Voskuil 01:52:06 The code itself is, you know, Bitcoin D is just, you know, you know, opaque. But we take that out, we give it a name. We we give it a piece of code, right? And we give it a configuration parameter. And we say this was a change, right? It’s got a it’s got a name.
And we do that for each one of these changes. And there’s been a number of changes, that of rule changes that Bitcoin Core has made that they haven’t even documented and not really right. Like not bips not discussed, just did it and then had to, you know, there’s been a couple that didn’t quite go the way they expected and they undid it and then redid it.
And so I you know, to me it’s a lot of extra work, but it’s worth doing like we have, you know, there’s, What is it? Bip 34 was supposed to solve the height, you know, provide heightened 34 height and Coinbase 43. I can never keep it straight.
Eric Voskuil 01:52:58 but, you know, that was supposed to solve the, the bit 30 problem, which was duplicate transaction hashes resulting from duplicate coin bases on different heights. But it turns out that it introduced another problem, which was there was already older transactions with, you know, higher heights that weren’t intended to be heights in those input scripts of, of those older transactions, which means that there is a problem down the road which they then patched, and then the unpatched, I don’t know, there was like tie in with Bip 90. So these things, like, they’re not as straightforward as everybody, you know, seems to understand.
And I try to pull them apart and, and describe exactly what people have been deploying over the years. You know, Bip 30 is another great example. There’s three forks there. There’s not one.
John Carvalho 01:53:52 I have, one question left from my notes while you were talking so far. And sorry, Vlad, I don’t know if you have, questions that you wanted to.
Eric Voskuil 01:54:00 He just.
Eric Voskuil 01:54:01 He’s just making money on us talking. He’s great.
John Carvalho 01:54:03 Oh, yeah.
Vlad Costea 01:54:04 I’m enjoying this. No, but I do have some questions from the people in the chat. And there was Andrea, who basically set us up on Twitter, who has like a list of questions. So don’t worry, I do have my part. It’s just that I enjoy listening to you guys talk, and it feels like it’s so casual and I like it.
John Carvalho 01:54:29 So I have to think about how to articulate the question, which is, So we talked a bit about, you know, the competitive aspect and the spectrum and how, you know, you can keep you could have a BTC one, two, three, four and somewhere you would have the ones on the bottom and the ones on the bottom, B would be distinguished from the ones near the top by what, some sort of lower quality, lower security, lower cost. Right. and my question is, when we look at the way the world works today, when you look at actual everyday commerce, the transactions that happen, the highest quantity, most of the transactions that happen.
John Carvalho 01:55:11 Happen over some sort of trusted medium, whether it be through credit. Credit cards. Credit and your account. And your bank credit. yeah. It’s mostly credit. And then when we look at what we’ve tried to do with bitcoin in scaling, we notice that what people end up doing is trending towards credit again.
We make fettermans and we make lightning and we make lsps that power, lightning and then lightning is now moving towards, this. You have the keys and the phone and the node on the cloud. So cloud nodes, it just keeps centralizing and you keep incorporating trust. And so my question is should we just stop with all ideas of Bitcoin as money in the sense of how replacing what credit currently does for us?
In other words, only use the term in the way we discussed in the beginning as a designation, a categorization explaining what it is, but forgetting about how people use currency every day, or what they actually use in credit for the most part. And and just saying maybe what if we want to design a better solution for credit, or what most people call money? maybe we should be talking about the best trusted solution and the most, you know, peer to peer oriented, self-sovereign oriented, or whatever word you want to use.
John Carvalho 01:56:32 Credit method if you want to extract credit from the legacy system.
Eric Voskuil 01:56:40 So, I wrote a I wrote one of the topics in my book was about. this idea of risk free return. And I don’t know, I don’t know if you remember, but there was a again and anytime I have to remember names, it’s awful. But there was a well-known Bitcoin or who who passed away, I don’t know, it was about a year after this discussion. I can’t remember his name, unfortunately, but he had he had posted, it was like a academic paper.
White paper on, on this idea of risk free return. And I and I used it as the topic of my talk at the next Honey Badger. and, so it goes, it goes kind of to this question of, of credit, you know, and, There were, there were, you know, so I kind of debunked the idea. We had a long discussion on Bitcoin dev about it, me and him directly. And a couple other people chimed in, and then I gave a talk about it, at Honey Badger.
Eric Voskuil 01:57:49 And eventually, you know, I wrote a topic and eventually made it into my book and everything like that. But it was it was a really interesting academic exercise for me to kind of put my finger on what the problem was. I could sense the problem right away, but I couldn’t really put my finger right on it.
And, He again. He passed away like a year later and I had only face to face, met him and talked with him once. It was a scaling in Hong Kong prior to this. And, turns out I talked to somebody I was about a year ago again, don’t even remember who that was, but who had worked with him on it.
And, and I found out from this conversation that he had basically, they had acknowledged what I’d said was was the case, and they gave up on the project, which I ended up feeling kind of bad about because he passed. I think it was his last big project that he worked on. so, that also happened with, it wasn’t based it wasn’t about credit, but it also happened on the thing I mentioned earlier, Chia and Bram Cohen’s thing.
Eric Voskuil 01:58:48 I critiqued it when it first was announced. Big academic white paper raised like 20 million bucks or something right off the bat to make Bitcoin mining, energy efficient. And, my point was that it wasn’t going to make it energy efficient. I pointed it out, and a couple of years later, one of their PhDs contacted me privately and said, yeah, we’re pivoting.
We finally figured out that you were right. they don’t know if this thing’s in public, but that’s that’s, you know, so I feel good. Like I didn’t save them in that case as much time. But, you know, we can point out these things that don’t make sense, get people to really think about them. Right.
One of the things that that Bitcoin lacks is a, it tends to be an echo chamber, right? And even these things going back about economics and Mises and all that stuff like this is a accepted set of principles. You know, fractional banking inflation, risk free return credit money, that, that, that there’s just an echo chamber.
Eric Voskuil 01:59:46 So there’s no real criticism of a lot of these ideas, at the fundamental levels. And, so I, I enjoy being able to add that value sometimes. And, you know, so that comes to this question of credit and money, like Bitcoin is a money. And there have been attempts like this one I mentioned to build credit systems that have the characteristics similar to Bitcoin. In other words, Bitcoin being permissionless, having no counterparty, having you know, it being kind of self-sovereign, right. No trust in anybody else.
And the idea of applying those principles to the credit economy is an important question when a lot of energy gets put forward. And and that also ties into this question of fractional reserve banking, which is very poorly understood in the Bitcoin community. and again, I have to point out to people that I am absolutely, you know, a lifetime kind of ever since pretty much college, libertarian anarchist type, read all the stuff that they’ve read, you know, have all the same motivations aside for Cypherpunk for a long time, but I don’t delude myself and about how these things work.
Eric Voskuil 02:01:04 And so. The problem, you know. So one thing that people don’t understand, again, that relates to this is, is that the distinction between credit and money as a credit has to be settled, generally settled in money. Money doesn’t have to be settled. It is what it is. And that’s it.
There’s nothing that it that it that it depends on. Lightning is technically credit, right. They are Bitcoin transactions but they they’re not money until they’re settled. Right. You can you can trade them. They’re credit. You can trade credit. Right. But they’re not money until they settle on chain until you have received the thing that is not something that represents something else.
So what’s interesting about it is that it is a sort of non-custodial sort of right credit. it’s it’s. It’s a it’s a it’s what economically it’s a money certificate. Like the like the dollar being representing gold. Right. A lightning transaction represents a on chain transaction on a kind of 1 to 1 basis. And it’s non-custodial, right to a certain degree.
Eric Voskuil 02:02:14 So in that sense, it’s achieved this thing I’m describing. Right. Is this idea of doing credit and getting the benefits of credit without the things that seem to be necessary for credit, which is counterparties, you know, custodians, etc.. But as we as has been known from the start and as we found out, lightning is not entirely right, that you have to have a certain amount of trust or distrust in your counterparty because you have to monitor them.
Right. Then you have to be able to settle before a certain amount of time, or you’re going to get wrath and you can’t exist all in credit all the time, which is one of the stories that was being proposed for a while. and there’s a cost to it.
Like credit. There’s a, there’s, you know, locking up your money and channels. and even a complexity cost. So there are all these aspects of credit. It takes time to settle. It has to be settled. and there’s, there’s, there’s there’s time and risk involved and settlement costs all aspects of credit.
Eric Voskuil 02:03:15 So lightning is a money certificate. that is sort of non-custodial, right? It’s credit. people hate to hear that. I don’t know why. It’s just academic to me. but the point there is that credit always exhibits these characteristics, right? Settlement time. Settlement risk cost. Settlement time. Risk and cost. Counterparty risk. Right. So the idea of this paper on risk.
John Carvalho 02:03:47 Quick question. Would you classify mempool transactions as credit?
Eric Voskuil 02:03:53 well, it depends on if somebody’s giving you something for them. When you say mempool, you mean unconfirmed, right?
John Carvalho 02:03:58 Right, right. Because that’s what lightning transactions are. They’re just unconfirmed Bitcoin transaction.
Eric Voskuil 02:04:02 Well but they’re but they’re but they’re but they’re anchored in a certain way so that they’re, they’re they’re the attempt is to be is to provide them a security model that unconfirmed transactions don’t have. So lightning achieves a level of security on unconfirmed transactions that do not that does not exist otherwise. Right. the question is, is it the same as Bitcoin? Absolutely not.
Eric Voskuil 02:04:24 And I don’t think any honest person would tell you that the security model and lightning is the same as in Bitcoin or the cost. Right. It can be cheaper because of lower transaction fees. It can be more expensive because you know you can get robbed by if you’re not paying attention, those kind of things.
So it’s different. And they should you know, I think everybody being honest would acknowledge that it’s different when it comes to unconfirmed transactions. If I walk into a store and I give somebody a transaction and they give me the goods, right, I walk out with a chainsaw. they’ve given me credit. They they’ve extended a chainsaw with no payment.
There’s a promise to pay. And only, only I can undo that promise. Right. It’s my keys. So I could double spend that transaction before they can get it confirmed. And I could steal the chainsaw. They’ve extended credit risk, settlement time. Settlement cost. Right. And, it’s it’s like. It’s like in the old days, accepting a paper cheque.
Eric Voskuil 02:05:19 Somebody walked. Right? That’s the same thing as unconfirmed transaction.
John Carvalho 02:05:25 I mentioned that because I think that might help people accept defining lightning as just a. Confirmed transaction with.
Eric Voskuil 02:05:37 More.
John Carvalho 02:05:37 Guarantees. You accept them as.
Eric Voskuil 02:05:38 Payment.
John Carvalho 02:05:39 Credit.
Eric Voskuil 02:05:40 Yeah. Yeah. I mean, even even taking a single confirmation is is credit and. We. Attack against you and or a 51% attack if you go further up right there. You’re you’re the. The point of settlement in Bitcoin is not clear. Right. But there is settlement, right? Settlement means the transaction is over. I’ve paid and you’ve received. And if somebody comes along and then rolls back that transaction and I wasn’t even involved, it’s not my problem, right? just like if somebody robs, you’re.
John Carvalho 02:06:13 Sorry to add another nuance, but why can’t I say that settlement is determined by the person accepting the Bitcoin instead of by the by the chain? In other words, if I give you the chainsaw, I feel I have settled the trade. You know what I mean? I accepted your credit.
John Carvalho 02:06:30 And you. And you accepted my chainsaw.
Eric Voskuil 02:06:33 Well, you could, and that could be. That could be the key. So every every trade is a contract, right? And a lot of times these contracts are just implicit. I walk into a restaurant, I sit down, I eat, I pay, there’s a contract there.
We just didn’t sign it. Right. And that’s, it’s, it’s that would be upheld by court. If I didn’t pay, they would, you know, I would be guilty of stealing the food. because there’s an agreement that is implicit, because it’s so common in society. Right?
When I walk into the 7-Eleven and I put something in the counter, you know, I pay and I take the goods, but there’s an agreement that, you know, I’m not taking the goods unless I pay. Right? and I give them extra money, and there’s an agreement that I’m getting change back. I don’t have we don’t have to discuss it. But if I don’t, he robbed me.
Eric Voskuil 02:07:12 And that’s because he violated that contract that we have that we’re trading at this price. So the same thing holds with with Bitcoin. If I, if I walked in and you know to a place and I, I bought it chainsaw and I, I gave the transaction and I walked out with a chainsaw.
And we had explicitly said that whether or not this transaction confirms on the chain, it’s settled. Right. The contract can settle in any terms you want, right? So you could say that or you could say if it reaches six confirmations, then it’s considered settle. Otherwise, you owe me the chainsaw back. You could do that, right?
So the free market, you know, deals with these these questions. And you could I mean, you could say that if I gave you $100 bill for the chainsaw and it turns out to be counterfeit, you owe me the chainsaw back. That’s kind of generally the case, right? That’s again, these are kind of socially implied because they’re so common.
Eric Voskuil 02:08:00 We don’t want to all have to sign contracts every time. As the value of the price of these things goes up. We do sign contracts. We’re trading houses and cars. Now we actually start delineating what the criteria are. So you could do that with unconfirmed transactions.
You could say, you know, you give me the unconfirmed transaction, I’ll take the risk because it’s only a cup of coffee. The cost is low. And if you start doing it more, I’m going to start kicking. I won’t take you in my store. Same thing used to happen with checks, right? You go behind the cash register, there’d be, like, a list of bad checks with people’s pictures next to them.
Sometimes they don’t accept checks from this guy because last time we did, he, you know, he double spent it. So, there’s nothing new about any of this. Some things aren’t like credit cards. Charges aren’t settled for, like six months, right? I could reverse the charges. The guy could get stuck with the stuff.
Eric Voskuil 02:08:48 We could have a contract that says if I reverse the charges, then I owe the stuff back. Right. These things start turning into statute and law because they’re so common. so nothing is ever as clear as it seems, because we tend to generally operate in the layer where we’re not we’re not explicitly doing these things. at least consumers do. Right. But lightning operates under the, you know, under certain assumptions that the other person is not going to rob you, but they can. And if you don’t catch them in time, you’re robbed. Does that mean it was settled properly by agreement? I don’t know what was the agreement. Right.
John Carvalho 02:09:25 You could still take them to court. ET cetera. If you want.
Eric Voskuil 02:09:28 To. Right. You could. But what if they pulled out a piece of paper that said, you know, they said it was settled? you know, regardless of whether it was reversed in the future. Okay. Well, you could do that. I don’t know why you would.
Eric Voskuil 02:09:40 But yeah, what would happen typically is there would be some convention like unless it was explicitly stated, the assumption is you won’t double spend this or, you know, close out the channel and prevent them from, from, you know, getting their money back. I don’t I don’t want to get into details, but it’s but those are all aspects of credit. Every trade is technically, you know, an a contract which is then settled. It’s just a lot of times we don’t bother to verbalize or write the contracts out.
John Carvalho 02:10:11 I think my question pulled you my added questions, pulled you away from the original question, which is what was like to comment on like basically, if there’s a way to solve or design better, you know, what is typically used in commerce, you know, credit and in other words, right. Right now we have Bitcoin is trying to say Lightning Network would be our answer to replace credit cards. You’ve even heard Lightning Network is the visa.
Eric Voskuil 02:10:37 Debit cards.
John Carvalho 02:10:38 Maybe this time or whatever it may be.
John Carvalho 02:10:40 Yeah, sure. Debit cards. well, even the credit cards, debit cards and credit cards are both credit and practice, right? Right.
Eric Voskuil 02:10:47 Debit debit card is just a, It’s more, assured by the balance. Right? So you have to put money in the, in the channel, which you have to have in order to make.
John Carvalho 02:11:00 Actually, I can think about how to reframe the question better. as far as if we’re designing for censorship, resistance of everyday purchases, in other words, so that in other words, where I think we agree that maybe Bitcoin is not the best thing for that. and so if we were designing the best thing for that, we would notice that trust seems to be a huge part of being able to have a successful design for that. Now, could we minimize the amount of censorship resistance by designing something that is more like a mutual credit system, or some sort of peer to peer credit system?
Eric Voskuil 02:11:39 Yeah. Yeah. and I think, you know, they’ll continue to be ongoing efforts to do these things, but, that’s what lightning is, right? It’s a it’s an effort to, get the advantage of, of, of kind of credit based systems while minimizing, or maximizing the, censorship resistance.
Eric Voskuil 02:11:58 But but what’s happened, you know, and this was again, predicted fairly early on is that, is that, you know, in order to be efficient, lightning has become largely centralized, and it’ll continue to work like that until it doesn’t. Right. There’s no there’s no, no real, assurance there.
John Carvalho 02:12:15 My issue is I don’t like when bitcoiners try to design something that’s dead. In other words, when it’s a problem that actually many people face in many situations, but they only try to solve it on lightning or they only try to solve it on Bitcoin. Like, for example, like, I don’t know how you say you probably don’t follow lightning, but we have we had bolt 11, which was the first payment protocol invoice format.
And then they made bolt 12. And these are incompatible payment protocols. So now you have two and bolt 12 supports some extra metadata for being able to do things like offers or reusable invoices or subscriptions. And these are all just like meta use cases, right? These have nothing to do with lightning itself.
John Carvalho 02:12:58 They have to do with money and commerce and trade and these kinds of things. And so I’m wondering if the reason I’m getting to all of this is partially for my own bias, because I mentioned to you in the past that I wanted to describe some ideas, but also because the one guy who had a bunch of questions for us, I think his ultimate hope was that we would discuss actual solutions for the things that nobody’s actually solving.
In other words, how do we actually scale Bitcoin? What do we do about scaling Bitcoin? And if we can’t do what we thought we could do, what could we do instead? And so I, I do see an opportunity for designing something that is payment method.
Designing a a payment system that is settlement method agnostic. And so we use credit. In other words, could everyday transactions be made out of a peer to peer credit system that was locked, that was integrated with a variable settlement system where basically you would say, here I want settlement. Now.
Eric Voskuil 02:13:57 The problem with the term peer to peer credit system is that they don’t exist.
Eric Voskuil 02:14:01 So so they,
John Carvalho 02:14:05 Credit. You mean they can’t exist or that nobody has made them?
Eric Voskuil 02:14:08 Well, When, you know, when what credit is lending somebody your money or your property with a promise to get it back? Now, peer to peer has different meanings to different people in the context. We’re using it here. I think you meant trustless, right? Not just not just a distributed network, right?
John Carvalho 02:14:38 No, I don’t. Well, I don’t think credit is trustless, so.
Eric Voskuil 02:14:41 Okay, well, then PayPal is a good example. If PayPal takes Bitcoin, it’s bitcoin over a peer to peer you know. Or it’s bitcoin over a network.
John Carvalho 02:14:48 Well so so PayPal is provided by a centralized provider. I’m suggesting something that is provided by the individual.
Eric Voskuil 02:14:54 But if it’s not trustless it’s it’s.
John Carvalho 02:14:58 It’s relative trust. So in other words you have a social. May I describe the idea? if you’re okay with it, I know it’s it’s not exactly a Bitcoin topic. so the idea is basically that imagine each individual had a ledger, right? And I say, okay, I will extend $10 of credit to Erick one Bitcoin of credit to Erick and ten bananas of credit to Eric, and maybe you’ve extended some credit to Vlad, and instead of using the Lightning Network or Bitcoin or anything at all, we just have these signed ledgers that we can share with each other and that we could then form basically routing of credit using our social graphs over which credit limits were mutual.
John Carvalho 02:15:53 And so we have this kind of mutual credit routing system, somewhat like maybe hawala plus actual credit. And so the the low level of all payments that would be done within our economy of people that use this system could be done in credit most of the time. But then eventually we would hit, you know, moments where we would want ultimate settlement and we’d have to request for settlement from specific individuals, but we would separate these capabilities.
We would say, I have, you know, you have a list of a ledger of signed with your key of what you what people owe you. If you have proofs of what people owe you. And proofs of what people you owe. Other people and people can provide these proofs to each other in order to establish a a social graph of channels.
Eric Voskuil 02:16:42 Let’s let’s consider that we already have a certain aspect of this. Bitcoin is a ledger. Everybody has their own coin on that ledger and they send it to somebody else that transfers.
John Carvalho 02:16:51 No, I’m not talking about a master ledger.
John Carvalho 02:16:53 I’m talking about relative ledgers.
Eric Voskuil 02:16:55 Well, it doesn’t matter. I mean, you’re talking about P to P, so it has to be done somehow. So my ledger, right is all my unspent outputs or inputs that I’ve, that I’ve received. Right. That’s my ins and outs. That’s my ledger. It my it’s it’s a P2P system.
So it’s stored in the cloud. you know and everybody’s Bitcoin node. You can take that as an example of, of this type of system that the exception is when you’re talking about credit right. Not just transferring the money. Credit is I give you the money. Right. I actually spend it. You’re I’m extending you credit. So I send you the money.
This is when we. What we got into in this discussion on risk free return. Right. There’s no guarantee of that money coming back. There’s no cryptographic way to guarantee that money’s coming back. That’s the whole point of credit. And this is the. This is the lengthy discussion we had on this risk free return topic because.
Eric Voskuil 02:17:43 So what what again, the gentleman that had done this wanted was a covenant, and he wanted a covenant to guarantee that return. Right. So if we could get a covenant in Bitcoin that said, after a certain amount of X, that money automatically came back. Now we can do what you’re describing. Peer to peer lending in a trustless manner. Right. Like where? I, I, you know, everybody’s issuing each other.
John Carvalho 02:18:08 Why do we insist that? Why does it have to be trustless? Like, why can’t it just be on reputation?
Eric Voskuil 02:18:13 Because it’s risk free. That was the whole point. Risk free rate of return. Right. So I have this capital, and I want to put it to use. I want to earn on my capital. And somebody else wants to borrow it in order to produce. Right? Which is necessary? There’s no production without lending, without investment. Same thing. Right. So I lend this capital to production, and I want to make sure I get it back because I want a risk free rate of return.
Eric Voskuil 02:18:36 And, when you look at that formulation, I mean, this this doesn’t cover your whole scenario, but I’m, I’m explaining a very clear cut example on Bitcoin of what you’re describing with the limitation that it’s supposed to be trustless, which is what people seem to want to do. Right? They don’t want to introduce a big central bank into the hole.
John Carvalho 02:18:56 Now, what I want to do, right, I don’t I’m not implying that at all.
Eric Voskuil 02:18:59 But but what happens is, is and this again I think is was was, you know, became the final resolution of this question was if you guarantee the money is coming back under some time constraint, block height constraint or whatever, then the imputed value of the loan at the time you make it is zero.
John Carvalho 02:19:21 I agree. I mean, I could see that obviously as well.
Eric Voskuil 02:19:24 Because as the money propagates to all the people you’re spending on, eventually.
John Carvalho 02:19:27 You can’t actually lend it out. They can’t use it if it has to come back.
Eric Voskuil 02:19:32 Right.
Eric Voskuil 02:19:32 But why was this not obvious to the academics who wrote this paper? Right. That that was my like this is what I mean about Bitcoiners, right? Like, nobody this paper was on Bitcoin. Dave, you can go look it up. People were critiquing the details of this thing and I went up and I said, wait a minute, there’s something really, really wrong with this. And I finally did.
John Carvalho 02:19:51 This with lightning to how you how you were going to be able to just passively put your bitcoin in a lightning node and make money off of it. And I was like, who’s bitcoin? Right. You know what I mean. Like I only have so much bitcoin. Then what. You know where does the bitcoin come from. Like they they wanted to make it look like you know like banks could just loan out their Bitcoin and put it on lightning. And it would be some sort of risk free.
Eric Voskuil 02:20:14 This this risky this risk free return fallacy is a big deal in this in the context of this discussion, because it does drive a lot of the mentality.
Eric Voskuil 02:20:22 It’s also very closely tied into the, full reserve fallacy, right? The idea of lending your money while keeping it all in reserve at the same time, earning on it while taking no risk on it. Right there, all all these fallacies are connected and they just break off into different, you know, aspects which I, you know, write a topic about.
But this risk free return fallacy for, you know, you understood it. I don’t know if you know, the viewers will all get it. I’ll explain it a little bit more slowly. I lend you money, which means I spend it to you under covenant. You then use it to make something so you can sell it and give me my return.
You hire some people, you spend the bitcoin to them. They go out and pay their rent. They spend the bitcoin to their landlord. Their landlord goes and pays their taxes. Right. And they spend the bitcoin to their, you know, tax tax authority. And then you know they go out and issue it as food stamps to somebody and they get their food.
Eric Voskuil 02:21:17 Right. And then the this store is holding this bitcoin in the end. Right. Who had no connection to this loan whatsoever. And then all of a sudden on on the on zero day that Bitcoin disappears and comes back to me.
So as soon as somebody knows that there’s a covenant associated with this Bitcoin that’s being spent, they won’t accept it because they won’t, because they know that the next person won’t accept it, because they know the next person won’t accept it because they know it’s going to zero tomorrow. Right. So that’s called the the net present imputed value, like the present value is x, right.
But I can impute that in the future it’s going to be worth zero. Which means I’m sorry, I can predict in the future is going to be worth zero, which imputes a present value of zero. And, that is essentially why these schemes don’t work. You do not get risk free return, right? There is. So I think that’s yeah, I mean I’m I’m kind of emphasizing it.
Eric Voskuil 02:22:14 We’ve already covered it, but I think it bears repeating that there is no, bull reserve lending, and this is so I should I should mention this because alluded to it a couple of times. Rothbard talks about reserve and and and fractional reserve in man Economy in the state, which I said is a very good book, and he does not make this error.
He’s very careful when he says banking. He’s talking about full reserve banking. When he says banking, again, this is this is relevant to this, this large discussion because we’re talking about lending. Right? When he says lending, when he says banking, he’s not he’s explicitly not talking about lending.
He actually calls it a money warehouse in order so that people will not make the make the mistake of assuming he’s referring to lending when he’s talking about banking, he says, if you put your money in a money warehouse and you get a certificate that says it’s your money and some guy’s holding it, he’s a custodian. He’s making an analogy to the dollar and the gold.
Eric Voskuil 02:23:15 Custodian of the Federal Reserve. Right. Pre decoupling. And he he’s he’s making this analogy because he’s trying to explain Mises. But he’s trying to avoid making the errors that people impute to Mises. Right. He says in a case where there’s no lender there, they’re not lending your money. Right. And they’re not paying you a return.
You’re paying them to hold it, right. They’re securing it for you. You’re not getting a return because there’s no lending to earn the return. There’s a cost of holding, which is your, I forget the term anyway. so in that case, right, if the custodian takes that gold and then uses it, sells it, lends it, does anything with it except for holding on to it.
Right. They’re holding only a fraction of your money in reserve. That’s what he means by fractional reserve. Right. And and or the. What’s more likely is your token, your your money certificate for that goal. The gold certificate is circulating like the dollar was, and the custodian who has the sole authority to print those certificates.
Eric Voskuil 02:24:22 Right. This is under monopoly control. Any counterfeit laws he issues more so now he he only has a fraction, a sub 100% fraction of the reserve for the certificates. This idea of fractional reserve only applies to money certificates, not to lending. Right. And he’s explicit about that.
And I quote him in my book because I’m like, why can’t you people understand that when he says this, this is what he means? He’s very explicit about it. He says, this is not apply to lending. If you’re lending, you are always lending. Under fractional reserve, there is no such thing as lending something that you hold in reserve. You have to give it up.
And not only do you have to give it up, as we talked about in the covenants scenario, right, the first three returns, you have to give it up with no possibility of getting it back. Except a promise, right? That’s it. So. So, you know, you can take a lean on, you know, you can lend somebody, you know, some money to fix the roof on their house.
Eric Voskuil 02:25:21 You take a lien on their house, right? And if they don’t pay you back, you, you you sell their house and you get it. You get it back. You take it under. I forget the term for. Collateral. Right?
Collateral is the loan. But there’s no guarantee the collateral is going to exist either. Right. You can take and hold their collateral, but, Not now. They’ve lent to you now. So, like, the scenario has actually been reversed. So they lent you their collateral.
They may not get it back. Right. And you’re. And you’re giving them a smaller loan. So the same problem still exists. So they’re all lending is always fractionally reserved. I lend a portion of what I own and I keep the other portion and that’s my fraction.
John Carvalho 02:26:02 And when. So the design I propose is that there’s no reserve. The reserve is just a separate system. In other words, whether whether you want to require somebody prove that they have some sort of assets in order, it doesn’t matter that it would be separate, but the.
Eric Voskuil 02:26:18 The amount I. So if I, if I have 100 bucks and I lend out ten bucks, I’ve got 90 in reserve. How does the 90 matter at all. Doesn’t matter. Right. I got ten bucks. It may or may not come back. So what? I got 90 to live off of.
John Carvalho 02:26:30 Right. That’s fine. I guess I’m just trying to. I’m trying to bring it back to that. The idea is not about trustless, and the idea is not about having a reserve. It’s about using trust.
Eric Voskuil 02:26:41 If you have to. But but people should. You know what I’m trying to get at is you need to. People need to exclude entirely this concept of no trust, right? The only scenario where this is possible is when you your money goes out the door, and it may or may not come back. There’s no guarantee, no cryptographic guarantee we can make that. It’ll come back. Because if there is that money that went out, the door isn’t worth anything. So.
Eric Voskuil 02:27:04 So we have a standard lending scenario. How do we enforce. How do how do we do this in a trust. And it’s like an anonymous p to p way I just. So. So some guy might have reputation right. Some person on the other end of it. You know we got a we got a system and it somehow builds up reputation. And this guy always pays.
So I keep investing in him and he keeps paying great. And then he doesn’t pay and he lose his reputation. He doesn’t get paid anymore. There are systems like this, right? There are there are P2P lending systems that work like this. I mean, they’re run by generally run by a central organization, but they pair people who want to lend with people who want to borrow, and they build up reputation and whatever.
Right. I don’t I don’t know what they’re called, but they do exist. So you could take one of those and make it in a peer to peer way. That’s great. But what is it? no economy is going to exist without lending, right? There is no production without lending.
Eric Voskuil 02:28:02 You can have a money like bitcoin that that nobody lends. But all the production will occur using other forms of trade. Other monies. Right. Other forms of investment that won’t. You know, if the entire world operated on bitcoin and nobody lent it, we’d all just die. There would be no production.
So the what I’m pointing out is it’s it’s important if we imagine like some kind of global black market economy working on Bitcoin, there has to be lending. And I’m also pointing out that lending has to it has to incorporate risk, and risk has to incorporate some mechanism of dealing with failure to pay. Right.
And lightning getting pretty close to kind of this risk free return type lending basically has no return, right. As soon as you go to fully risk free, there’s no return. As we pointed out in the risk free return discussion. Right. So there has, you know, if you’re going to have production, you have to have lending. Lending has to involve risk, and risk has to involve conflict resolution.
Eric Voskuil 02:29:13 you know, in some manner that generally that generally means people getting face to face with guns and, you know, dealing with dealing with direct conflict. So I don’t personally work on those systems. They have to exist. They will exist. They can’t stop them from existing. And they’re really not essential to the value proposition of Bitcoin, which is that the underlying money, right, is not under somebody’s control. That’s to me the important thing. You’re on mute.
John Carvalho 02:29:47 You’re sorry. I don’t mean to imply that this idea would compete with Bitcoin per se, so much as if we were to solve a peer to peer credit system, then it would be a good thing to point at as why we don’t need to make, channel factories where there’s three people in a lightning channel, because we have already solved credit in a pure way outside of Bitcoin.
Eric Voskuil 02:30:15 Right. But the whole idea of lightning and channel factors and all that stuff is that you’re doing it in a trustless manner. So but the response to that is going to be it’s not trustless.
Eric Voskuil 02:30:24 Right. So, I think you’ve got you’ve really got two things. One is, money, which lightning is trying to be. Right. It’s trying to solve the cost. It’s trying to reduce the cost of the transacting and the speed of the transacting right of the money, not credit, even though it is credit.
It’s a money certificate, which is a, you know, kind of the like the thinnest form of credit you have, which is like a dollar represents a certain amount of gold. That’s a money certificate. That’s what lightning technically is. And that’s why it’s fairly close to being the money. Well, it still doesn’t have the same security model’s money, just like a gold certificate, Right.
So, as soon as you kind of get away from a money certificate and the ratio is no longer, you know, you know, sort of guaranteed by the system or sort of guaranteed by the system. Now you’re dealing with just credit, and it’s not going to be trustless. it could be P to P, but it’s not going to be trustless.
Eric Voskuil 02:31:17 Right. You could develop a distributed website.
John Carvalho 02:31:20 The whole point is to is to establish trust and to digitize trust.
Eric Voskuil 02:31:26 Right? I mean, you could like a Silk Road, right? Had a, had a, had a, you know, a centralized website which had kind of anonymized aside from the owner. Right. Anonymized P2P interaction with reputation. And let you know, I send you some money and you send me some goods. There’s that’s a loan, right?
There’s credit involved there. It might not show up. And the fact that I keep, you know, people keep paying is the fact that they deliver. That’s based on reputation. But that’s credit extension over Bitcoin, over a system that’s anonymized but still subject to centralized control. You could take a system like that and decentralize it.
And then you have what Amir, you know, developed, which was a dark market which became open bazaar. That presumably was the objective of Open Bazaar, and Dark Market was to create a decentralized, P2P, anonymized market with reputation, where people could lend each other, you know, they could lend, spend or lend money and then later get the goods or the money back.
John Carvalho 02:32:24 I did follow that project while it was alive. I’m not sure what ultimately killed it or why it didn’t gain as much.
Eric Voskuil 02:32:30 As.
John Carvalho 02:32:30 Actually.
Eric Voskuil 02:32:31 Back up. Maybe back doing stuff. Really? Yeah. Might be worth it. I think I saw something like that.
John Carvalho 02:32:38 Well, I recall there was something there was some issue they had with their way of shipping. It was always one indexer. And so they ultimately had to have sensor ability because they didn’t have variability in the indexing. If I remember correctly.
Eric Voskuil 02:32:52 Yeah. I’m sorry, I don’t know the details. Sorry. So they used. They used a mirror. Built it on Bitcoin. And they used bitcoin for some time initially. and that’s that’s why I knew more about it. And I think I still follow the guys. And I thought I saw something about it coming, you know, being resurrected. So but.
John Carvalho 02:33:09 We’re building similar things like we have, we have this key based identity system that where we put the DNS, we sign DNS records with a key, and we put those in mainline DHT or the torrent DHT.
John Carvalho 02:33:23 and this gives you a way to have, like, a self-sovereign way of routing and discovery. and so we’re with, Of a payment matching protocol. So the any website that’s hosting the data itself in this system would be only waiting for a proof to release data. And so the actual payment and the settlement is happening out of band.
So you can kind of have a peer to peer e-commerce as well. And just relying on a centralized provider to release the data. Really, this is mostly for digital e-commerce, but you could, you know, you could make this work for regular physical e-commerce as well. yeah. So these are areas I’m very interested in. I did always follow Open Bazaar and this kind of thing.
Eric Voskuil 02:34:08 Yeah. So those are I mean, those are you know, obviously there’s a market for that kind of thing. I mean, the I found Bitcoin because of Silk Road, because I think it was the, the, the, Forbes magazine article that Andy Greenberg wrote. and it was obviously, very popular.
Eric Voskuil 02:34:25 And still, you know, that stuff continues to be very popular. So those are, those are use cases that, you know, do they require lightning? I, I don’t know, I mean, I have never had any and never I’ve never had any problem paying somebody with Bitcoin with a fairly nominal fee.
You know, I paid my people to translate my book. I, you know, pay for conferences, whatever. You know, just I don’t I don’t use it a ton but I but I, never had any problem using it, and, so I kind of question whether. You know, is the, what’s the scenario that we’re envisioning, when we’re talking about laying.
I know there’s, there’s this high volume scenario where everybody, you know, everybody needs a, you know, a Bitcoin and a utxo and but but where are these people I. All I can see is people speculating I don’t care about them. So, I. It seems to me like, you know, when bitcoin when bitcoin starts getting a bit expensive for people, they, you know, they start using like coin or something else.
Eric Voskuil 02:35:33 And I don’t even think there’s been enough demand to overwhelm Litecoin in those scenarios. So if there was Litecoin would become expensive and there’d be something else presumably. Right. And I’d like to see at some point, a wallet that just, you know, atomically transfers between different levels of security in the case where people don’t even know the difference. you know, I want some more secure.
I want to, you know, put my life savings over here and, you know, have this extra level of security, after a certain amount of confirmations. And I want to take a piece of that out and have a little bit lower. And I want to have some over here buy my coffee with and, maybe some.
John Carvalho 02:36:12 For what it’s worth. Our wallet doesn’t do automatic switching, but we have a wallet called bucket, a mobile app. and we have at least have a parrot. We have a mobile app called a mobile wallet called Kit. and it supports on chain bitcoin and lightning. And there’s a lightning node in the wallet.
John Carvalho 02:36:29 And what the way we portray this to the user is that on chain Bitcoin is called savings. And off chain Bitcoin is called spending. And so when the user wants to move from savings to spending they have to configure a lightning channel essentially.
Eric Voskuil 02:36:42 Right. So so what’s the what’s the kind of to the end user. What’s the difference between doing that which requires them to make some amount of their money, you know, unusable in this channel or usable in a limited way right from this channel, unless they put in a centralized lightning authority and then they can use it more generally. Right. versus say, doing an atomic swap into Litecoin, from Bitcoin, paying that fee periodically. those are those two fees. Right. And then and then being able to use it, you know, that bigger that chunk of subset of the money for whatever they want. presumably people accept Litecoin, for example, several.
John Carvalho 02:37:20 Nuances that well, even in atomic swapping, you have exchange considerations like slippage, agreeing on a price.
John Carvalho 02:37:28 You know, the, you know, liquidity in general. As far as I know, there’s not a lot of there’s not like libraries you can just plug into your wallet that will set up atomic swaps.
Eric Voskuil 02:37:38 Well, like I said, nobody’s ever worked on it. Nobody. Nobody works on this.
John Carvalho 02:37:41 I, I people I, I always wonder is like people make atomic swapping sound like magic, but why aren’t we topics atomic swapping everything all the time, I don’t understand. but, yeah, maybe I’m. I’m guessing there’s more to it than that. In other words, I don’t think it’s just that people aren’t working on it. I think there’s a challenge there.
Eric Voskuil 02:37:58 There’s a price agreement, but otherwise I don’t think there’s there’s, you know, the price agreement on a fee, right? Price agreement doesn’t have to be centralized, but people have to have some idea how they value the money, and how they value the fee. And so, but that’s the case no matter what, if I’m buying.
John Carvalho 02:38:13 Another nuance issue you have as well, is that like nobody accepts Litecoin.
Eric Voskuil 02:38:17 And so again, nobody accepted lightning before they started it. And so and people you know, they’re they’re right.
John Carvalho 02:38:24 But it’s not enough for it to be there when when this congestion because it needs to also have usage.
Eric Voskuil 02:38:30 I’m just I’m just saying from a technical standpoint what’s the difference here. Right. Like like this already happens. People already you know, and maybe it’s largely speculation. People moving from chain to chain, you know like,
John Carvalho 02:38:44 But yeah, I think it’s like when people want to move Bitcoin from one exchange to another, they’ll send it as Litecoin because it’s cheaper. But that’s only because the exchange accepts Litecoin.
Eric Voskuil 02:38:54 But how many people almost no businesses accept bitcoin either. Right. There’s almost nothing. I the only times I can spend bitcoin I said I do it you know periodically when it’s useful. But when I’m interacting with another bitcoin. That’s pretty much it. I know there’s more but it’s it’s you know I don’t nothing I do on a daily basis do I encounter this this thing.
Eric Voskuil 02:39:16 You know, I could get one of these things that transfers my bitcoin to dollars and then does it for me, and that’s kind of pointless. So, Yeah. Bit refill I guess maybe. Does that. Is that what we’re talking about. But like to me that’s not they that that could it’s if it’s centralized in that kind of way then. Yeah. They could just take lightning too.
Right. Then then now I’ve got access to everything. I mean, not sort of lightning Litecoin, right. So I, I look at this like, well, what’s this big distinction that’s being made, right? The it goes back to the Maxie question, can I keep it all on the one chain and therefore drive my stack higher by making all the demand on one chain? Yeah, if you can keep that.
But what’s going to happen is as it gets more costly, it’s going to move somewhere else. It could move to lightning and therefore reduce fees and reduce demand. but you know, I think a large a big part of the demand for layering has comes back to this idea that everything must be one coin, and that’s why you get proportionally excessive complexity trying to keep it on one chain without anybody even looking at the possibility of doing it otherwise.
John Carvalho 02:40:34 Is it fair to say, then, that your stance is just quite simply, Bitcoin does not scale, we should make no attempts to scale it. And the actual phenomenon that happens when Bitcoin needs to scale is competition emerges.
Eric Voskuil 02:40:47 Well I don’t okay. What there’s there’s BTC right. There’s BC there’s all of a sudden Bitcoin there’s LTC and there’s bitcoin. And I and I know people have a hard time with this. But you know nothing in Satoshi’s paper describes BTC right. It describes Bitcoin which is a set of concepts that are much broader than BTC. We’re not talking about the details of script or anything.
John Carvalho 02:41:11 I understand your desire to abstract the design, but.
Eric Voskuil 02:41:15 I’m just saying I’m just describing what is. The paper defines the term Bitcoin. It came out, it said this is a concept called bitcoin. That concept applies to Bitcoin before SegWit and after SegWit. Right. BK BTC these are these are different rules. Right. How does it still apply. Because everybody accepted the change, right? So that’s why we developed trading symbols to to disambiguate.
Eric Voskuil 02:41:44 We have BC we have BTC, we have LTC. What are they doing there. Disambiguate all these different implementations of Bitcoin. And if you take a if you take a fork, if a bunch of say people wanted to, you know, user activated soft fork, they’re way off of BTC. And they did they would say they’ve got BTC. And the people that didn’t, you know, fork off would say they’ve got BTC and they would evolve another trading symbol to disambiguate the two. Right. And this will continue. But these things are those would both be Bitcoin. That’s my point. And and and.
John Carvalho 02:42:23 Right. But when I discuss trying to scale bitcoin and when anybody discusses it they’re never trying to discuss scaling the idea or the design.
Eric Voskuil 02:42:30 Well that’s that’s that’s where I would differ. Bitcoin to me is not about any one historical chain, right? Maxis one.
John Carvalho 02:42:38 That’s the one you have. You have a logical inconsistency in that. You already conceded that describing these other chains as competition is accurate.
John Carvalho 02:42:46 Right. And so you can’t cut competition. Tailoring are not the same concept.
Eric Voskuil 02:42:51 No that’s that’s not true. They’re all they’re all truly, clearly independent chains. And they are all obviously competing with each other. That’s an economic principle you can’t deny. Right? Right.
John Carvalho 02:43:01 But but how do you call them. How do you call them? Competition at the same time as calling them scale.
Eric Voskuil 02:43:07 I’m not saying anything. I haven’t haven’t used the word scale once in this conversation. What I’ve said is that they are all Bitcoin. If they conform to the principles in the paper, they are an implementation of Bitcoin Satoshi implemented.
John Carvalho 02:43:21 To Satoshi.
Eric Voskuil 02:43:22 And he changed it. He changed the rules again. He changed the rules again. Didn’t tell anybody. They keep changing. There’s new rules all the time. Right. There there can be the case. And there has been the case where one splits off and keeps going and the other one keeps going. If they’re conforming to that paper, they’ve done the same thing he did.
Eric Voskuil 02:43:39 They’re still bitcoin right. So Bitcoin is a concept that has certain value to the to people. And that’s what I care about I don’t give a shit about which chain it is. I want people to get the value proposition.
John Carvalho 02:43:54 I don’t think that’s true either. I think you do because you only work on one implementation.
Eric Voskuil 02:43:59 I can, I can’t, I don’t work on so many things I don’t work on. as Vlad will tell you, you look at my. I don’t work on.
John Carvalho 02:44:05 Why did you. Why do you choose the one you chose? Why didn’t you choose BCH?
Eric Voskuil 02:44:09 Because I started, like, 11 years ago. It didn’t exist.
John Carvalho 02:44:12 That can’t be the only reason.
Eric Voskuil 02:44:15 I just to me, it’s got the. I started with it because it was first a mirror started the mirror started the project. I started the project to make a wallet. I kept working on the bitcoin and I just kept working on it. That’s it. Right? It’s what I know.
John Carvalho 02:44:27 I became more altcoin tolerant.
Eric Voskuil 02:44:30 When the Litecoin guys came along and they wanted me to support Litecoin. I supported them in adding code to our code base so that we could, using configuration changes, only employ Litecoin and that, as far as I know, still works. It cost me. What I’m saying.
John Carvalho 02:44:46 Is questioning your integrity. I what I’m trying to do is isolate a question for my own uses, which is or for when I talk to other people, which is just simply. I stated earlier that and you agreed with again just now that different blockchains or different monies compete. But my question was, and what I, what I asked you was, so is it fair to say that your assessment is that Bitcoin as a concept or no. Sorry Bitcoin the bitcoin what any individual bitcoin chain does not scale, right. Would you agree.
Eric Voskuil 02:45:21 That’s a topic in my book. Bitcoin does not scale.
John Carvalho 02:45:24 Okay okay I’m establishing the basis here. So for the audience and for myself. So if Bitcoin does not scale when people discuss scaling bitcoin, what your response is.
John Carvalho 02:45:35 There are many bitcoins. And this is what happens when bitcoins need scale.
Eric Voskuil 02:45:38 So the concept of Bitcoin scales through scales what we call horizontally right. If it gets if one if one chain gets too expensive, another one will come up. It will happen. It has happened. It happens automatically.
John Carvalho 02:45:52 Right. But the definition of scaling, as I understand it, is rooted in applying additional resources to a specific network to increase throughput. And these are separate networks.
Eric Voskuil 02:46:02 Well, scaling is this concept of scaling in computer science has nothing to do with networks. The concept of scaling computer science specifically, or in engineering, I shouldn’t say computer science and engineering. Scaling is adding more hardware gets you more throughput of whatever thing you’re trying to, you know, add hardware to increase. So if I increase so for example, and it’s proportional. So if I proportionally if I increase my bandwidth. I can transfer twice as much data. Okay, I added the hardware to be able to go twice.
John Carvalho 02:46:33 How do you establish a context though? Because I could say everything’s just scaling all the time.
John Carvalho 02:46:37 When I when I buy a new computer, when I buy a new computer, it’s I just scaled somebody. Beef in Africa.
Eric Voskuil 02:46:44 When you’re, when you’re working in engineering problem. Right. And you’re trying to figure out how to get more water through the pipe. Right. You figure out I’ve got to double the size of the pipe or, you know, increase the capacity of the pump. I change the hardware.
Now, what if I double the capacity to pump and I get no increase in throughput through the pipe? It doesn’t scale. Something is preventing it from scaling, right? Maybe I have to do both. Right. So this is it is the context is arbitrary. It’s an engineering problem. Right. What’s your problem?
The problem I’m dealing with when my software that I write is that sync, synchronization and validation of the of the data that makes a node. Right. Should scale. In other words, if I increase, say, all aspects of my hardware, increase bandwidth of memory, bus speed, SSD speed and CPU threads and speed.
Eric Voskuil 02:47:39 I if I have all those to choose from and I increase some or all of them, I should get a proportional rate increase of of transfer of data and validation of data. If I do that with Bitcoin D Bitcoin Core, there’s nothing there’s not one single aspect or all aspects combined that will increase that throughput.
Okay. Not proportionally. So I’m working on scaling that factor that I defined for myself, which is I want to scale initial block download and validation. Right. So that as Bitcoin grows in length the linear chain, I’m not linearly increasing the time it takes to catch up with that chain, because eventually it will become completely unusable.
And as it stands now on my my machine that I do on my testing on, I have a linear increase, in cost as the chain grows where with with Bitcoin core I have an exponential increase in cost. That’s the difference between scaling and not scaling. It’s not proportional. So when we talk about scaling bitcoin some people will say I’m only talking about BTC. That’s all I care about.
Eric Voskuil 02:48:49 Okay. If you’re going to talk about scaling transaction throughput through BTC, which is layer one, right? BTC is BTC, right? It’s the chain. I will tell you, it is not possible. By design. It is absolutely not possible and nobody’s going to prove otherwise. It is absolutely not possible.
If you’re going to say, well, I’m going to, I want to scale the rate at which people can transact with a different security model than layer one, And be able to settle on layer one when they’re done doing that. That looks like lightning or side coins, right? That’s not scaling. Layer one. That’s scaling.
The ability to transact at a certain rate using a different security model. Right. It’s close, which is why people get away with it. Right I understand, but. Okay. Now. But but that’s just trying to scale BTC. If you’re trying to scale Bitcoin in general, which means let all of the people in the world.
John Carvalho 02:49:47 I don’t think anybody’s trying to do that.
John Carvalho 02:49:49 Nobody is ever having that conversation. Well, only we when we’re trying to describe dynamics.
Eric Voskuil 02:49:54 Let’s take the theoretical. Right. If I wanted to scale bitcoin, which is not lightning, which is not, you know, liquid, which is the security model of what we call layer one, right? Not limited to any one chain. It could be the same rules, right. Maybe different mining algorithm again. And I wanted to I wanted to scale this for the purpose of if more people want to transact at the same rate and at the same cost. In general, we could add more hardware and they could do that. That’s what scaling means.
John Carvalho 02:50:29 So how can you. Can you hear me? Me now and do the same trick on raising block size? In other words, you’ve explained how no Bitcoin cannot scale and adding hardware and whatever.
Eric Voskuil 02:50:42 Doesn’t achieve that. That’s that’s.
John Carvalho 02:50:43 The point. But it doesn’t. It doesn’t it though in reverse. In other words, if if you have a certain amount of throughput at one megabyte all and let’s say the blocks are always full, as for example, you have a certain amount of throughput at one megabyte and the blocks are always full.
John Carvalho 02:50:58 And then now you increase in order to increase it to two megabytes.
Eric Voskuil 02:51:03 No, no. So we go to two.
John Carvalho 02:51:04 You increase the hardware, you increase. Yeah. Whatever amount doesn’t matter. You increase the hardware requirements.
Eric Voskuil 02:51:09 Now let me answer your question. I understand the question right. So let’s say we go from our four Meg block limit which we have now right. And we say, okay, there’s no limit. Right? We’re going to make sure we maintain a constant throughput of transact ability.
And again remember the first criteria was the same security model as, as as you know as is inherent in Bitcoin. So that means I can hide when I transact I can operate in secret. I don’t need anybody’s permission. Right. It’s a permissionless black market money.
So we go from four megabyte, which, you know, you can run on on a hardware today. You know, fairly inexpensive hardware using Bitcoin. You can get synced up in 39, 39 minutes if you don’t want to, if you want to use like a zoom valid.
Eric Voskuil 02:51:53 Right. But then we go to like to to accommodate everybody in the world. You know, we just say, okay, well it looks like it’s going to be a couple of terabytes per block. So we do that right. Now we’ve broken the security model. So it’s not the same. Bitcoin cannot shard that data. You’re muted. You’re muted.
Bitcoin can’t shard. It’s history. Now, I haven’t proven this myself. I believe it to be true, but Peter Todd wrote what he believes is a proof of it and nobody’s disproving it, right? People tried and tried and tried to shard the chain, which means to break it up into pieces so you can operate over it independently. Well guess what?
If you take BTC 012345 as independent chains, which you do atomic swaps across, they are sharded by default, right? That’s how it works. The only way to shard bitcoin, as far as I know, is to separate the chains. And if you do that, you don’t have to have all of the transactions for all of the people everywhere in the world.
Eric Voskuil 02:52:54 You may need to periodically transfer between one or the other. You may have limitations for who you can transact with. Like, I.
John Carvalho 02:53:01 Feel like we skipped over the answer though, because you took it to an extreme of the extreme. No, it isn’t.
Eric Voskuil 02:53:09 Because you have no.
John Carvalho 02:53:10 Limit. Nobody’s proposed. Nobody’s proposing an infinite block size.
Eric Voskuil 02:53:13 I didn’t say infinite. I said two terabytes a very.
John Carvalho 02:53:16 My question is simply in the context of describing scaling in the way that you’ve described it. How how does going from 4MB to 5MB not constitute as scaling?
Eric Voskuil 02:53:30 It’s not proportional. You have a proportional decrease in security. You have a proportional decrease in security as you increase.
John Carvalho 02:53:37 What is the function of that? How do how do I know that?
Eric Voskuil 02:53:39 As I described before, people are less able to operate in secret at the same cost. This is the whole reason why.
John Carvalho 02:53:48 You’re you’re making an assumption that you don’t actually know the answer to, which is that those people are not that those people can’t afford the cost.
Eric Voskuil 02:53:56 I’m I’m making a reasonable engineering assumption that the cost of two terabyte blocks is much higher than the cost of.
John Carvalho 02:54:04 But I didn’t say two terabyte. I said a small.
Eric Voskuil 02:54:06 You’re selectively choosing a low enough value that you think you can just sneak through. I’m selectively choosing a high enough value that makes the point right?
John Carvalho 02:54:15 But I’m not proposing the high value. I’m proposing the low value.
Eric Voskuil 02:54:18 The point is that there is a limit, and you’re proposing that there is no limit.
John Carvalho 02:54:22 No I’m not. I’m proposing.
Eric Voskuil 02:54:23 You are, because there is no.
John Carvalho 02:54:25 Limit to.
Eric Voskuil 02:54:26 Change.
John Carvalho 02:54:27 Which it has changed. Right.
Eric Voskuil 02:54:28 So you’re not proposing any limit. What’s the limit? Tell me what the limit is.
John Carvalho 02:54:33 Eight megabytes.
Eric Voskuil 02:54:34 Okay. So we go to eight megabyte blocks and you’re good forever. You’re never going to change it. We already.
John Carvalho 02:54:38 Did. Probably. Probably until I die.
Eric Voskuil 02:54:40 We already did four. And we’re not. We already? We already went for X and you want to go to X and you.
John Carvalho 02:54:45 Think I don’t want to do anything? This is theoretical. That’s. I’m trying to establish definitions. I’m trying I’m trying to play. I’m making it as you require.
Eric Voskuil 02:54:55 The limit is arbitrary. And if you don’t shard the data, you will hit an infeasible limit. And that and the reason you will hit that is the reason you don’t.
John Carvalho 02:55:06 Think you’ve explained, is.
Eric Voskuil 02:55:07 No cost of putting data on the chain. you will fill it with low cost nothing.
John Carvalho 02:55:13 And it’s not that.
Eric Voskuil 02:55:15 It’s already happened.
John Carvalho 02:55:16 If I if I were, I’m not actually proposing a slight increase. But if I were to, it would be under the conditions. In other words, I would be looking at the environment and I would say, okay, there’s you know, the transaction fees are $1,000. I’m thinking about leaving Bitcoin and using Litecoin now because I can’t afford Bitcoin, but I just don’t want to do that. I think that, you know, because if the blocks are full all the time and that’s why they’re $1,000 that if we that if we made them 20% larger that they may be a related decrease.
Eric Voskuil 02:55:47 The whole argument rests on this premise that it’s just a little bit. Right. And there’s no just a little bit there. There’s this is an argument.
John Carvalho 02:55:54 Because the because the demand isn’t infinite at any price. It’s infinite as at no price.
Eric Voskuil 02:56:02 But the demand isn’t ever inconsequential. The difference isn’t ever inconsequential. It’s disproportionate. Right?
John Carvalho 02:56:08 I have no problem saying that it’s consequential and there would be an increase in cost. What I have a problem with is assuming that that cost actually has an impact. We don’t know.
Eric Voskuil 02:56:18 Of course we know. All you have to do is take an increasing value and you’ll realize at some point it hasn’t.
John Carvalho 02:56:23 But if my if my hamburger costs $10 or $10 in $0.01, it doesn’t affect me, right?
Eric Voskuil 02:56:33 I don’t know how else to explain it to you. There’s no there is no, you’re not proposing any limit. You will grow it indefinitely. And there is a definite no.
John Carvalho 02:56:42 You’re you’re changing what I said I did not.
Eric Voskuil 02:56:44 I’m not sure.
John Carvalho 02:56:46 What. I’m.
John Carvalho 02:56:46 What I’m. All right. Let’s let’s let’s make it. Let’s specify a better you’re going to keep. I’m proposing raising the I’m proposing raising the block size every time it stays full for two years.
Eric Voskuil 02:56:55 And who who gets who’s making the decision with authority choosing this?
John Carvalho 02:57:00 No, no, it’s a hypothetical.
Eric Voskuil 02:57:03 Okay, well, let’s resolve your problem with your design. Let’s see who’s going to do it.
John Carvalho 02:57:09 I’m not talking about the challenges to.
Eric Voskuil 02:57:11 Decide that it’s cheap enough for for everybody to run this coin in the, you know, the jungles of Myanmar, right? Like, who’s making that decision? Coinbase.
John Carvalho 02:57:21 Yeah. Well, I don’t know if if it costs a, $2 a year to run Bitcoin and we make it $2.05 a year. How many people will that meaningfully affect? Probably in practice.
Eric Voskuil 02:57:33 And we make it. Who’s the we. How did the decision get made.
John Carvalho 02:57:36 Well you know who the we is the we’s bitcoin core and they make it arbitrarily them.
Eric Voskuil 02:57:40 I think it’s I think it’s Coinbase and Saylor and all these guys who are basically going to pull all the strings and say we decided it’s this, it’s, you know, a terabyte per block and we can run that without any problem.
Eric Voskuil 02:57:51 And we don’t really care about your black market use cases because we’re white market business and we don’t want this illegal money laundering stuff happening.
John Carvalho 02:57:58 But I don’t I don’t think that people are opening the door. I don’t think cost is the main reason that people don’t.
Eric Voskuil 02:58:03 If you’re if your whole system depends on people coming to agreement without Bitcoin. Bitcoin, the whole point of Bitcoin is people coming to agreement without any central authority. Right. It’s not a voting process. It’s not right.
John Carvalho 02:58:16 I have no issue agreeing that changing Bitcoin is an oppressive, very,
Eric Voskuil 02:58:22 Thing is that you’re going to change Bitcoin using some agreement on a regular basis to decide what’s the optimal size that everybody I don’t need.
John Carvalho 02:58:33 I don’t need any. I don’t need a specification for all I have. All I can say is that if the market were to demand it and we were able to provide it, that if that happened, would that not be an increase in throughput by increasing hardware?
Eric Voskuil 02:58:47 We’ve already done it right. We’ve already done it.
John Carvalho 02:58:50 And on average, the blocks have been larger than one megabyte.
Eric Voskuil 02:58:55 Yeah. Yeah. Significantly.
John Carvalho 02:58:57 So that wasn’t scaling.
Eric Voskuil 02:58:59 Well, it takes significantly longer to sync than it would have. Yes. It’s a negative scaling factor. Right. You’ve. You’ve increased disposable.
John Carvalho 02:59:07 Only. Only if only if you consider scaling to be the the the the the time it takes to sink the blockchain.
Eric Voskuil 02:59:12 Or to validate. Right. Eventually you get to the point where nobody can catch up. That’s where you get.
John Carvalho 02:59:17 I agree on that. In other words, I think that there is a size that would that’s too much. But I think that we that’s why I mean arbitrary sweet spot.
Eric Voskuil 02:59:25 Arbitrary. You will hit it at some point. And then what will you do?
John Carvalho 02:59:29 Well, you avoid hitting it.
Eric Voskuil 02:59:31 We won’t we won’t be able to avoid it.
John Carvalho 02:59:34 So you’re saying, well, we raise it once. You think what that means, we hit it.
Eric Voskuil 02:59:38 I’m saying you will hit it at some point if you achieve.
Eric Voskuil 02:59:42 Like if if the world achieves this. Like everybody in the world is using Bitcoin, which people fantasize about, right?
John Carvalho 02:59:47 That’s not what I’m proposing.
Eric Voskuil 02:59:50 But again, this is what people imagine is scaling, you know, hyper bitcoin ization. Everybody’s using it for everything everywhere. It takes over all banking. It takes over all governments. And we’re all using Bitcoin. What’s the throughput? Right. It’s a fantasy. It’s it’s blocksize increases.
John Carvalho 03:00:06 I guess the way I see it more is what if only 20% of the world ever really wants to use Bitcoin, and we have 18% of the world now? Would it be? Why wouldn’t we scale to be able to support the 20%?
Eric Voskuil 03:00:20 We don’t need to do anything. If those are the numbers now, we don’t need to do anything.
John Carvalho 03:00:25 I don’t know. Again, this is still the hypothetical where it’s like, you know, that you have excluded people due to costs of of the transaction already, more than more than you’ve excluded people due to the cost of.
Eric Voskuil 03:00:36 The already been done. It can happen again. I’m not saying it can’t, but I’m saying that if we if our solution to scaling is just to continue to grow the block size, it will fail. That’s how it will fail. People will eventually not be able to.
John Carvalho 03:00:48 Say, I agree that I know there’s a lot of nuance here.
Eric Voskuil 03:00:50 I mean, how many years are we talking about, like doing this for like the next two years or the next 200 years?
John Carvalho 03:00:55 Because I’m not talking about doing this. I’m not talking about doing this until it feels like Bitcoin is full and now is losing is losing value because people are getting fed up with it being full.
Eric Voskuil 03:01:04 Remember that bitcoin that we’re talking about. Scaling requires all transactions from the beginning of time to be all to all be validated by the person who’s trusting it. So we go 100, 200, 500 years in the future. Are you really talking about we’re going to just put arbitrarily large blocks together and and people are still going to be able to do that.
Eric Voskuil 03:01:26 No, I don’t think.
John Carvalho 03:01:27 Anyone will be around 100 years in the future, 200 years in the future, I think.
Eric Voskuil 03:01:30 I give.
John Carvalho 03:01:31 It ten. We have to work with what we have. You know.
Eric Voskuil 03:01:34 Okay, we’re going to break what we have if we don’t figure out how this works. That’s my point. And it already works. There’s no need to propose something that clearly will fail at some point in the future. All we have to do is shard the data, right?
John Carvalho 03:01:47 I hope you appreciate that. I am playing devil’s advocate and having a theoretical conversation. So imagine no intentions of proposing a block size.
Eric Voskuil 03:01:54 Imagine what happens if we if If what happens is what I’m suggesting has already happened and we’ll continue to happen. Let’s say, Bitcoin overflows into Litecoin. Bitcoin gets super expensive and nobody’s really transacting on it. And everybody just starts moving all their money over to, again, these these distinctions are arbitrary. I’m not I’m not trying to promote Litecoin. It’s just the only other reasonable coin that I know of.
Eric Voskuil 03:02:18 Right. It just it just move everything. Everybody moves over there. Right? Maybe, maybe it’s, maybe maybe it’s, quantum resistance. Right? Everything’s got to move anyway. Right? So all the money moves on to somebody. And guess what that means? We don’t have to validate that history anymore. It’s gone. Right? I mean, people can if they want to.
It’s not really growing anymore, right? They can validate, but that becomes historical data. We can set that aside and get rid of it. So now we can actually, you know, for real prune the pruning we talk about today is bullshit, right? Pruning we talk about today is nobody will be able to validate because we’ve pruned.
If you can take an entire chain and set it aside and nobody needs to download it, except for maybe the one guy who still got a little money on there, right? And so who probably has lost it all at that point. Right. So this the naturally occurring approach using nothing but Bitcoin already solves these problems.
Eric Voskuil 03:03:16 You know, you raised a reasonable concern about a question about like exchange price. Now I’m not talking about like centralized exchange I’m talking about the the trading price between two people when they’re doing an atomic swap. But anytime anybody buys something with Bitcoin to, you know, buy that chainsaw, I have to know what my bitcoin is worth, right?
I can either just decide for myself what I what I think it’s worth. I think it’s worth a million. You know, USD per coin. Okay, well I’m not buying that chainsaw for one bitcoin. But like everybody has to know that somehow. How do they know that? Who knows. That’s not inherent in the protocol but That isn’t a different issue when it comes to atomic swaps.
It’s just they have to know it on both chains. That’s all right. So I don’t really see. I don’t really see where it’s going to stop happening. It’s just going to. So I’m, you know, like it’s like, you know, I’m not really the guy proposing this is a bip and this is what we do.
Eric Voskuil 03:04:13 I’m just pointing out it already happens. It’s not subject to the scaling limitations of just continuous blocksize increases. It solves the sharding problem and the eventual ability to get off of historical data. and it doesn’t require a complex new or different implementation in this scenario that I’m describing.
Something like Bitcoin could run any number of chains with the one binary doesn’t have to recompile. Right? So simple as well. And simple for all things being equal, simple wins.
And that’s why I was saying, well, well, what’s the advantage of the lightning system, which not only has software complexity but has runtime complexity and runtime centralization force? watchtowers. I’ve got to watch and, you know, exit problems, things like that, where, you know, I don’t even have to explain to you how how what I’m describing was, you know, how.
John Carvalho 03:05:15 I think maybe I and we established this since the beginning of the interview. I think maybe a lot of the dissonance comes simply that most Bitcoiners, even the engineers mostly, want to have intact the number grow up aspect.
John Carvalho 03:05:29 They that’s it, that’s it.
Eric Voskuil 03:05:30 That’s the only answer to why it doesn’t happen. But it does.
John Carvalho 03:05:35 Happen. But but that’s not worthless. In other words, it’s not just about speculation. There’s a utility.
Eric Voskuil 03:05:39 I’m not saying that it’s worthless. I don’t want to imply that at all. But if that becomes the the consideration that prevents us from exploring viable alternatives to what we’ve been exploring, then that’s a problem. And of course people have to use it.
Have to have demand for it or it’s not secure. Right. And if they don’t demand more than what we have in say, BTC, we don’t need anything more. We don’t need a block size increase. We don’t need another coin. We don’t need believe in lightning.
But if they do right, if they do demand more, that means that the number is up high enough to provide security for, you know, overflow into another chain. For example, once it gets, once it gets to some point, it will be there.
Eric Voskuil 03:06:20 That and that already does happen. So it’s observable. There’s sufficient demand numbers up high enough in BTC to drive.
John Carvalho 03:06:29 you don’t also want that though. Like in other words, you hold, you work in Bitcoin, you hold some bitcoin to some proportion of your assets. you whether it only be a proportion just for using as black market money or an investment or, you know, a sorry Bitcoin’s wrong. So yeah Speculation.
Eric Voskuil 03:06:48 It’s a money like.
John Carvalho 03:06:49 But you would. But isn’t there a utility to being able to say if I if I can, for example, if I lock this into a lightning channel and spend it, then my base is Bitcoin exposure. Whereas I don’t want Ethereum exposure because I think Ethereum might die.
Eric Voskuil 03:07:06 And so Bitcoin Ethereum is not a Bitcoin. It doesn’t have the properties of bitcoin. It’s not it’s not like so sure right. So you know personally I you know I, I retired before Bitcoin existed. So you know I I don’t I didn’t come to this as a speculator.
Eric Voskuil 03:07:23 I came to this because I wanted something to do in my retirement. Or maybe, you know maybe a next business that that would be that would, you know, be compelling enough for me to work on for that amount of time? I ended up having some because I work in it and it’s convenient and I have to know how it operates.
I’ve never, ever promoted it as a way to get wealthy or speculation or an investment. And you know this, right? You read anything I’ve ever written about it? Never. In 11 years of this, have I ever said, you know, Bitcoin is a way to get rich or to make money. It’s a money.
Money’s don’t make money. it’s apart from speculation on price changes, which means you know more than everybody else about what the right price is, which is irrational from an economic standpoint. so, I don’t care about that. All I care about is that Bitcoin has enough demand that it can exist and be secure enough for people to use it for what they want to use it for.
Eric Voskuil 03:08:22 And I think it’s way beyond that level of security. so whatever. do I care about states using it? No, I think that’s at best neutral. more likely it’s it’s potentially very harmful. to the to the security model. so, yeah. No, the answer is it’s not why I’m here, I don’t care.
John Carvalho 03:08:54 So so that’s where all of the dissonance and all of your Twitter arguments comes from. It’s just there are people who are trying to operate from a position of optimizing the throughput of Bitcoin, BTC and then not. And then there are people like you just trying to, enforce the dynamics that, as you understand.
Eric Voskuil 03:09:12 The thing is that those, those those those people that are trying to, you know, do the engineering work, are doing what you’re saying. They’re they’re trying to pump their own bags. Right. They, they whether they say it or will admit it or not. I mean, I mean, I, I, I have to I have to say, you know, one of the most, I mean, shouldn’t hold up people to be, you know, heroes of any kind.
Eric Voskuil 03:09:36 Right. But like, personally, I found it a little disappointing to watch Adam become nothing but really a speculator from.
John Carvalho 03:09:42 What I can do. And everybody else, it’s like. It’s like a thing that people talk about at conferences when they bump into each other. Like it’s like, right, right. I’m so disappointed. He’s always speculating.
Eric Voskuil 03:09:51 But it’s not, you know, but but I tried to caveat that with, okay, maybe it’s just I didn’t know him and that’s who he is, right? It’s fine if that’s what he was.
But it’s like, you know, we all we all have this sense like what’s going on here, right? Like, okay, but but maybe that’s just we just we just made an assumption about him. That wasn’t true. Okay, great.
Maybe his objective had nothing to do with being a cypherpunk or all this stuff. And the only reason he’s really into that is because he wants to see the price go up. I’m okay with that. You know, Saylor can do what he wants.
Eric Voskuil 03:10:20 They can all do their thing. That’s the whole point. And they do whatever they want with their own money. They can find what they want. They can, they can. They can write any software they want. That’s fine. But I don’t find it very interesting.
And I don’t like it when people whose true objective, which I know some people is their true objective, is to pump their number will come out and argue for technical issues without being upfront about that. It’s like failure to disclose, right? What’s my conflict of interest?
Got a lot of people working in Bitcoin in various ways that have a very big conflict of interest in that they own Bitcoin, and it doesn’t necessarily lead to the best decisions being made. If your objective is more on the cypherpunk side of things, where our, you know, we’re trying to enable, you know, disempowered people to be able to keep some of some more of their own money, in the face of their state, being able to send money to their relatives who, you know, are being oppressed in Venezuela or wherever, so, or just, you know, to reduce their crazy tax loads.
Eric Voskuil 03:11:24 And for the most part, in the West, you know, our problems are, you know, rich people problems. And, no matter how much we bitch and moan, you look at the rest of the world. And so I’m not working for like, Adam, who’s like British to pump his bags. I don’t care. I’m not pumping. I’m not working to grow my bag. I’m not working to grow. Anybody I know in Bitcoin is not, you know, in a position where they really are going to just die if their bags don’t grow. Right. It’s just not a very common scenario.
John Carvalho 03:11:54 That’s so an interesting conclusion here. Is anyone promoting scaling of Bitcoin is promote is focused on speculation.
Eric Voskuil 03:12:04 I’m not saying that. I’m saying it’s just a it’s it’s a very.
John Carvalho 03:12:07 I’m proposing it. Would you say that that’s a fair conclusion.
Eric Voskuil 03:12:10 No, no I’m I, I believe that a significant aspect of Bitcoin development and promotion, right, centers around this idea of keeping BTC the only coin.
Eric Voskuil 03:12:23 Everything else is a shit coin. Demonize all the people, all the software, everything, right? That is about pumping your own bags. And the people who are honest have told me that.
John Carvalho 03:12:34 What’s the difference between scaling. Oh, sorry. What’s the difference between scaling BTC, not Bitcoin scaling BTC? And speculating and promoting speculation. There is no functional difference according to.
Eric Voskuil 03:12:46 You know that’s not true. I’m just saying BTC won’t scale. It doesn’t scale. So there’s no really moot, right? Right.
John Carvalho 03:12:52 So the people working on it are simply trying to keep everything in bitcoin, right.
Eric Voskuil 03:12:56 And they’re just you know like.
John Carvalho 03:12:58 Because of number go up.
Eric Voskuil 03:12:59 Right. And I again I’ve been told that directly by some of these people like years ago way before even maximalism was becoming a thing. Right. It was like just getting started. And I’m like, what’s this? You know, what’s really going on here? And you know, that’s the person who’s being honest, who’s saying, like, you know, we we want to we want to kill all bitcoins.
Eric Voskuil 03:13:17 So you can come out and say, like, we want to save people from scammers, okay. So take like, you know, the melee thing, I don’t know what happened Argentina or whatever. At this day and age at this point in time, who is putting their money into some fucking meme coin shit coin Speculators. Not mom and pop. They don’t even know how this stuff works.
John Carvalho 03:13:36 And they don’t want to pretend like somebody did something to them, but they end.
Eric Voskuil 03:13:39 Up getting scammed anymore. Maybe in the beginning, you know, maybe even with BC. But they’re not getting scammed, they’re gambling, and I don’t give a fuck if they win or lose, I don’t care. Right. And so so this idea this, this kind of, you know, white hat idea of Maxis that that the that they’re saving the world from these scammers. If it was ever real, it’s no longer real. Right. They’re people. They’ll let the buyer beware. Everybody’s responsible for their own money.
Eric Voskuil 03:14:12 And if enough people get scammed, which has happened time and time again, at some point you realize they’re gambling. It’s not because they’re ignorant. And I’ve never complained about Maxis or anybody educating people about how these things work. I call things shit coins. If they’re pretend to have the security of Bitcoin and are not based on the same security model. I call, you know, Ethereum or Bitcoin because it’s it’s proof of. If nothing else, it’s because it’s proof of stake. Right.
John Carvalho 03:14:40 So I think most bitcoiners call Bitcoin bitcoins because they’re lower on the spectrum.
Eric Voskuil 03:14:45 They call them coins because they’re not Bitcoin not BTC. Right. And they some have been very explicit about that. Anything but BTC is a shit coin. I’m like well okay, but BTC could have been Litecoin. There was nothing in the paper. Litecoin didn’t deviate any way from the paper.
Vlad Costea 03:15:01 Right? It did. I’m sorry to intervene at this point, but also the conversation about scaling seems a bit dated because what light Litecoin did was to add extension blocks with nimble, nimble, and what nimble nimble does beyond the promise of of privacy is to prune previous transactions.
Vlad Costea 03:15:21 So it scales very beautifully. They can actually increase the block size of the extension block with soft forks. They don’t need to touch the base layer anymore and they can onboard people on the extension block.
So yeah, I’m surprised that this is not a bigger conversation than Bitcoin because it works really nice. There are transactions on the extension block which are collected by the miners. So it does solve part of the incentive problem with mining.
They’re also merged mine with Dogecoin. And that’s another can of worms. But my point is that there’s this nimble, nimble thing which scales pretty well. And you can add that to Bitcoin with just a soft fork.
Eric Voskuil 03:16:04 So I don’t. All my comments on Litecoin predate I mean I’m aware of the minimal thing, but all my comments on Litecoin predate that. I’m just I’m just using it as a stand in for another implementation of the white paper. Right. So in that case it wouldn’t really be. But that’s that is not my intent. Right. So if we if we take like say BTC and, change the genesis block or even not, but change the mining algorithm and run two chains side by side.
Eric Voskuil 03:16:35 That’s what I’m talking about when I refer to Litecoin, right? There’s a there’s there’s definitely a valid Bitcoin implementation that wasn’t the one that we got. Right. And that’s just for pure probability. We could have block one could have been a totally different block. We have an entirely different history. It’s just probability. We it’s clearly the case that there can be more than one.
Now Maxis will argue that the one that everybody uses and the one that came first, which again could have been any number, is the is the one we should all, gather around because that’s what makes it secure. And everything else is an attempt to steal or something from that, which is ridiculous, right? It’s your own money. and so. The it’s just a disingenuous argument. The whole and I have this God.
I remember making this comments to to Adam like a decade ago like isn’t though I remember saying a couple of times, isn’t the whole point of Bitcoin that you get to do what you want with your own money? And we’re telling people that they’re criminals, right? They’re criminal fraudsters for just mining a different coin or spending a different coin with their own money, their own boxes, you know, with other people that voluntarily want to do it.
Eric Voskuil 03:17:53 So to me that that was the core.
John Carvalho 03:17:55 I think that there is some like cultural excuses for that though, like there was a time and it hasn’t, you know, there was a time when all coins were innocent, like, like coin and we had an experimental. And then there was a time very shortly after that where they became extremely exploitative. And then we got ICOs and D5.
Eric Voskuil 03:18:14 But keep in mind.
John Carvalho 03:18:15 There’s just so much exploitation that we’ve kind of passed that hump to where it’s all normalized, which is what you were pointing out earlier.
Vlad Costea 03:18:22 No it’s not I’m not sure if you watch the news, but Kanye West is sort of reigniting the meme coin market right now.
Eric Voskuil 03:18:31 Whatever, I don’t I don’t care, right? Like go to Vegas I it doesn’t matter.
John Carvalho 03:18:34 It’s your money. When I say normalize, what I meant is that how Eric was pointing out that, like, nobody’s really getting scammed anymore? They all know that these are like.
Eric Voskuil 03:18:42 They’re betting that they can get in and out before everybody else.
Eric Voskuil 03:18:45 And, you know, like, for all I know, you know, the Trump coin was just a way for a bunch of fanboys to donate, right. This give them money because they, they’re, you know, who knows I don’t care. You know, do whatever you want. I’m only working on bitcoin. I don’t care what you do. So, my my point is, was one of theory, right?
Not one of practice. I know that there are legitimate scams and fraudsters that are out there lying about this, that and the other thing and and I and and there are coins that may or may not be scams. I may just be stupid people who are thinking they have a secure whatever thing based on Bitcoin. There are people that are running scams.
Bitcoins. If they’re not to me, they’re shit coins. If they’re not, if they’re pretend to be Bitcoin and they’re not right. And in order to define that, I pulled out what I thought was, you know, looking at how Bitcoin operates, the essential aspects from the, from the paper and the implementation of how bitcoin works and if and how it secures, how it’s secured.
Eric Voskuil 03:19:42 And if something pretends to do that and doesn’t, I call it a bitcoin. But clearly theoretically right. There are no limit to the number of valid legitimate non bitcoin. You know implementations of Bitcoin. Even the the chain that we have, there’s an infinite number of other possibilities that could have occurred with the same genesis blocks same rules, everything.
Right. So well not infinite but it’s an awful big number. So clearly from that standpoint, you know, it’s disingenuous if you understand that. And people I’m talking about did understand that. Right. and just said, but I want my number to go up. And so that’s kind of how I’ve looked at the whole thing.
It’s like, you know, you’re telling everybody that anybody you know, that’s doing anything other than BTC is a, you know, as a fraud and therefore a criminal. But the whole point of this Bitcoin stuff is to do what you want with your own stuff, and somebody’s making their own coin and trading it with other people and mining and doing whatever they do, even if they fork off of BTC.
Eric Voskuil 03:20:48 All they’re doing is taking their own hash rate, right? And using it some in some other way, which is perfectly they’re well within their rights to do it. So I’m just as an aside, I’m very careful when I use the word attack. It’s, it’s it’s very heavily overloaded in computing and in Bitcoin in general.
But I don’t use the word attack when I refer to majority hash power censorship enforcement. Right. Which is what happens when we do software enforcement. It’s majority hash power censorship. I use the term censorship through majority hash power. It would be a 51% attack if somebody stole from somebody. Right. Attack implies a crime, a theft, and it’s not an attack.
It’s an attack. If I say, you know, I go get that chainsaw and I give you the bitcoin, and then I, I mine to reverse my transaction using majority hash power. And I keep the chainsaw right. I had intent to steal and I did it right. That’s an attack. Any attack.
Eric Voskuil 03:21:45 51% attack. doing what you want. Like not mining blocks you don’t like is not an attack. It’s censorship. Right. Censorship by the state using money that they stole. Maybe you could consider that an attack, right? But every miner censors. Nobody has an obligation to mine anything.
And, And censors, in the sense that they selectively choose which transactions go in and out because there’s no objective way to do it. It’s not it’s not feasible. So so there is no clear line where you can say, you know, you have you have to do this with your hash power. You have to do this with your money, right?
You have to join us. You can’t leave and co-create your own coin or split off and be your own coin, right? I always saw that as bullshit. I remember, I remember saying that to Adam, saying like, isn’t this the whole point? And there’s no good answer to that. It’s like, well, yeah, but these people are frauds.
Eric Voskuil 03:22:37 They’re like, no, it’s not a fraud. To mine your own coin. Right. So but I think in this day and age, sorry, what.
John Carvalho 03:22:45 I was gonna say from like a sociological level, though, is it’s worth analyzing. Like, maybe the design of Bitcoin works because people speculate on it. And something about the design forces this behavior because it’s so prominent. Like, like 99% of people are in it for this.
Eric Voskuil 03:23:05 Right? Right. No I’m not. Like, again, you’re free to speculate. It’s fine. It’s just and it may be necessary for, for for it to get to a certain point. That’s also fine. I mean, everybody speculates on, you know, everything, right? You’d have to kind of guess what the price is going to be. Whatever. But, you know, there’s no, there’s there’s no kind of, the the basis of speculation is the is the idea that the current price is wrong, which economically is irrational because the current price incorporates all knowledge that there is about the future as well.
Eric Voskuil 03:23:36 So people do it. but it’s a, it’s a zero sum game, right? To the extent that people win, other people lose. it’s not there’s no production. There’s no growth. Right? Trade is positive, some production is positive, some speculation. To me, it’s just neutral. and it’s it’s not why I’m here, but I don’t I don’t say people shouldn’t do it.
I don’t do that. I just, I just caution people that money is not an investment. It doesn’t produce. There’s no guarantee of yield, investments. If you index the entire world’s markets over time, you’re going to earn, you know, whatever the time preference is. And if that didn’t happen, everybody would be dead, right? Production has to be positive.
Return or or there’s nothing produced. So, you know, yield interest is just the return on production. So there’s a big difference. I point that out, but I never I never tell people they’re bad for doing it. but I do call people out for calling other people bad for doing what they want with their own stuff, their money.
Eric Voskuil 03:24:39 They don’t have to mine your coin, right? If they want, if somebody wants to go off and mine or mine SegWit to X or whatever, that’s fine. If you can’t gather enough people and to to to mine what you’re selling, then you know doesn’t work.
But there’s no nobody has any obligation to anybody else in this in this system. the fact that it works is tremendous. People. You know, people speculate. People want it for different reasons. They’re cypherpunks and whatever.
It all it all works. But I’m, you know, I think that if if the only reason we’re doing it or if the only reason, like we’re talking about development, making decisions or people make decisions is, is to is to make the number go up, then we’re going to lose sight of, you know, the value proposition, which.
John Carvalho 03:25:28 we already are losing. Say, I think because.
Eric Voskuil 03:25:30 Right. I mean, I think I think it’s widely understood at this point that there’s there’s something going wrong.
Eric Voskuil 03:25:34 Right. And it’s it’s really, you know, when I saw the, the hordes of people kind of doing the sailor dance, I was, I was, you know, especially people that should know better. I was again, it was kind of like seeing the atom thing. It was a little disappointing. You know, they can do what they want, but, like, I thought we were kind of in this together and, you know, and then.
John Carvalho 03:25:55 And then I wanted to ask you, like, using your, you know, economics skills and ability to rationalize things. Are you interested or are you able to speculate on what you think the most likely outcome will be for Michael Saylor and what he’s doing and and the investors of his stock.
Eric Voskuil 03:26:16 You realize that if you looked at the history of his company.
John Carvalho 03:26:20 I mean, I know it’s been around for a long time. It was a failure for a long time. And,
Eric Voskuil 03:26:25 I think he, he he holds the dubious distinction of having lost more money, overnight than any company in history.
John Carvalho 03:26:33 He’s trying to beat that.
Eric Voskuil 03:26:34 You think that’s actually true? so, you know, he’s a wild speculator. As far as I can tell, he’s never. The company’s never really produced anything of, you know, significant. Certainly over, like, a 20 year stretch. It was like flat. So, that’s a lot of loss.
And now he’s gone all in on speculation, but it’s kind of like, you know, speculation. You could be a big one, or you can be a big loser last, and it’s like, what? So it wasn’t Soros that that speculated against the, For gold against the British pound. And that’s where his money came from. So you know.
One big win and you know, you’re you’re you’re all set. So it might work out. I have this you know, I understand I understand the, the the game he’s playing I, I, I was a, I was a board board member of several companies I’ve seen, like, you know, I’ve seen how a company that’s big enough can borrow, from the taxpayer.
Eric Voskuil 03:27:29 It’s a fundamentally from borrowing from the taxpayer at low rates. And, use that money to earn over time and pay it back at low rates and pocket the difference. I’ve even seen that done, where the money that’s borrowed is issued directly as a dividend. Directly. Right.
So borrow it 0.5% issue a dividend that the shareholders can then invest and earn an average of, say, 9 to 10% per year by just indexing the markets. And where did that money come from? Where did the where that difference come from? That’s that’s just playing arbitrage with the fed and the fed taxes that money out of people’s savings. So, that’s what he’s doing, right?
He’s borrowing at below market rates in order to, in order to speculate. so the return could be much higher. It could be much lower. But even if you just put it in the market index, you’d still be making money. and that all depends on whether you have access to taxpayer money. so as long as, you know, price price goes up enough or doesn’t go down enough, you’ll you’ll probably be fine.
Eric Voskuil 03:28:36 We’ll just keep doing it until somebody, you know, well, everybody starts doing it. They start giving.
John Carvalho 03:28:41 Away like, I just I don’t follow it closely enough. And I haven’t figured it out yet, but I feel like there’s something much worse going on. Like, in other words, where where it where it must implode at some point because of some, some sort of force that he’s winding up, in the market and making himself a target because like all of that Bitcoin, all of that like he’s he’s using the loans to buy the bitcoin, and then he has bitcoiners buying the stock instead of buying the bitcoin. And this feels like this. This feels like winding up a toy for it to explode. You know what I mean.
Eric Voskuil 03:29:17 Like yeah. No I understand what you’re saying, but I, I personally can’t put my finger on, you know, what that issue might be. So I don’t want to I don’t want to I don’t want to put any bad info out there.
John Carvalho 03:29:29 It just feels instinctive.
John Carvalho 03:29:30 Like I’m just like, no, this this can’t work. There’s something that’s going to implode here.
Eric Voskuil 03:29:34 But I but I can say that, you know, if if you just did arbitrage, you know, basically interest rate arbitrage. Sure. You know, as long as, as long as you can get. I mean, like, just by indexing the market over 25 years of just indexing the markets, I’ve earned an average of nine and a half, 10% a year.
And that’s what you would expect through historical returns and total U.S. market. Europe, on the other hand, flat for 20 years. But, well, maybe not flat, but like 9% over 20 years versus 9% per year over 20 years. So big difference.
But if you were if you just did that, if you just borrowed money, invested it or money invested it, paid it back. Right. You’re just doing arbitrage between, say, 1% and 9 or 10%. That’s a lot of, you know, that’s a that’s what member banks do with the Federal Reserve.
John Carvalho 03:30:21 They are not doing that. Right. Because he has like he has a buy in price, a price average that he’s entered. He has a price of his stock that’s variable as well.
Eric Voskuil 03:30:30 Right. It’s more complex than that. Right I get it. And same thing with banks. It’s more complex. But the basic principle with banks right, is you borrow from the fed at, you know, a tiny fraction of a percent and you lend, you know, for a home improvement loan at 10%, credit card loans at whatever. Right. So you make you make the you, you make, the, the interest rate difference without having any capital of your own because you’re able to, to, to get it from the fed, which gets it from the Treasury, which is printed, which is therefore Sandridge, which is taking money out of people’s pockets.
John Carvalho 03:31:02 Well, there’s also the factor that he sells his own shares of master as well. And so, like what he’s doing personally is a separate topic.
Eric Voskuil 03:31:10 Well, yeah, you’re smart to if you’re smart to get to to to to get out as it’s going up. but yeah I, I don’t I have a feeling it’s not going to end well. But, but, I also have a feeling he’s probably going to pocket quite a bit before it ends. Badly. if he’s, you know, if he’s doing what you’re saying.
John Carvalho 03:31:30 Well, he says he’s never going to sell. He’s never going to.
Eric Voskuil 03:31:32 Sell that I can say for sure. It’s bullshit, because the whole point of the only point of having.
John Carvalho 03:31:37 I just can’t imagine. I don’t know what his board structure is, but I just can’t imagine him, like, with a straight face suffering his shareholders and his board having not sold anything.
Eric Voskuil 03:31:47 I thought he had controlling ownership, so that might.
John Carvalho 03:31:50 Yeah, maybe that’s why that won’t happen then. But it just seems like how could you how could you live with yourself Leaving $20 billion on the table or something.
Eric Voskuil 03:31:59 Here we are with the.
Eric Voskuil 03:32:00 Here we are with the potential hypocrisy of the Maxey crowd that was cheering for sailor. maybe more recently, because it was all about number go up and because he was driving that number up. Yay. And then and then turns around into scammer. Right. Or yay trump coin. Yeah. Scammer. Right.
Or you know, National Reserve whatever we were talking about last. It’s it’s it’s like, you know, one bad follow after another. so I, you know, try not to have too many. I try not to do too much cheerleading. I have too many heroes. They tend to let you down. so I, I don’t know.
To me, it’s it’s it may be beneficial that it brings in development money that that’s, you know, the number going up and it may be beneficial from a security standpoint drives interest all these things. again, I don’t tell people not to do it. It’s just not the end goal. And if we lose sight of the end goal, right? If we could take advantage of all that capital coming in and do things that make sense towards, towards, you know, kind of a cypherpunk objective.
Eric Voskuil 03:33:03 Great. But that’s not really what I see so much. I see that all that capital flows in and we do stupid shit that doesn’t make sense. Like Chia. Or risk free rate of return or liquid or whatever. Right? Like, okay, you know, we took all the kind of kind of best core developers Blockstream to do. Sidechains said, no, we’re not going to do that. We’ll rent some time on a satellite and we’ll we’ll make a centralized, you know, federated, whatever. And we’ll make a redundant, little mining thing. I don’t know, like, where did all that goodwill and capital go? It’s. Yeah. You know, I, I’ve never.
John Carvalho 03:33:42 Had a lot of hope for Blockstream when they formed. Like, I thought they were going to be like the superstar bitcoin company. And I was like, oh, this is so cool. And then they came out with financial products and then they, they couldn’t figure out the sidechain thing the real way. And so they made a federation.
John Carvalho 03:33:56 Yeah.
Eric Voskuil 03:33:57 Well, maybe it wasn’t ever going to work the real way. I don’t know, I never got I tried to read it.
John Carvalho 03:34:00 Nobody figured it out since then either. So.
Eric Voskuil 03:34:02 Right. So a lot of hype, a lot of money. And you know, in the end, it’s getting kind of disappointing. I’ve never been like an anti Blockstream guy. I never I don’t really kind of, you know like hate the core developers. I, I have my specific issues but but it’s just kind of disappointing and like I look at even their I use their block explorer sometimes. There’s some aspects about it I like, but it’s the slowest goddamn fucking block explorer you could possibly make. And I’m like, okay, so where’s the where’s the value add from all this again, all this goodwill? I just don’t.
John Carvalho 03:34:36 You can just run mempool now. Anyway, Mempool space has their own, right?
Vlad Costea 03:34:42 So I like a conspiracy theory about Blockstream, and I know I’m not the only one because there are a bunch of crazies out there, a lot of ski zones and whatever.
Vlad Costea 03:34:52 But basically, what did Blockstream accomplish that they actually did? Well, they’re the ones that pushed the two soft forks that Bitcoin got since 2017. So if anything, what can they present to their investors and say, you know, we are the ones that actually produce something. Yeah I mean they made SegWit and they made taproot. And maybe that the investors believe that they’re they are the ones who politically control which piece of code is going to get into Bitcoin Core next.
Eric Voskuil 03:35:25 Well, their developers did and I don’t think it was exclusively Blockstream. And the developers that did it were the ones that, you know, from what I call it, were the ones that had built reputation prior to Blockstream to be able to drive that kind of general agreement, you know, and, I don’t see that really as an accomplishment of the company. It’s, you know, it’s the community that did that, and they probably would have done that or something similar without blocking.
Vlad Costea 03:35:53 But they can also block, pun intended. Some other proposals, like if you go to there is a telegram chat that’s called cult of the covenant, and that’s where they were discussing CTV and like two years ago, I think no, three years ago, Adam Beck joined the chat and basically destroyed their morale.
Vlad Costea 03:36:17 He made fun of them. He did that. Just one guy. He joined and he basically destroyed all of their plans.
John Carvalho 03:36:24 It’s funny is I, I find it so difficult to get Adam to commit to, you know, a stance on something like if there’s a, you know, position or a current hot topic and you try to talk to him about it on Twitter, you can never tell whether he’s agreeing with you or the other side. He’s very you know, he’s either even handed or wishy washy. Yeah.
Vlad Costea 03:36:45 He’s he’s trying to be this paternal figure who’s trying to get everyone to agree on topics, and he doesn’t take sides and whatever everyone is.
John Carvalho 03:36:55 I recall him telling me in private, I think in the past, not that it was meant to be a private conversation so much. It was just me and him that were there. it was at a conference or something, and I think maybe I remember it being that he considers his influence to be too strong to take a public position on things.
Eric Voskuil 03:37:12 I mean, I kind of appreciate his demeanor in general. I think he’s, you know, fairly levelheaded and everything. It’s just that, and, you know, he does get involved in technical questions sometimes when they’re when they’re in his, you know, in his area of expertise.
But for the most part, you know, the excessive the excessive pumping is just really tedious. And I don’t I don’t, but you know that that’s I’m sorry. I shouldn’t really judge. Right. He’s free to do what he wants. But, I just haven’t seen, not just I mean, It’s any any anybody out there?
I just really haven’t seen, anything significant. Right? It’s. And I don’t really need to see anything significant. I’m just like, you know, I’m just working on making the existing whatever the rules are, making them go faster. And I’m okay. I’m okay.
Vlad Costea 03:38:02 With that. What they did with CTV was very suspicious because it seemed like a coordinated attack. On one hand, you had Adam back destroy everyone in the chat.
Vlad Costea 03:38:12 On the other hand, you had grumbles posting memes that were making fun of Jeremy. I mean, Jeremy Rubin.
Eric Voskuil 03:38:18 But people have to be able to build their own. You know, they have to be able to build without against that or without that. If they can’t, then then they’re, you know, they’re just not strong enough.
Yeah, that’s and that’s just one of the reasons why Amir created the Bip system. And it’s one of the reasons why he created bitcoin. Right. It’s one of the reasons why I continue to push it.
This the reason I want, you know, one of the reasons I want to make a, a good, node that’s scalable and that we that people can understand the code and it’s resilient. And we’ll factor on all these great, you know, things we can get out of it is because there needs to be another center of expertise and excellence apart from core, because clearly, despite what they will say, if you don’t toe the line, you’re marginalized.
Eric Voskuil 03:39:04 And, and you guys have said several times, you know, if they don’t, if they don’t agree or whoever they are, right, it doesn’t happen. Or if they want to do it, it happens. That’s because they have they control the software, and there’s no reason for that, except for the fact that it’s just been a better implementation than anything available.
And when I look at it, I don’t I don’t, you know, it, it’s it’s not like a challenge to make a better implementation. Aside from that, it takes time and eventually, you know, that won’t be a power center anymore. Just like mosaic, turning into Netscape was a big power center in the web, right?
They kind of drove everything initially. And then they didn’t because competition came along. And it was also about standards. Right. And and, what direction we were going to go in terms of the web. It was a big deal. And I think that, you know, that I saw that as kind of inevitable.
Eric Voskuil 03:40:01 And it’s one of the reasons I kept working on the Bitcoin. And I, I’ve been happy with the outcome. And I think eventually we’re going to have, other centers of excellence that don’t depend on the ability to check in code into, into their repo. I don’t expect.
John Carvalho 03:40:16 There’s been a bit divisive in how they portray your project as well, though they haven’t exactly been.
Eric Voskuil 03:40:20 Sure. Yeah.
John Carvalho 03:40:21 Fair way.
Eric Voskuil 03:40:22 I don’t, but I don’t give a fuck. Right. Like, they don’t they don’t have any control over me. I, you know, I pay for myself. I raise sometimes raise money for other people. I’ve paid other people myself to work on it. And I’ve done that for 11 years. And, you know, they can say whatever the fuck they want. Right. I don’t, I just don’t I don’t have to listen to them. And that’s not true.
John Carvalho 03:40:41 I would love to see it grow to be more. I don’t know what it would take for that to happen, for sure, but I just like the idea of there being competition implementations because it would make soft forks harder.
John Carvalho 03:40:52 I just I want more control and more stability over Bitcoin.
Eric Voskuil 03:40:55 Well, look at look at.
John Carvalho 03:40:56 One of.
Eric Voskuil 03:40:56 These. Look at one of the things that happened. This is a little thing one of the things that happened recently. So every once in a while I’ll push out a number here and there I don’t I don’t I try not to I try not to over promote early.
Kind of like a mirror would do, right? It’s like, hey like there’s a, there’s a, there’s, you know, it’s been a lot to do. We’re getting we’re getting further along. But I pushed out like because somebody was I, because somebody was asking I pushed out some numbers.
And then I went and bought a little computer and I because he was like, it won’t work on a small because I did it, you know? And I was like, wow. I was surprised it was better than I thought. And, he’s kind of been working with us now because he, he kind of got turned.
Eric Voskuil 03:41:31 but in that whole thing right there was, people started to notice there was a big flurry of activity. Several core developers kind of started engaging. There’s a thread on delving. a couple of them joined our slack for a period. one of them did a, like a, you know, weekly thing where they do code review.
They were reviewing our code and somebody told me, so I went and joined it. So there was this big flurry of activity because I think one, they thought, you know, the numbers were bullshit. No, but nobody took, you know, so.
So I’ll give you an I’ll give you some example numbers on, on the machine I’m talking on now, which is at least eight years old Dell workstation, 64, 32 dual cores, 1 in 2 megahertz, something like that. 11.5, 256 GB of Ram, PCIe three recent SSD. So kind of bulky, but slowish, you know, older machine, my best, equivalent to assume valid full sync time off the internet.
Eric Voskuil 03:42:36 2.2.3 is what I measure. Gigabits per second cable internet 37 minutes is my best time to fully index all transactions and all spends, and do sufficient level of validation to achieve, you know, the equivalent of a zoom valid up to 850,000. Okay, Bitcoin core on this machine.
Same machine takes 24 hours. Okay. This machine does not have Shaunie which is hardware based hash acceleration shot hash acceleration. So what happens is because it’s it’s you know, Bitcoin Core has some multithreading, right?
But it’s not a parallel execution. It’s not scalable. So when you slow down hashing, everything slows down proportionately. And it’s five times slower at hashing. Right. But me 64 cores I just use more cores. Right? 37 minutes. Actually, I’m sorry.
John Carvalho 03:43:32 Any time I access Bitcoin Core on a desktop, you know, it’s like it feels like I’m literally opening an app from 2009. Like, it just it’s always super slow. It hangs. You know what I mean? It doesn’t access the app while it’s hanging.
John Carvalho 03:43:45 It’s it’s it’s obviously a very, very old application.
Eric Voskuil 03:43:50 So I want to I want to correct something I said for the record on this machine, it’s not 37 minutes on this machine. It’s like 50 minutes cause I think 24 hours on, on my $350 machine I got from TMU with windows, it, which is 32 gig PCIe four, eight dual cores, fairly small machine, cheap machine. That’s 37 minutes, has shiny and 80 x two.
So on that machine core takes 14 hours. of course, lower on windows, I think it’s like ten hours on Linux, but, so, so, so there’s a significant Difference. And the argument that you could tell, like the the messaging that was coming out of some of the people that weren’t, hadn’t directly looked at it was, this is bullshit, right? Like, it’s not possible because it truly believed that it’s not possible. It must be just cutting some corners, not doing the right. I’ve said for years that the biggest problem with their architecture is the Utxo store.
Eric Voskuil 03:44:56 It should not exist. It was a premature optimization by Satoshi. Every single implementation uses it is based on it. I also said the same thing about the Mempool should not exist, but have you ever heard the quote from Elon Musk? The biggest problem with engineers is they’re always optimizing things that shouldn’t exist. That’s a great example.
So by by by not having a utxo store, we do not have to sequentially validate every single block. Last last week I was able to achieve finally Parallel. Parallel. Parallelism. Parallelism by block. For most of the what I call the confirmation phase, which is determining whether a previous output is previously confirmed and whether it has been previously confirmed spent.
Right. Those are what we call that’s the confirmation phase. So we split. In order to achieve this, we split the process, the whole process of getting synced up into downloading, validating, which has nothing to do with order. Just get the get the previous outputs and validate right. And confirming which is determining that everything’s happened in the right order.
Eric Voskuil 03:46:07 And I believed for some time that that last phase was not going to be very parallelizable. because it depends on a query that runs across the entire chain to determine whether the order is right, there’s no to you or just queries the chain, but the validation in the middle right can be parallelized entirely. I can I can run every single block at the same time across the chain, right?
I have 64 cores, so I can do 64 at a time. And I was able to move about 90% of the work from that last phase into the parallel phase last week. So that got me from 39, you know. Well, sorry. Initial initial block download with assume valid. Right. So that’s without doing the full validation and the full confirmation.
But once we start doing validation confirmation we also have, you know, this issue. And so I was able to move a lot of that into parallelism, which I didn’t think I was going to be able to do. So now basically, you know, we can be we can pull down blocks as fast as the network can provide them.
Eric Voskuil 03:47:09 And we’re network limited. Right. And I’ve achieved the fastest I’ve achieved on the on this machine is 4.5 hours to download, validate and confirm the entire chain.
John Carvalho 03:47:23 When you mentioned, And.
Eric Voskuil 03:47:25 Why can’t they do that?
John Carvalho 03:47:28 What’s that? Why can’t they do that? Who knows?
Eric Voskuil 03:47:31 Like, these are the experts. These are the people. For 16 years have been have been optimizing the same implementation. I haven’t even started optimizing people. I’m just trying to get a final implementation. Right. So there’s.
John Carvalho 03:47:42 So I guess maybe there’s a difference between, like, an architect and, you know, a developer.
Eric Voskuil 03:47:47 An architectural failing of the design. It was Satoshi’s law, right? But why can’t they see it and fix it? Because it it’s hugely disruptive. That’s the. Why can’t they fix it? It’s usually disruptive and they won’t take that work on. So we did right. But why can’t they see it. That’s what’s really interesting. Like like the people that came and looked at the code they were looking for the, the like the hashing optimization or the or the some little optimization.
Eric Voskuil 03:48:15 They could actually drop into their code base. Right. There’s no dropping any of this into into Bitcoin Core. This is an entire an entire architecture of their system. I’ve looked at many ways. How could they do this right? How could I do this?
That doesn’t require that level of disruption. Complete rewrite and it’s just not possible. So. That’s what I mean. They, like, can’t even imagine that it’s possible. And then we start having discussions. And after weeks of having these discussions and like not really seeing it, the light starts to come on, right?
Like, oh, you know. So the only reason I’m may have this whole discussion, I gave this whole, you know, monologue about it was because that’s the consequence of a monoculture. Nobody questions anything, right? It’s like, well, I think that’s a little bit.
John Carvalho 03:49:04 It becomes derivative instead of creative, basically.
Eric Voskuil 03:49:07 But they don’t write like everything. All the optimization work is always kind of like lowest level. Like we can’t we nobody’s allowed to make any big changes.
Eric Voskuil 03:49:16 It’s all this low level stuff, right? So when that came out, the point of me raising this initially was when that started to come out. People started to see that the response was kind of cynical, like, you’re not doing it. Some people kind of actually kind of like, oh, wow, that’s pretty cool.
And other people were like, we should probably approve those pull requests based on IBD performance. So there were several outstanding pull requests that had come in where people had been trying to get them through to improve IBD performance. And so immediately there’s this flurry of activity and they approve a bunch of these pull requests, and an intermediate release goes out.
And some people are saying, well, you haven’t got the latest release. I’m like, look, I took the release, right? And I tuned it the way you said to make it go fastest on my machine, and this is what I got. They said, well, there’s a new release.
John Carvalho 03:50:01 So you got immediate like healthy competition.
Eric Voskuil 03:50:03 Right? That’s the point. Like immediately they’re like, oh my God. Like it is possible to go faster. Well, we should probably do this stuff. But it turns out that those again, were it was like these were trade offs. And this is why they were not approving. It was like increased the amount of memory available to signature caching or.
I don’t know what the which cash it is. It’s. I think it’s the, you know, cash. Right. So they had put a hard cap on the on the size of the UT. Oh, cash. And didn’t matter how high I put it in config, it wouldn’t go above that. It would just chop it off. Right. So they, they removed that limit or they made it much bigger.
And that was supposed to make it go much faster. People saying, well I was able to do so I, I did it again. It was you know, actually one of our guys did it, and one of the guys that came over was cynical, who was not really a core guy who’s kind of a Luke guy.
Eric Voskuil 03:50:51 And, and he ran it. He was like, oh, you know, so it did improve it. But what it did was it shifted almost the full amount of the benefit into shutdown time, because the time to unwind the Utxo store cash was significantly larger, and that’s why they had capped it in the first place, no doubt. Right. It was like 15 minutes to shut down or even longer.
I’ve seen even without that, I’ve seen on my machine. very significant shutdown times. Now, we were shut down at a time I’ve seen in any recent implementation of our stuff. It’s like a minute, right. And we use every single bit of memory available on the computer. We will use 100% of the memory available, and it still shuts down in less than usually like ten to 20s.
So okay. So they couldn’t really they know that there you know, these were out there, but they weren’t really doing them because they weren’t going to provide the advantage. But then they somebody some competition comes along and shows, hey, I can go, I can do this in 37 minutes and it takes you guys 14 hours.
Eric Voskuil 03:51:54 Well we better like, you know, trim a couple minutes off the run. and that’s it. So every the damage that I’m seeing is because of that lack of ability to think critically about their own implementation. What’s happened is performance work. This is just on software scaling, right? This is nothing to do with Bitcoin scaling. It’s a software scale. The performance work has been driven towards.
Assume this and assume that we’ve got assume valid, which we we implement same security model, very different implementation as Bitcoin Core. But then there’s assume Utxo which is. So we’re just going to like to package up the Utxo set, put up on some website and sign it. And you trust me, boom. You download it, you’re ready to go. So why do we even have Bitcoin at all at that point.
And then and then there’s there’s this you Yewtree exo stuff coming which, which is people have been led to believe that that’s kind of a optimization for validation. It is not not in any way it I actually implemented a significant portion of it recently to see if I could optimize the Utxo, use a Utxo accumulator to optimize that stage I was talking about.
Eric Voskuil 03:53:06 And it’s it’s slower in their implementation, like the tree node. And it was much slower from what I saw. It was not going to be an optimization because it still requires a total ordering, even if you can do them in parallel and roll them up, that still produces a total ordering. So what’s what’s happening is that I’ve seen the writing is on the wall.
That’s becoming another assumed scenario where if as long as as long as you assume, as long as you’re willing to accept this assumption, you can take my proof that this is valid. The only way you would know whether it’s valid is if you validated the full chain. Now it’s actually slower. So what’s happening is, because of this lack of ability to improve the software, make it scalable, two things.
One is the software itself is becoming more and more dependent on trust assumptions. And two, because of that, there’s more and more pushback on things that affect consensus from guys like Luke, for example, who wants to shrink the block size because it can’t get synced in time or fast enough, and it’s going to keep getting worse.
Eric Voskuil 03:54:09 And there’s other aspects of consensus that have even come to pass in the past. But we’ll I think we’ll continue to happen that are driven by poor implementation and that’s driven by the singularity of, of the, of the community around this one implementation. So until there’s I always knew that this was never going to go anywhere until we could ship it and show it actually doing it because nobody believes it. And I just do the math.
And if you look at the time it takes to download the amount of data on the wire, right, the wire size of all blocks. The theoretical limit on my 2.3 gigabit per second network is 34 minutes. So if I did nothing else except download a single file that had all the blocks in it and put it on my machine, nothing else, that would take 34 minutes, and I’ve done it in 37 minutes with a significant amount of validation, building of high level of indexing, and all the other network IO that has to happen in order to. To pull down the chain.
Eric Voskuil 03:55:11 Address exchange. ET cetera. ET cetera. Right. So, it’s curious why anybody would think it’s impossible to do it in 37 minutes when the theoretical limit is 34 minutes. But when you’re at, like 10 to 15 hours to 20 hours, depending on the platform, right. There’s something really wrong. And it’s and I’ve graphed this, you know, we have this linear graph like this for validation. And there’s just going like this. It’s going vertical. It’s it’s it’s not scalable. So as we add more to the chain, the time it takes to process each block is increasing. It’s not just a constant rate of increase. That’s what.
John Carvalho 03:55:49 Are we going to halt that sometime soon like.
Eric Voskuil 03:55:51 Well eventually Bitcoin big Bitcoin D will halt. It will cease to be functional. And that’s one of the reasons why we’re doing what we’re doing. They will either re-implement and just basically do what we’ve done right, or they will cease to function. That the hardware is growing faster than the hardware can keep up the time.
John Carvalho 03:56:11 I want to know more about. You mentioned earlier like optimizing things that shouldn’t exist. You mentioned the mempool. Can you describe to me what the the better design for how they handle the Mempool is? Is it just keeping all transactions arbitrarily on your own or what?
Eric Voskuil 03:56:26 Yeah, basically. I’m, I will do that, but I’m not a mirror, so I need to take a restroom break and I’ll be right back. Time out.
Vlad Costea 03:56:37 It’s all good. I can mention some sponsors, which I have.
John Carvalho 03:56:43 I’m still here. I’m just going to shut off my camera so I can walk around.
Vlad Costea 03:56:46 Okay. So first of all, thank you guys for being here. I see that we got almost 1700 views up to this point. We are about four hours in and we are basically halfway. way in our way to break the record. And I gotta tell you about site shift earlier in this interview. So within the first hour, you could hear us talk about tokens and tether and whatever. And I’ve also mentioned that Kanye West might be launching some sort of meme coin.
Vlad Costea 03:57:24 If you got any of that crap and you want to swap it for Bitcoin, which according to Eric Roskill can be BCH or LTC or whatever. You go to site shift and you can swap your Usdc or Kanye West coin coins or whatever for some money. That actually makes sense. And you can use it for something that you might find useful.
So check out signify. There is no registration required. As far as I know, they have pretty low fees and good liquidity. And I also have to mention Bitcoin.com news. And John can roast me for this one. I’ll say that I sold out or something, but today I read some very useful news there, and I think they finally learned the difference between BTC and BC.
And more than that, they have some very good journalistic pieces, like Russia’s Supreme Court moves to classify crypto as property, which seems to be big news. And also ECB expands digital asset settlement, a major shift in European finance. I usually look for this geopolitical coverage that they’re doing and is pretty useful.
Vlad Costea 03:58:37 They do good journalism and unfortunately I don’t see too much of this on other Bitcoin websites because they seem to be more ideological or dogmatic and don’t report some of the events that happen around the world. But I like what Bitcoin.com are doing with their news section, so check that out.
Get your news from Bitcoin.com. Com. And since I seem to have some extra time, I have to tell you about two possible versions of Bitcoin. Two possible versions of the future of Bitcoin, which include Sidechains and also ZK rollups. And I suppose these two can be topics for debate for the rest of our interview.
On one hand, we have layer two labs who are building their drive chains, and drive chains are minor enforced side chains, which means, on one hand, that the miners are going to be in control of the funds where the majority of the hash rate. On the other hand, it also means that the miners are going to expand the revenue from transaction fees. So it’s a solution to this Satoshi Nakamoto gamble, because if anything, the biggest gamble is this supply shock with the diminishing block rewards.
Vlad Costea 03:59:59 There is no guarantee that the fees are one day going to replace the subsidy that we get from block rewards. So one way to solve this is with drive chains. And it’s really interesting. I’m going to interview Paul Staats on Monday.
I think he wants to talk about some hot topics going on right now. So stay tuned for that one. And thank you later to labs for sponsoring the show. And more than this, it’s not just an idea, it’s software.
So John, if you are curious to see what Paul stores did with his drive chains, you can go to layer two labs download. And that’s where he has the software for pretty much all the side chains that he designed. You can try them on the Bitcoin testnet.
John Carvalho 04:00:44 I am not curious.
Vlad Costea 04:00:46 Something else that can be a feature of Bitcoin is called CTA, and they’re trying to build the ZK roll up. They claim to have been the first ZK roll up that was verified on Bitcoin. And what’s interesting about it is that they try to be sort of like, what’s the name of it an L2 on? I think it’s called optimism on Ethereum.
Vlad Costea 04:01:09 They try to bring an extra financial layer where you can use your Bitcoin to put it as collateral to borrow money against it and basically do whatever BlockFi and Celsius were doing, but not with a company, but with a protocol and smart contracts and something that you can actually audit and check the rules and make sure that it’s honest and it does what it says it does. So check out Syria they are building right now and they have a bunch of wallets.
They’re on the Bitcoin signet, if I’m not mistaken. They haven’t launched their testnet version. And it’s a trial exercise. And I’m actually curious what do you guys think about drive chains? I know what you think John, because you said it at Baltic Honey Badger on the stage and also about the ZK roll up protocols that are emerging, and they seem to be pretty popular and seem to be turning BTC into some sort of data availability layer for Ethereum applications.
John Carvalho 04:02:15 well, I don’t know too much about Syria. I’ll say it sounds like bullshit to me, but, I don’t think there’s I think that most of the proposals that people make with ZK rollups are just, you know, imported chicanery that are not really going to amount to much.
John Carvalho 04:02:32 if there are constructions that are useful. fine. I’m not an expert in it, but I haven’t seen anybody make any sort of, you know, mentionable, you know, breakthroughs and other chains or do anything that actually sounds like it would be a sound layer design using these things or anything like that.
I could be wrong. I don’t know enough about it. I’m speaking somewhere ignorantly, but these things tend to be, you know, engineers fidgeting around with toys and no real utility to end users. I also want to mention, to rewind a little bit.
You said I would give you a shit for a Bitcoin.com the first time you said it earlier in the show. I thought you said Bitcoin magazine, which I was going to give you more shit for than I would because I was like, wait, man, you’re advertising Bitcoin magazine? I’m so surprised. No, it’s.
Vlad Costea 04:03:26 the Bitcoin.com news section, which is pretty good, honestly.
John Carvalho 04:03:30 Yeah. I haven’t looked at it in a long time, but I’m not going to give you a shit either way because I don’t know, like, you’re you have to make money.
John Carvalho 04:03:37 You need sponsors. Whatever. Don’t those shill scams. You should be fine. yeah. No, but you gotta do.
Vlad Costea 04:03:44 What I want to say about the SSC roll ups. Is that what they tell their investors is that they’re trying to tap into the liquidity that’s on Ethereum as WBTC. There’s wrapped Bitcoin and I think there’s like 130,000 bitcoins that are locked on Ethereum right now. And they want to bring some of that liquidity to Bitcoin with some of these layers. And they think that if there was the option for some of these people to have the same functionality with better security, then they’re going to migrate from WBTC on Ethereum, which is sort of custodial with BitGo to something which is more trust minimized.
John Carvalho 04:04:28 I’m skeptical it’s going to be much better, if better at all, and that the that the liquidity would move only for that reason. The liquidity is on Ethereum for probably other reasons as well. so you have to isolate all of those things. And as far as the drive chains that you brought up.
John Carvalho 04:04:45 Yes. If people want my opinions, they can go look them up in other Stage presentations and such too. But I think that bringing it to this conversation earlier, we were talking about how blockchains compete, and alternative monies compete. I think that drive chains are separate, separate monies, regardless of whether they are.
You have the promise of miners backing them with Bitcoin. and thus you’re going to have really strange outcomes on how that may affect how miners view Bitcoin. And you know what the security model of Bitcoin is. And it could affect the security model of Bitcoin itself.
Like for example, what happens if a side chain is more popular than on chain. if there’s an overweight what happens if the miners do misbehave? How might that affect the overall Bitcoin price? Things like this. I don’t see any utility there. I think if I’d rather use an altcoin than a drive chain, because then I don’t have to change bitcoin to do it.
Vlad Costea 04:05:51 Eric, do you have any opinions on drive chains or ZK roll ups?
Eric Voskuil 04:05:58 Nope.
Eric Voskuil 04:05:59 I like Paul, but I don’t work on that stuff, so that’s nice for somebody.
John Carvalho 04:06:05 I used to like Paul until he turned into a total asshole defending drive chains. Once he once he joined. What is the name of layer two labs? Once he did that, he. I think he hooked up with some bad influences of people. and he basically burned our friendship just by being retarded, just because he had to promote his drive chain company.
Vlad Costea 04:06:26 I think you should speak with him in person because on Twitter, he he can be very abrasive.
John Carvalho 04:06:36 He’s welcome to apologize to me anytime. I haven’t seen him in a conference in a long time, though.
Vlad Costea 04:06:45 I should get you to on a podcast. Just for the lolz. I can only imagine.
John Carvalho 04:06:51 Not to talk about drive chains. There’s nothing else for me to say about it. You know.
Vlad Costea 04:07:00 Well, this is what we get. If we don’t scale, you know, we get drive chains, we get covenants, and we get ZK roll ups.
Vlad Costea 04:07:12 We could just get complexity.
John Carvalho 04:07:13 That also is not scaling.
Vlad Costea 04:07:15 Okay, let let’s make it 16MB and use some of the optimizations that we find in Bitcoin. And also use nimble nimble on an extension block to prune some of the transactions. And this technology is out there. It’s been tested for years. It’s not like we are experimenting SegWit. When it came out, it was only on Litecoin for like a couple of months. And then they added it to Bitcoin. Nimble nimble extension blocks have been on Litecoin for like three years and they’ve been mostly ignored. I’m not sure if even if any of you have.
John Carvalho 04:07:52 Well, it’s taboo now to even discuss Blocksize, right? Like I, I only discuss it because I want there to be like, I don’t know. I want to be able to discuss things reasonably, whether they’re good ideas or bad ideas, and be able to talk about why they are good ideas or bad ideas. But with most Bitcoiners, you can’t even talk about blocksize without getting accusations, being insulted, etc. never mind being a protocol dev trying to work on some sort of pull request or design for implementing an in bitcoin in some safe way.
John Carvalho 04:08:23 So I don’t know how the hell you we can’t get people to agree to drive chains. I don’t think we’re going to get people to agree to covenants unless core really wants to show how it’s a governance structure. and yeah, I remember when Bill same thing. I don’t know how you’re going to convince people to take on these ideas when they’re culturally taboo, and when working on culturally taboo things keeps you in the outgroup of protocol developers.
Vlad Costea 04:08:53 Yeah, but at the same time, who dictates what the culture is? Is it Saylor? Is it Blockstream?
John Carvalho 04:08:59 The maintainers?
Vlad Costea 04:09:03 So you’re defining the culture of a system according to the core maintainers, because I don’t think Ava Chao or Gloria Zhao or whatever have any strong opinions about anything.
John Carvalho 04:09:19 Well, they’re ultimately the one that decides what gets merged. And if you are on the wrong side of whatever cultural system is, you know, however nuanced it may be behind the scenes, I have no idea. But there’s some sort of in-group, outgroup cultural aspect to working on Bitcoin Core, and Bitcoin Core remains the de facto implementation.
John Carvalho 04:09:39 And so you have these the situation.
Vlad Costea 04:09:42 I think you’re right, because Ava Chao said that he or she is not going to merge anything controversial, ever. So as a maintainer, they’re somewhat reasonable.
John Carvalho 04:09:55 I mean, it’s totally reasonable if you think about that. Users have no participation in changes to Bitcoin. and it’s just something totally engineer driven. yeah. Well put into Bitcoin core. Sorry.
Vlad Costea 04:10:10 I mean, that sounds like what Monero is doing, right? They have this agreement that they have a common goal and they trust their developers that they’re going to achieve it if they trust these guys.
John Carvalho 04:10:24 Yeah. Like Monero does something like fork intentionally every six months, even if they don’t have a fork to make that.
Vlad Costea 04:10:30 Make that they don’t.
John Carvalho 04:10:31 They stop that. okay.
Vlad Costea 04:10:33 Yeah. They used to do it. Now they stopped. But they’re going to implement something that’s called full chain membership proofs. And that one is sort of a big deal, because right now they have the decoy system with 16 decoys or something, and one of them is the real transaction.
Vlad Costea 04:10:51 But once they do full chain membership proofs, you’re going to have an anonymity set consisting of the entire chain, which is what Zcash is doing.
John Carvalho 04:11:02 Okay. But we can’t.
Vlad Costea 04:11:07 But once again it’s taboo to talk about this.
John Carvalho 04:11:11 Yeah I mean well it could be exciting. You know if you hold Monero and if you use Monero, but I don’t know how practical it is to bring those things over to Bitcoin and what the trade offs and implications would be either. there’s always so many nuances with all these things that ultimately it’s just easier to discuss that. Engineer driven change is not What Bitcoin is meant to be.
Vlad Costea 04:11:38 Okay. Let me tell you something which I’ve learned from listening to Roger ver interview very recently. He said he’s super bullish on BTC right now because there is something that’s called confidential layer that can tokenize Bitcoin on another network that’s called Zano. And you’re going to transact BTC on Zano, just like you transact BTC on Ethereum, but with very good privacy and low fees. So basically he’s bullish on BTC the token because of course Bitcoin the network does not provide this functionality.
Vlad Costea 04:12:16 What confidential transactions and.
John Carvalho 04:12:18 How do you not see that he’s bullish about all this just because he wants to show Zeno?
Vlad Costea 04:12:22 Most likely yes. But at the same time, Amir Taqi is building Dark Fae, which does the same thing. The difference between Zeno is and Dark Phi is that Dark Fae is using Halo to Zcash cryptography, and Zeno is using ring signatures from Monero.
John Carvalho 04:12:38 So Darkrai is a coin.
Vlad Costea 04:12:41 Of course. I mean.
John Carvalho 04:12:45 I didn’t know, I thought I was like the whole vision and he has like this, this no identity chat software and some wallet.
Vlad Costea 04:12:54 I never know he’s gonna have a token. I mean, he has investors. There’s someone that he must please at the end of the day. Yeah.
John Carvalho 04:13:02 I haven’t followed this stuff. I don’t know.
Vlad Costea 04:13:05 He’s not allowed to talk about it. There are some lawyers that handle everything, but there’s going to be a token.
Eric Voskuil 04:13:18 I have the popcorn out.
Vlad Costea 04:13:22 But this can be a.
John Carvalho 04:13:23 Yeah, I don’t have a lot.
Vlad Costea 04:13:24 Of money to transact it on some other network because we did not scale.
Vlad Costea 04:13:29 We did not make it fungible.
John Carvalho 04:13:33 Nothing’s fungible.
Vlad Costea 04:13:38 I’m not so sure about that. Like you can melt gold and make it look like any other piece of gold.
John Carvalho 04:13:46 Well, you could. This gets really kind of, a bit. I don’t know if it’s philosophical. Philosophical what the word is, but the the properties of physics just force every literal thing to be unique because everything has to have a unique position in reality. So everything is closer or further to something else than something else is okay.
Vlad Costea 04:14:10 But this is not about physics in physics. It’s just about being able to assess whether or not to pieces of metal or to dollar bills or something are identical.
John Carvalho 04:14:25 No, whether they’re able to be substituted is what fungibility is, You’re right. and so, for example, as a dollar bill in Africa, fungible with a dollar bill in Canada. Not really. Right.
Vlad Costea 04:14:44 Okay. So.
John Carvalho 04:14:47 There’s a different expense to getting it out of Canada, to get it to get into Canada. There’s going to be subjective value to the person holding it.
John Carvalho 04:14:55 There’s like fungibility is not really a useful thing. It’s just I don’t know. I don’t know. Maybe just better to talk about supply and demand or, I don’t know, fungibility. What you mean is, what you actually mean is the ability to transact without censorship based off of the source of your money.
Eric Voskuil 04:15:14 Right. I tend to look at it from the Bitcoin perspective in terms of taint. Right. If a if a coin can be tainted, it’s, it’s it’s not fungible with a coin that is untainted that where nobody has the knowledge of where it’s been or who owns it.
John Carvalho 04:15:31 But every coin has some sort of metadata associated with it. Not that much on chain, but a little bit. so thus every chain has a unique I mean, every coin has a unique history, etc. that, like Bitcoin tracks the in fungibility of the uso’s. That’s what it does.
Eric Voskuil 04:15:50 Yeah.
Vlad Costea 04:15:53 That’s why we should start mining. Seriously.
John Carvalho 04:15:59 I mean, I think it’s okay. I think that people think about privacy the wrong way.
John Carvalho 04:16:02 Most of the time that privacy is just metadata that you generate, and managing your privacy is managing witnesses. And if you take that, you know, fundamental dynamic and apply it to moments where you’re trying to be private and build tools that allow people as much control as they could possibly have to control witnesses. Then you’re building privacy tools, but most people don’t take all the steps required to maximize their creation of metadata. Basically, when you act on a network, there’s always going to be at least one witness.
And so they leak all over the place, and then they pretend and they Larp. They play games that they’re, you know, mixing their coins and these kinds of things, while meanwhile they just have no fungibility at all. And it’s just kind of they’ve they’ve maybe made it so their landlord can’t tell, you know, which utxo, they, you know how much bitcoin they had in that UT so where it came from. But they haven’t actually like overcome any sort of surveillance of anything of note.
John Carvalho 04:17:09 They certainly haven’t overcome state surveillance, which can look at the actual internet network itself and look at behavior and make correlations. So it’s like a lot of the the privacy conversation just feels so hypothetical. And LRP like just just It’s a performance a lot of the time because the people that actually need it, they’re playing totally different games, the people actually hunting people using these kinds of methods. Blockchain analysis, network analysis. This is a totally different game that people are playing, and most people aren’t even remotely qualified to overcome it.
And so if you want to have a practical approach to managing privacy in your life, or designing tools and software to improve privacy, you’ve just got to be doing that. That basic function of giving people more ways to control the witnesses of their data. Now, of course, you could say, if I can’t associate anything with your utxo or with your coins, then, then I’ve achieved fungibility and thus you’re not creating metadata, but then you won’t be able to do other things with that coin.
John Carvalho 04:18:13 You won’t know who is allowed to spend it, or you know what happened to it in the past or whether it’s been double spent. There’s all kinds of other things you need to have the uniqueness Weakness tracked that make it useful and actual possible to be used. So it’s like this. I know I’m speaking, abstractly, but I think that this is how I reason about these ideas.
And when I think about privacy and why I think of it as, okay, if we’re talking about the government, I don’t care. Like if you’re a target of the government, you’ve got to be some kind of super hacker, and you have probably have to have done something really, really scary and really, really risky to even be having that conversation. And Bitcoin is probably not what you want to be using in that situation. probably not Monero either.
And so you also have things like using privacy dedicated things makes you suspicious to people who are watching out for people that are doing bad things. And so you have another trade off as well, is where now are you? Are you hiding in a crowd or are you hiding amongst a bunch of thieves? And which one is actually going to serve you, you know?
Vlad Costea 04:19:26 Yeah.
Vlad Costea 04:19:26 But in the case of Bitcoin, I, I thought about this a lot because people tell me, okay, Vlad. So I withdraw the coins from an exchange and then send them to my hardware wallet in two separate transactions. How can you prove that the address belongs to me and I didn’t pay someone else? So they appeal to deniability. And they say that by virtue.
John Carvalho 04:19:48 Well, you have plausible deniability in one hop. You don’t need to mix at all. If you want plausible deniability, you say, I sent the coin to Joe. Who’s Joe? I don’t know, some guy. You have his ID? No. I met him at a bar. Like.
Vlad Costea 04:20:00 But it’s temporary because you’re only going to have this deniability for as long as you don’t sell. And by the time you sell, you’re gonna have to KYC, most likely.
John Carvalho 04:20:12 But it’s an illusion that you can separate that history and sell in the future. That’s the illusion is that that that’s what Bitcoin does is it tracks all of the connections to where that bitcoin came from.
Vlad Costea 04:20:25 Yeah. But that’s exactly what.
John Carvalho 04:20:26 I’m the best you can do is create the yeah yeah the best the best you can do is hope that the you can hide in a set of similar transactions, but then they’ll just track the whole set until they find you. So it’s so easy. I just think that bitcoin mixing is, is so fake. and does nothing.
Vlad Costea 04:20:50 Oh once again it depends on who’s analyzing. If you’re paying your rent as you see right.
John Carvalho 04:20:56 If you’re hiding from your landlord then yes you can amateur surveillance. You can very easily. You could do this by just sending your own Bitcoin transactions to yourself at random once a day, and then all your utensils get, you know, mixed with new addresses and, and make them as small as this practical. So you are ideally sending us close to a whole utx. So when you are sending them and then you’re managing your privacy like in Bitcoin.
Vlad Costea 04:21:25 And with people doing crime with bitcoin who have a budget for this, they just buy from a mining pool.
Vlad Costea 04:21:33 So there is no change.
John Carvalho 04:21:34 That’s what that’s what we say. But I don’t think that’s actually happening very much. I don’t think miners are selling to. I don’t I know of no premium for freshly mined coins or marketplace for freshly mined coins. But that just because I don’t know about it doesn’t mean I’m serious.
Eric Voskuil 04:21:52 You just mine yourself.
John Carvalho 04:22:03 Yeah. Although mining yourself requires a certain a stature of of company to be able to reliably mine any Bitcoin at all. You end up registering as a company. You end up making yourself sensible and adding tracing and metadata outside of the bitcoin.
Eric Voskuil 04:22:17 Registering as a company. The criminal element who needs private money registering his company?
John Carvalho 04:22:22 Well, how are they going to scale up the electricity and get all of the resources they need to be able to mine?
Eric Voskuil 04:22:28 Remember, their cousin runs the hydro plant in central China.
John Carvalho 04:22:33 Yeah. I mean, we could talk about obscure possibilities, but as far as actually applying this as a method, it doesn’t seem like anything. It seems like something only the state could do.
Vlad Costea 04:22:49 And just the thing that this started from a silly or maybe naive assumption of one CPU, one vote, and Satoshi actually sent an email to Laszlo, who was possibly the first GPU miner, and told him, you know, can you please stop? Like let new users get 50 bitcoins with their clients mining with their CPUs? And now we got to this point.
John Carvalho 04:23:15 Why didn’t he just fork it and slow down the release schedule if that was his concern?
Vlad Costea 04:23:20 I don’t know.
Eric Voskuil 04:23:23 Well, the difficulty adjustment slows down the release schedule.
John Carvalho 04:23:27 No, I mean, in other words, like, have it spread more out over like. In other words, less difficulty changes.
Eric Voskuil 04:23:34 But if somebody’s got 99% of the hash power, how do you spread it out?
John Carvalho 04:23:41 Well, the first epoch is 50 and the next is 25. I guess you make it 50, then 40, then 30, or some other arbitrary slower output.
Eric Voskuil 04:23:54 Then you’re slowing the block rate, which means you have to increase the difficulty.
John Carvalho 04:23:57 So now you’re slowing the reward rate, not the block rate.
Speaker 4 04:24:03 Well it’s arbitrary. I mean.
Eric Voskuil 04:24:07 Satoshi even said that he understood that.
John Carvalho 04:24:11 But. look at it this way there was a certain amount of hash power in the first year that was put towards Bitcoin. If the block reward was 50, it would be a certain amount of Bitcoin created. If it was 20, it would be 25. It would be half as much Bitcoin created in the same amount of time.
Eric Voskuil 04:24:26 But what matters is the percentage over that time of the newly created coin going to that one person.
John Carvalho 04:24:34 Oh. So in other words, even though they had only gotten 25 Bitcoin instead of 50, they would still have the same proportion.
Eric Voskuil 04:24:40 They got 99% more than everybody else.
John Carvalho 04:24:43 Yeah yeah.
Eric Voskuil 04:24:44 Yeah.
John Carvalho 04:24:46 Yeah. Because nobody else gets the advantage over him. That’s the problem. Yeah.
Eric Voskuil 04:24:50 And that’ll be perpetual. So at least until other people build up their hash rate. That’s the way it works. I mean, you know, not really much you can do about it, except maybe ask a guy to stop.
Eric Voskuil 04:25:05 Hey chill out, dude.
John Carvalho 04:25:09 What about you, Eric? What do you think about privacy topics in Bitcoin and blockchains?
Eric Voskuil 04:25:15 I mean, I, I think privacy is one of the most important aspects of, of core development, improving privacy because the value proposition, you know, accrues to Bitcoin when you’re doing things that are not allowed. Otherwise.
John Carvalho 04:25:32 What does that look like though? In other words, yeah, having better privacy is something nobody would argue with. But how?
Eric Voskuil 04:25:40 Well reduce tainting. That’s that’s the objective. But I mean how. I haven’t I, I have not been a big proponent of most of the things that I’ve seen, like, for example, mixing. I, I’ve never, you know, I, I just caution people that, you know, don’t put too much faith in these in the security of these things.
I don’t think it’s always as easy as you imply. But I also don’t think that there’s sufficient security against real threats in mixing. And I mean, ultimately, what you described as the anonymity set right is that’s the basis of privacy when it comes right down to it is, is is creating a large enough anonymity set and being in it, which essentially what mixing is.
Eric Voskuil 04:26:27 But I haven’t seen anything that, that, that that looks sufficient for real threats. And what was the other aspect you asked, you asked about? it wasn’t just mixing.
John Carvalho 04:26:48 We covered a member Kimball fungibility, mixing, leaking metadata on a network to witnesses.
Eric Voskuil 04:26:58 Yeah, sorry.
Speaker 5 04:26:59 I had another thought and lost it. But having to do with privacy that wasn’t related to mixing. Thing? No, I’ll think of it in a minute.
Vlad Costea 04:27:13 In the white paper there’s this description of Bitcoin. There’s chapter ten that talks about privacy. And Satoshi assumes that users are going to generate a new address. I think it’s described as a public key for every transaction. But for multi input ones, for multi input transactions there’s always going to be some linking. When you’re batching utxo or whatever. So he was correct and he described the limitations. He also wanted to pursue zero knowledge proofs. And there were not too many libraries at the time for this. There are some posts on Bitcoin talk. And then in 2013 we had two papers.
Vlad Costea 04:28:01 One of them was called Zero coin and the other one was called zero cash. And they were trying to bring zero knowledge proofs into Bitcoin as a soft work. There was no consensus for this.
If you look at the original thread by Greg Maxwell about coin joins, he actually talks about zero coin and zero cash and says that there are two avant garde or maybe not battle tested enough for bitcoin, but maybe we can get something similar with Coinjoin and proposes that someone builds this coinjoin wallet. So we had these proposals. We did see how they evolved over time.
I think right now Zcash is pretty advanced, but where I’m heading with this is that Amir Taqi came up with the first implementation of a Coinjoin wallet, and it was called Dark Wallet. And the reason why it did not get the bounty from Greg Maxwell was that there was this John Dillon character who was Corresponding in private, or unless they were the same person with Peter Todd. And basically what John Dillon did was say so he he was basically the Michael Saylor of 2013.
Vlad Costea 04:29:14 He said, if I send this amount of bitcoin to the bounty address, then I’m going to have a word to say in how this bounty is being distributed. And then the private conversation with Peter Todd. John Dylan seems very concerned with the fact that Amir used lib bitcoin for Dark Wallet, and he seems to have this line of argumentation that there should only be one client and it’s dangerous for Bitcoin to get traction. So there.
John Carvalho 04:29:48 Is anyone on core not have that that.
Eric Voskuil 04:29:51 Who is who is this guy again?
Vlad Costea 04:29:53 John Dylan.
Eric Voskuil 04:29:54 Sock puppet.
John Carvalho 04:29:56 Oh you haven’t heard the John Dylan?
Eric Voskuil 04:29:58 I don’t know.
John Carvalho 04:29:59 I don’t.
Speaker 6 04:29:59 See story.
John Carvalho 04:30:01 it’s, goes back.
Eric Voskuil 04:30:03 Vlad referred to it a while back, but I don’t. I didn’t know it.
Vlad Costea 04:30:07 Are you sure you’re friends with Amir? Because he talks about it all the time. It’s like.
Eric Voskuil 04:30:12 You know, you think I listened to your Amir podcast that go on for seven hours? Okay, I see, I see Amir maybe once a year. And, you know, we don’t talk about this stuff.
Vlad Costea 04:30:25 I know he finds a lot of frustration in the fact that he did not get that bounty. And that project was killed pretty early on. He never had a chance. Dark wallet. Yeah.
Speaker 5 04:30:37 Killed I don’t know.
Eric Voskuil 04:30:39 I don’t I don’t know, I didn’t I don’t know the story that bounty I mean I was directly involved with bitcoin at the time. he was working on dark wallet, but I never worked on dark wallet. and some of the stuff he was doing was, you know, pushed back in to our code base. but by that time I was, I was managing it, and, you know, I, I went down to Cody’s department in Austin for the Dark Wallet release announcement, which, you know, obviously a bit of a pre-release announcement, but that’s where that’s where I think I met Peter Todd for the first time and Andy Greenberg and.
Vlad Costea 04:31:10 Vitalik, I guess he was also there.
Eric Voskuil 04:31:13 No, I wasn’t there. but, Phantom Circuit, I can’t remember his name right now.
Eric Voskuil 04:31:21 he was the one that actually laid down the first line of code for Bitcoin. Amir kind of found him online when he went, when he wanted to start working on the Bitcoin. And they they did it together for a while. He I spent I spent a couple nights at his place in Austin. He was a big miner.
I can’t remember his name. but he had about 5% of the hash power in the network in like in Texas, and eventually went to work for Blockstream. I don’t know what he’s doing now. but that was kind of, it was pretty early. I mean, dark wallet never quite got, finished, and the Bitcoin never quite got finished. I mean there were releases but you know I’ve been working on it.
I’ve been working on it for about ten years. 11 years. we did a couple releases, but I’ve never considered it. done. There were there were significant limitations in like, the last release before the release, which I worked on in prototype for a couple of years and set it aside and came back once I once I figured out how to resolve the issues that we were dealing with.
Eric Voskuil 04:32:20 started over and it’s been been good since then, but a lot of work and that, you know, so Amir is, I think, really good at, getting things started. and I think over time he’s like, what he’s been doing with Dark Fae. I don’t I don’t follow it. I’ve never looked at any code. I don’t I haven’t been involved in any way.
But just from following, his trajectory, it seems like he especially after raising money. Right. He’s gotten better at, the finishing aspect you’re completing, right? Like like shipping. Right. Because because I, I, I in my prior life, I, I shipped software that fortune 500 companies ran. I be sold to Pepsi and other big companies and and then we sold to Microsoft and I was a principal architect there.
And then, you know, and we also created the company called Beyond Trust Now, which I’m not involved with anymore, but it keeps getting bigger. And it and it hit the news in a big way, like last year when there was that big, government hack in the US Treasury Department hack.
Eric Voskuil 04:33:27 They were involved in that. That was a company I created. so, you know, I my, my perspective is like, I, I, I, I understand what it takes to kind of ship a, a finished product and make it maintainable and that and that’s a lot different than getting something started.
And my perspective, I mean, Meir Amir’s the decisions he made to create Bitcoin and the and the architectural and design things that he came up with, which I was involved with as he as they were evolving. The first couple of releases before I kind of took over were excellent.
He had excellent insights and and just hadn’t, you know, his, his kind of had this very ad hoc, approach to, to releasing and maintaining, like, just get the open source out there, people maintain it and that’s, you know, there’s a need for that. It got it to the point where. And this applies to dark wallet to and dark market. Right. That became Open Bazaar. That was a like a one day project, that he did with a couple of guys from Arabic, which became, Edge Wallet.
Eric Voskuil 04:34:34 Right. All these guys, they were working on Bitcoin as well, and that was based on the bitcoin. And then there was dark leaks. There was, you know, dark dark market, dark leaks, dark wallet, Bitcoin and now Dark Fae. none of these things were mature products.
Even Bitcoin was not mature. Even with releases, it was not. Not really a maintainable project yet. but I have worked on it for very long time. And, there’s very little deviation from the core principles. that is, the architectural decisions he made even at this point is the code is significantly different.
But, so I don’t know, I think he’s, he’s, you know, he’s he’s getting better at, at, at, at, getting kind of production quality release maintainable software because there’s so much. So we didn’t even have continuous integration when, when I joined, we didn’t have, you know, anything executing tests. We had an ad hoc generated, installer scripts, things like that, which would always kind of drift and fail.
Eric Voskuil 04:35:39 And so we spent a ton of time on code generation and CI and testing cross-platform and, well, and that’s been a major part of it. So dark wallet. And when I saw never, it was kind of similar to the Bitcoin. It got to the point where there was, you know, it sort of worked.
I never used it myself, but I never got the feeling like it was done. and maybe, you know, the collapse of some pending donation led to that. I don’t I don’t know. I wasn’t involved in that. there were I know there were people that claimed that, you know, him and his team ran off with the with the Kickstarter money or whatever it was that they, you know, I think it was like 50 or 60 us k us that they brought in.
I’m like, you got to be kidding me. Like, I bring a bring bring a decent developer on to work on the bitcoin and it’s like 200 a year. They had like several guys working on this thing and they only raised about 50 K.
Eric Voskuil 04:36:37 So I don’t know what kind of mindset people have in terms of professional software development. But and now.
Vlad Costea 04:36:44 They raised Bitcoin and I guess people came many years later being like, well, I sent you like 50 bitcoin and now they’re worth this much.
Eric Voskuil 04:36:52 The total, the total value of all the Bitcoin they raised through the Kickstarter thing, I think was about 50 grand at the time, and it got spent as far as I know. I didn’t I didn’t receive any of it. And I, I, you know, I, I, you know, what else, where else, what else were they living on? So it’s not a lot of money, right?
Nowadays you try to bring somebody on that has some skill and professional, you know, developer who, you know, even if he wants to kind of take a, take a hit so he can work on a project like with Bitcoin, you know, I mean, 200 K a year was kind of minimum, right. And the numbers I’ve seen recently, I was talking to my old college roommate who’s a he’s a senior developer.
Eric Voskuil 04:37:33 You know, we were both computer science and he works for a big company. And and he’s like, looking around the market and, you know, for senior developer positions now are like 350 K. That’s inflation but okay. And I’m looking at a.
John Carvalho 04:37:47 Lot of these are American numbers I should just claim for for listening. Well sure.
Eric Voskuil 04:37:51 Yeah. But you know, I don’t know, maybe he was raising European dollars at the time, but still it was 50 K. It was maybe like, you know, at the time we got one decent, you know, developer who’s taking a hit that’s, you know, that’s a year maybe.
John Carvalho 04:38:05 So I’m not trying to argue 50 K is a lot. And ten years ago or now.
Eric Voskuil 04:38:10 I just thought it was hilarious that people thought like, you know, like they don’t have no no concept of of what? Like, you know, these things cost you just like, whip that together. I guess. Now just, you know, this I could write dark wallet over, you know, in a few minutes, but, you know, we have a little Bitcoin has.
Eric Voskuil 04:38:27 Last time I measured, which was probably like seven years ago, we had a half a million lines of code, with ten repositories, you know, support for, you know, all compilers for, for all platforms, all build systems. and it’s just a it’s a, it’s a, it’s a lot and, people expect professional quality product, right? I mean, if you’re going to I mean, how much how much money you think goes gets sucked into Bitcoin core and related Bitcoin core things, cash donations from whatever.
Right. It’s a lot. And you know, we had nothing. You know like we’ve wasted some here and there private donors who don’t want to be named you know. But for the most part, it’s been you know, I’ve never taken a nickel to ever do anything with Bitcoin.
Speak not not, not consult. I’ve only taken travel, even for consulting. And so, that’s the way I like it. It’s no strings attached, but, that’s hard to come by.
Eric Voskuil 04:39:26 And most people, you know, I don’t there’s nobody that that can work on the bitcoin that has experience in Bitcoin. That’s just, you know going to do that forever. Some people have done it for a couple of years but so it’s expensive and not you know we don’t get the flow of cash that goes to Bitcoin Core.
They get you know they got money coming out their ears from what I can see. and there is a concerted effort to make sure that that goes towards them and not towards others. And when you mention this John Dylan character, I said, a real person who’s a pseudonym, does anybody know who it is? Because when you mention that, all I can think of is one of Maxwell’s sock puppets, that’s what it sounds like.
Vlad Costea 04:40:03 Which is funny because in this exchange, so actually wrote an entire Twitter thread with my takeaways from reading all the emails. I think it took me like one hour to read everything and then make summaries. It took me another one hour, but there was this exchange between Peter Todd and John Dillon where John Dillon was saying, you know, people told me that I might be Greg Maxwell.
Eric Voskuil 04:40:34 I’m just guessing. I had.
Vlad Costea 04:40:35 No idea. And Peter Todd said, you know, someone told me that we might be the same person.
Eric Voskuil 04:40:44 Yeah. I’ve never known Peter to be much of a sock puppeteer, but, But, Greg. Greg was busted more than once, I think. So, And that was, you know, he he didn’t have any. He didn’t have any love for the Bitcoin. I, I butted heads with him a couple times. there was, I was, I don’t know, the encryption bit 151 whatever.
It was two of them years ago they got they got withdrawn and then redone later. That was the only one that critiqued him. It was another one of these things where I’m like, wait a minute, what are you guys doing? You know, he was so bad out of shape about me critiquing it.
You know, one voice. Yeah, out of all of them. One voice. He was like, really not happy with it. Wrote me a private note about it, and, I never disclosed, but, you know what? What was what he said, but but, yeah, it was like, you know, how dare you question are.
Eric Voskuil 04:41:37 You know this. This is. This is all goodness. I’m like, well, you know, what you’re doing is you’re making a VPN in the P2P protocol. Somebody might take advantage of that, like know your customer, you know, like, if you’re going to run an exchange, my, you know, big miner, you’re, you’re not required to know your customer.
Make sure that you have certificates from everybody that connects to your node, or, you know, you’re taking transactions for money launderers. Why would you build that into the protocol? I got withdrawn, but I was the only one that critiqued it and he was pissed. opportunistic encryption.
It was, you know, they eventually did the auction, but the but the previous one, there were two bips. It was I think it was 151 152 one was that one was a prerequisite to the other, and the other was VPN. And, whitelisting your peers and the opportunities to encryption was how they were selling it. But what was being sold was a VPN and I.
Eric Voskuil 04:42:37 I was strong against both of them. Opportunistic opportunistic encryption in a, in a in a peer to peer system where all of the data is validated anyway. It’s pointless. Right? It’s public validated data. And so the argument was that, well, people, people could submit transactions to the network and other people are going to see where they originate.
I’m like, well, how does opportunistic encryption change that? Right. The threat just connects to everybody and sees where the where, the where, the where it comes from. Right. The threat can encrypt with you, you know, can connect to you. And that’s much easier than monitoring the wires.
So I, you know, I never quite got it didn’t make any sense. And this is another case of, you know, from an engineering standpoint, it might have just been a case of focusing on the details and missing the big picture, Sure. Like, you know, encryption is always good, right?
John Carvalho 04:43:38 So thoughts on the, I forgot what the whole name of it is, but the great stuff for cleanup or whatever they’re calling.
Eric Voskuil 04:43:45 Oh, yeah. Yeah. So let’s set that aside for a second. I this was one thing I had forgotten earlier. Dandelion. Right. Do you remember talking about privacy and mixing? Well, this is the other. This is.
Vlad Costea 04:43:55 Another. What? They have it on Monero, right?
Eric Voskuil 04:44:00 So dandelion was, I don’t think it got adopted. And I think for good reason. it was another one of these things where you take weak, very weak privacy and you sell it as something that people then then use to their detriment.
And that’s kind of, you know, falls into the same category, I think is a lot of the mixing. And, you know, the idea was you don’t my opinion if you if you want to post a transaction to the P2P network or to any network so it can get to a minor.
You should use the best technology available, which is an anonymized ITP Tor. Something like that. That’s what they do. Bitcoins. Not not not in competition with those.
Eric Voskuil 04:44:45 Not going to come anywhere close. Maybe they don’t work great, but they’re the best or the best available. Either that or, you know, mine it yourself. But it’s the same basic issue. So the same holds for mining and for transacting. You submit something new to the network, you are exposing yourself.
And so what you what you want to do is find a public node or server or whatever that’s willing to accept traffic and connect to it using an anonymize and post to it so nobody knows where it came from. At that point, you’re trusting the state of the art in terms of anonymizing technology, relying on something like dandelion to obscure where you’re coming from.
Or opportunistic encryption, which doesn’t hide anything. It doesn’t even hide the fact that you’re using Bitcoin. To me, it was kind of pointless. So yeah, that was my that was my take on the on the. So same thing with Bip 37, which was.
Vlad Costea 04:45:42 You mean 47? The one with stealth addresses?
Eric Voskuil 04:45:46 Yeah. 37.
Eric Voskuil 04:45:47 I think it’s 37. It’s the, it’s now largely defunct. light wallet protocol, superseded by, second memory so bad. what was it? It was,
John Carvalho 04:46:11 Your first one is bloom filtering.
Eric Voskuil 04:46:13 Right? Right. Bloom filters superseded by compact filters. I forget what it’s called. Neutrino. You know, compact filters. So we we implemented neutrino. We never implemented Bip 37. Amir was against it. I looked at it I was against it. We never implemented.
And eventually it went away. That was one of the things he fought back on. You know, with Mike Hearn and, I don’t know if Jeff was there, but, maybe, Gavin. Right. They they were pushing this stuff out, and he was like, this is, you know, this isn’t private.
This isn’t this isn’t, good design. And, you know, now it’s gone and there’s something better, which is great, but we never implemented that. We never implemented the opportunistic encryption. I don’t have any intent to implement the new version of the opportunistic encryption.
Eric Voskuil 04:46:56 I never implemented dandelion. It just thinks anything that’s a faux security privacy. Don’t bother. It’s not. It’s not worth doing. it’s counterproductive, and it’s just burning. Burning time energy. anyway, sorry. So that was that was just filling in that blank. But what was it? What was it that you had asked me?
John Carvalho 04:47:16 the the current software on the docket that seems to be reaching consensus is the great software cleanup, up or I forgot what the if that’s the right title for it.
Vlad Costea 04:47:27 Restoration.
John Carvalho 04:47:29 there you go. Great trip. Restoration, I don’t know. Or are these two different things because. Yeah. Consensus cleanup.
Eric Voskuil 04:47:36 Yeah. So, I engaged extensively on one aspect of the consensus cleanup. I’m curious about another aspect, but I just don’t want to spend the time on it. Generally. You know, I tend to let I tend to let as long as people are making what I see as rational arguments and their trade offs, I tend to not get involved. I’m more interested in a good implementation and design and truthful kind of rendering of of the trade offs than I am in, you know, what decisions actually get made in the end, tend to trust the community to make, you know, decent decisions.
Eric Voskuil 04:48:16 And they don’t always like, you know, well, there wasn’t much of a community actually with Bip 37, but but it got better, right? And, I, I made a comment about the opportunistic encryption thing because I didn’t the arguments weren’t legit. So I challenged the arguments, not the decision to put it in, but but the reasons that were being given for putting it in. And if they want to put it in afterwards because they went in afterwards, you know, without the VPN.
So that tends to be the case with most like the same thing happened with SegWit. You know, I kind of wish that I had commented on the implementation of SegWit because I really don’t like the serialization, that they did, which they probably saw as inconsequential and never even gave it a second thought because different implementation. Right? But, otherwise, you know, I don’t have any issues with it. so when it comes to the cleanup, you know, like, I looked it over, I got it, I got in, you know, it was nice of them.
Eric Voskuil 04:49:10 the new team is, I think, more, open. and I got invited to, like, the private thread on the security issues, that they were dealing with, And, you know, you require some time to really get into something like that and make informed, comments. And I, I saw what they were dealing with.
I saw the comments and went, okay, well, you know, these guys probably could do as good a job as I’m going to. I’m just gonna let it go. I got other things to work on. And then there was the. But every once in a while, there’s something that I have worked on extensively and I see it come across and I’m like, okay, well, at least I can, I can provide some value here.
And it just so happened that I had been working on, I’m working on notes right now and, and, and some of these things, some aspects get put off till later because they’re not that important. One of these aspects was validation.
Eric Voskuil 04:50:10 So, not script. Mainly it’s, Merkle tree validation and two forms of that. And I had been I had been dealing with it to make sure that we were, you know, not going to have any issues. And, I saw this, you know, 64 byte transaction thing came up. And there if you go to delving, you’ll find a pretty extensive, detailed, long thread about this.
And I to me it was like, okay, invalid, you know, so the the proposal is we just take all 64 byte transactions and we make them invalid in the future. And this was the least controversial of all the proposals. Nobody basically they said this is a, you know, kind of said this is a fait accompli.
Nobody’s everybody’s behind it. Everybody, you know, gets a it’s going to happen. And that was the one where I said, this is bullshit. It was classic. You know, like I’m on my own again. Like like not because I thought I saw any, you know, catastrophic fallout from it, but because the arguments in favor of it didn’t make any sense.
Eric Voskuil 04:51:14 And I was like, look like like, let’s, if we’re going to do something like, like so if there was no argument for it and you did it, you’ve created this weird scene in the middle of, like, all the possible transactions from you know what, I don’t know how the lowest possible is, but 64 is not the lowest. So you, you know, from, from end to, to for Meg or whatever.
There’s this one, you know, this is one little slice that that doesn’t work and who knows what that’s going to affect in the future. So I figure, you know, if you’re going to do it, at least do it knowing, you know that you’re doing it for no reason. Right?
And it was like initially it was like, you know, I was crazy. I was the crazy one. I’m like, you know, like, everybody agrees on this. You know, Maxwell and you know Peter and everybody. Peter Todd, I’m sure had a look at it and I’m sure Peter Willey, everybody.
Eric Voskuil 04:52:06 Right. Nobody noticed. So again, this is one of these things where, where if you if you’re part of the monoculture you tend one not to be as critical and to not to have seen things from a different perspective. I was looking at things from a very different perspective than they were, because they look at their own implementation. These are protocol questions.
They don’t have anything to do with the implementation unless unless implementation issues become necessary. So there were like four arguments for doing this. And not one of them was valid that that were presented. And in the end I think they’re going to do it anyway. After having acknowledged that none of those arguments are valid, but having found another argument that’s weak enough that they acknowledge this.
This would never get done unless it was in a roll up. Right? So that’s going to probably happen anyway. And the the remain the sole remaining argument is that it’s slightly cheaper in terms of bandwidth and maybe computation slightly for a SPV wallet to validate essentially validate the portion of the chain that it validates.
Eric Voskuil 04:53:15 If they invalidate 64 byte transactions. That’s it. In other words, to be specific, the SPV wallet no longer has to download the Coinbase transaction.
John Carvalho 04:53:26 I can report that people making SPV wallets have no issues with performance. As it stands.
Eric Voskuil 04:53:32 Right now, I mean, I did the math and I actually went through the entire chain using my node, and I measured the size of all the Coinbase transactions and averaged it out. And it came out to I think it was 100 bytes. So for an average of savings of 100 bytes, which is a nanosecond of bandwidth, right? Where you just you’re not even saving it.
You just read it, right? what? You you you I guess you I guess you, have to hash it. You probably have to hash it. But, the idea is that the malleability question, gets eliminated if your, gets obviated, if you, if you ensure that the Coinbase transaction starts with a null point, which means all the hash is all zeros and the and the index is all ones bits.
Eric Voskuil 04:54:19 Right. And and that that’s an oh point. It has to be a null point to be valid. Right. So here’s the valid, Coinbase hash. It’s valid. And we, we take the hash of that and we incorporate it into the Merkle tree. hash validation. so if you don’t do that, somebody could do some, like, you know, two to the 24th hashing level difficulty stuff.
Not easy, but doable, right? Feasible. And produce a fake, version of the block for you. Okay. So we’re going to we’re going to impose a new rule that says you have to you have to you have to measure the size of every transaction, which you have to do anyway in order to do the block size limit.
But and, and throw out any transaction that’s 64 bytes after a certain point. Presumably you have to continue to do this prior to prior blocks, but, so that those SPV wallets don’t have to do that one step. And then of course, the servers don’t have to provide the Coinbase transaction.
Eric Voskuil 04:55:22 And of course, the Coinbase transaction could be big in some cases, but on the average it’s just it’s it’s a it’s absurdly small. So you know, the way I look at that is they they didn’t want to give it up because they had already decided they were going to do it. And so they, you know, they this.
John Carvalho 04:55:38 Since when have any protocol developers cared about apps like they, they never, ever do nothing to do with.
Eric Voskuil 04:55:46 Security, had nothing to do with node security, had nothing to do with consensus, but had nothing to do with anything but implementation. And so and there’s another aspect of this too, right? So I can’t probably can’t remember all like the four. So issues that were raised as reasons to do this. But it was almost like, you know, if you throw enough reasons at something, it’s like, okay, we’re just going to do it, right. But if you but you take a look at every single one of them carefully and you go, well, this is not, you know, and you find out that all of them are not issues.
Eric Voskuil 04:56:15 And then you come on and then you present another one which is like, oh, well, yeah. But there’s this thing on the wallet that has nothing to do with the node that we could make life easier for them. Then you do it anyway. It tells me, like, you know, you just don’t want to. You just don’t admit that you fucked it up.
So, And if they do it in the end, you know, is it going to cause any real. You know, no, it’s not a big deal, but but so one of the arguments was, if you and this was a bug in Bitcoin Core that, you know, because of the way they implemented it had nothing to do with consensus, but they, they would take a hash of a block.
So a block comes, they read a block over the network and they, they hash the header which produces that, you know, the headers, the header hash, which is the hash of the block. You’re not hashing the transactions, you’re only hashing the head.
Eric Voskuil 04:56:58 The transactions are, are, committed to the block through the Merkle tree. And the Merkle root is stored in the block. And then you ask that. So the hash of the block is just the hash of the first. I don’t know what it is.
Headers like 80 bytes. and then you find out, you know, you’re validating the block, and then you find out somewhere along the line that this block is invalid. And so you store the hash of the invalid block. Another block comes along has the same hash. It turns out it’s valid, but you’re rejecting it because you stored that hash as always invalid.
And the reason this happened, this actually did happen, right, was because, the valid block came second, the invalid block came first, but was actually just evaluated. Merkle. So, so the so it produced the same, Merkle root, but it wasn’t the same Merkle tree. And, so one of one of my comments was, why are you storing hashes of invalid blocks? That doesn’t make any sense.
Eric Voskuil 04:58:01 Okay. Now you probably scratch your head and go, well, make sense to me? I mean, yeah, right, right. But, but but they just really never thought about it.
John Carvalho 04:58:08 What it’s worth, I asked that question when you said it in my head.
Eric Voskuil 04:58:11 It’s it’s it’s intuitive. Right. But that’s not necessarily good. So. So you’re like so do you really do you remember. but I don’t know. You guys might know, about six months or so ago, there was a documentation of a core bug. They’ve been they’ve been some of them have been retroactive, but I think this is actually a new one where they. There was, a peer could crash a core node by. doing by overflowing the, The banned list. Do you remember that?
John Carvalho 04:58:48 I don’t remember the. I remember there’ve been a couple of bugs in the past year, and.
Eric Voskuil 04:58:52 This was this was basically by. In other words, there was no there was no guard on the on the size of the list.
Eric Voskuil 04:58:57 So you just overflow the memory and and so in other words, by doing enough, by connecting enough times under different IP addresses that they, you know, they thought they were banning. So they’re banning IP addresses or something. Right. And you do something you get banned. You do something else.
You get banned. Well, the the assumption in the implementation is that you always show up at the same IP address. But clearly they know you can always you know, you can mask your IP address. So you’re connecting under a different identity repeatedly and forever. Right. Until the ban list gets so big that you crash.
I think this was recently a bug that was actually bringing down machines, and they fixed it and then announced it. Right. And I’m like, well, why would you why would you store a banned list? We explicitly don’t do these things because of these problems, right? Because eventually your list gets full, you’re starting to run out of memory and you have to make a choice.
Eric Voskuil 04:59:44 What do you do? You start throwing out data from the lists. All you can do, right? There’s no other option. So. So eventually you have to decide that it’s arbitrary. You’re going to store some, you’re going to throw out others. Eventually. They’re just going to keep doing what they’re doing anyway.
And you just have this, you know, rotating big chunk of memory that’s just wasted. So we don’t do it. We don’t, you know, it’s not part of our dough strategy to store bad actors. We drop them and we and we reconnect other ones quickly and we move on. So what I’m describing is an analogy to the stored hash.
Why would you store the hash of an invalid block even if you even if it wasn’t possible to. Elliott. Right. So their problem was this validation caused them to not be able to store the hash. Right. We want to be able to store the hash. So we know that that’s an invalid block when we hash the first 80 bytes.
Eric Voskuil 05:00:35 And and so we’re going to invalidate transactions because that makes it possible. And I and I was successful in showing them that this is not a rational strategy. And you shouldn’t do this. And this should not be a reason for justifying this, this software.
And the reason is because, so what they were, what they ended up having to do was store the hash as long as the as long as they could show the Merkle tree wasn’t married. Right. If I was married, they just wouldn’t store the hash. And then they would have the same problem. So they weren’t really able to effectively close that hole.
And I showed them that the hole is always wide open. Right? Like so first of all, when you get a bunch of data over the wire, the first 80 bytes might be a header, right? It’s just random. It could be random data. Okay. It looks like a header. Is this right length? The rest of it could be absolute garbage. Just nonsense. It could be a terabyte of data.
Eric Voskuil 05:01:21 It could be anything, right? It could be some photos. Who knows. And so you get this header in and it’s a you hash it and then you look at the, you look at the rest of the block. It comes over as a block message as a message identifier. And you say oh it’s not valid.
So you take that hash and you put it in the hash list, and then another one comes and another one, another one. There’s no limit to the number of those you can produce to send different photos with everybody. Right. So they all have the same hash. Well okay. So you’re, you’re, you’re, you’re seeing the same hash over and over again okay.
Now start grinding the nonce. Right. I mean doesn’t mean grinding just all the knots. Now you can send as many as you want. There’s no limit to the number of invalid blocks that you can send to a pier. So they will just. It’s just a DOS vector waiting to happen. And I bet you if I haven’t gone looked.
Eric Voskuil 05:02:09 But I bet you after this conversation, somebody went back and looked at the code and probably said, oh, we got a guard against this DOS vector because they had just had the same failure with their banned list. So I was like, okay, that doesn’t make sense.
And what you really want to do is you want to reject the block as fast as you can once you know it’s invalid, and then just drop the pier, they’re sending you invalid boxes. Drop them. Don’t ban them and don’t store the hash. Just drop them. So there’s no benefit. Now to the pier. You know, doing that to you.
Except he ties up a little bit, your little bit of your, you know, the point of your ports for a fraction of a second now. So it’s better. I think performance wise you’ll actually be much better not doing all that other stuff, because you have to search the banned list for every block that comes over. Right? That’s hugely expensive. It’s a HashMap search.
Eric Voskuil 05:02:55 You don’t want to do that. Please look at.
John Carvalho 05:02:57 When you drop a bad pair. What stops them from just retrying?
Eric Voskuil 05:03:01 Nothing and nothing can stop them from retrying. That’s my point.
John Carvalho 05:03:05 But so is your point that that Bitcoin is easy to Diaz.
Eric Voskuil 05:03:09 No, it doesn’t make you that doesn’t make it easy to do actually. Just because somebody can connect to you, you just you just identify it and drop them quickly. If they’re following the protocol, you keep them. If they’re breaking the protocol, you drop them.
That’s it. And you know, if you don’t want anybody connecting inbound, you just don’t have any inbound ports. if you’re if if you if you have a real DOS problem, you’re going to need other infrastructure to solve for that. Right?
You’re going to need you’re going to need a, a front end on your server. Right. So, and none of these things that they suggested would actually solve the problems that they suggested they solve, which is why they got they actually DDoS themselves by enabling these, these vectors of overflows.
Eric Voskuil 05:03:49 So then you can get to the point where, okay, but we want to be able to identify the fact that it’s an invalid block early without having to validate the whole block every time it comes in. I’m like, well, that’s reasonable. So what does it actually take? What does it actually take to produce a hash of, you know, that that that produces the same header hash invalidated.
Merkle tree. what does it cost to produce that? Well, it cost nothing. so if you in other words, you can you, you can put, you can add two transactions that are identical to the same block under certain circumstances, under certain depths of the Merkle tree. you could take one transactions already in the block and put two of them in there.
Right. And that can produce the same, because if you have an odd number of, nodes in the Merkle tree, you just repeat the last one twice. And that’s where the problem comes from, because you put two transactions. And this is this, this is one of the two types of melody, but two of the same transactions in the block.
Eric Voskuil 05:04:54 You read one, you read the other hash. It produces the same hash as if you only had one. But now you got a duplicate transaction in the block which makes the block invalid. so, in order to in order to know that, you have to, this this is not this.
The six the 64 bit issue doesn’t resolve this one. Right. So this issue is always there whether or not you have 64 byte transactions or not, you can you can have a duplicate hash in the, in the in the block. So you have to mitigate against that. And if it does happen you mean it means you have a merkle sized block.
Now you can either throw out one of the transactions and reconstruct the original block and proceed on. Or you could just drop the peer, which is what we do, and wait till you get a real block. But you obviously don’t want to store the hash of that as invalid because you don’t know if it’s invalid because it was a it was a merkel tree.
Eric Voskuil 05:05:53 So that problem doesn’t get solved by the 64 bit thing. And guess what that costs to produce nothing. There’s no there’s no mining. There’s nothing.
And you can produce an infinite number of those. Right. So so it doesn’t solve the core problem. That was another example, another one of the examples used.
And then there’s the The fact that with a 64 byte, the reason a 64 byte transaction is an issue because you can take one transaction that actually the serialization of it is two nodes in the Merkle tree. And you basically fool the, the, the Merkle tree computation, into believing there were two transactions there. hard to explain, and I can’t exactly remember the details, but that’s basically the idea.
Speaker 6 05:06:46 And.
Eric Voskuil 05:06:47 In order to do this, you have to actually mine. You have to. You have to mine a like a coinbase and to mine a valid Coinbase for this. That fits into the fits into the Merkle tree and makes it all work requires like two to the 24th instead of, you know, two to the 256 or something.
Eric Voskuil 05:07:06 So it’s it’s it’s a lot but not overcome. You know, it’s viable. And so in order to prevent this 64 byte transaction issue from being an issue, one of the things you can do is you can just check the Coinbase to see if it has a null point, which means the first input of the Coinbase transaction has an index of all ones and A and a hash of all zeros.
I don’t know why Satoshi decided to just send all this garbage over the wire, but you know, the first input of every transaction has to be you predictable garbage. Why not just not send it, not even have a transaction for the coin? I don’t know, it was just an easier code to write.
But we have this and so and so the the first thing in the block body that you encounter is the first bit of the point of that index of that value. Right. You, you encounter the I think it’s the index version and the hash might be, might be other way. So in other words, the very first thing you’re reading in the block in this potentially bad block is the Coinbase point.
Eric Voskuil 05:08:10 The one thing that you need in order to know whether this could have been a block, if that’s a null point, it’s computationally infeasible for it to have been 64 byte validated. And I showed them this.
It took me a long time. It took me multiple iterations to get to the point where, like, look, if you want to be able to take the block and invalidate it quickly, disabling 64 byte transactions does not do that, because in order to know the size of any transaction in the block, you have to deserialize the transaction, which means All the way through all the inputs, all the outputs, all the scripts, everything.
And then you have to do it to the next transaction and the next. You have to deserialize every single transaction in the block, one of the most expensive operations during download. Right? And then that’s when you know whether there was any 64 byte transactions. But what my implementation does, what we do today is, is we look at the first 36 bytes of the block.
Eric Voskuil 05:09:07 And if that’s a null point, we’re good. It’s not validated. if it’s not, it’s invalid anyway, right. It’s got to be a null pointer. So I show.
John Carvalho 05:09:17 Them this what they’re going to do instead.
Eric Voskuil 05:09:19 Or so I don’t know. I think they’ll keep doing things the way they what they actually do is like a double validation. They run they don’t isolate this check. They do block check twice so that they know they actually took. So somebody saw that they were calling block check, which is the the low the lower cost validation.
It’s the static validation right of the block. They were calling block check once, like right after download or something, and then later before storing. They were calling it again. Now some wizard noticed that there were this was redundant and took one of them out. Turns out that that second one was unknowingly guarding against this issue. So they had this flaw.
They had a, you know, a fork, and they fixed it. So, That’s, I think what they’re doing, the way they fixed it, was to just reinstitute the redundant check so they could they could certainly make that more optimal by just writing a simple check that says, you know, take the second one out and write a simple check that that says this starts with a null point.
Eric Voskuil 05:10:20 The reason they don’t do that is because every time they change something that’s material, there’s risk. And that was what that’s what happened. They changed this simple little thing, like a redundant check that shouldn’t have been there. And something unexpected happened. And, you know, the same thing, the same thing happened with the, inflation stuff. It was like a simple little thing. It changed it because it’s very hard to see.
John Carvalho 05:10:39 These small little things are so hard to keep track of the reactions. Like, how could we ever pretend that a complex soft walk is safe?
Speaker 6 05:10:49 Like, how can we complain?
Eric Voskuil 05:10:50 How can we contend that any implementation is safe? Right? There’s all kinds of changes that happen in the code between iterations. And, you know, it’s not like there’s one implementation of Bitcoin. D there are hundreds of implementations of Bitcoin D out there and you know, dozens, you know, at least that are released. So and they fork each other every once in a while. And it’s it’s to my mind much more likely that you’re going to fork because of the, because the logic is opaque.
Eric Voskuil 05:11:15 Right. It’s just that one just works because of luck or you know, like why does these things don’t look like they make sense? They’re hard to understand what’s going on. I mean, you try to like you try to get your head around things like,
John Carvalho 05:11:31 Governance.
Eric Voskuil 05:11:33 No. Just simple. Basic, you know, day one, stuff like opcode separator. Like take a look at the take a look at find and delete. If you if you had no idea what that was supposed to be doing, you would have no idea what it was doing.
Like what? What is this? And, you know, I don’t know how many times I rewrote, find and delete till I really figured out what it was doing. And then I said, this is fucking stupid.
And I took it out and I rearranged all the code, and I was like, oh, this is what he’s this is what he’s trying to do. This is the premature optimization of doing it this way, right? It’s just the way the code is written and it’s super fragile and it’s you really have to understand it to fix it.
Eric Voskuil 05:12:14 And that’s, you know, it’s risky if you don’t really understand it. And people come in and they make a little change here, a little change their boob, it just blows up. I did I did this when I started working on the Bitcoin, I broke I broke stuff and I’m like, what’s that?
So Amir, Amir, Amir, he rejected one of my pull requests because, I had I had fixed the, the error handling in some consensus code, and it was stupid. The code was stupid, but it was necessary because. Because Satoshi’s implementation was stupid. And, and, I was like, okay, that, you know, that that needs a lot of like.
Clearly defined code that that makes it clear what’s happening there, because people are going to keep removing this and keep changing this right, forever because it’s dumb. And there’s a there’s a handful of things in there that are like that, but most of it is just the way it’s coded. It’s dumb. The actual design intent is fine.
Eric Voskuil 05:13:14 there are there are some like here’s another example. the order of transactions in a block in the Merkle tree matters. Not for any important reason. Not for any reason, really. except, Satoshi She just took a shortcut. It wasn’t even a shortcut. It’s like.
So if you’re if you’re if you’re if you’re going through a trend, if you’re going through a block and you’re looking at the transactions and you’re and you’re accumulating the unspent outputs, which we don’t do, okay. And you’re, you’re, you’re looking at inputs and outputs, and what and all you care about is the net unspent outputs, right. What you’re doing is you’re is you’re is you’re matching inputs and outputs.
You’re putting them on a cue and you’re popping them off and you’re just doing this on one block, the new block that came in. Well, if you do it such that you read a transaction, you push the outputs and you pop the inputs, and then you do the next one and the next one. What’s going to happen is inputs that spend outputs in that block.
Eric Voskuil 05:14:17 If they don’t spend ones that occurred prior, they don’t get seen right. The the spend of the input to the output would not get seen. Because you’re, you’re you’re using a stack, right? You’re pushing outputs, popping outputs, pushing outputs. And they have to come in order. So it’s not a total ordering, it’s a partial ordering.
Anything that’s spent within the block has to be spent prior to the input that spends. It has to it has to be occur in the block prior to the input spends it. So initially I implemented a in C plus plus a standard for each loop, which is parallelizable. In other words, if the compiler wants to, it can it can it can parallelize the implementation.
And I hadn’t actually parallelized it yet. I just I mean, you know, it makes sense to write things that way. Right? And I parallelized the, iteration over the inputs and outputs, which wasn’t wasn’t doing it. We don’t we weren’t, we weren’t. Yeah. I think it was like, look, maybe looking for double spins within the block or something like that.
Eric Voskuil 05:15:16 there’s a reason you do this aside from just accumulating the inputs and outputs, and I didn’t I didn’t require any order. What I did was I read all the transactions and pushed all the outputs on, on a, on a hash map and then, And guarding against duplicates which guards basically guards against having any duplicate transactions at the same time, and then took all the inputs and then assign, you know, a correlated the inputs to the outputs.
And that’s a consensus break because it doesn’t impose that order, that unnecessary order, but it’s an order. And it was it was Dave Hildebrand or somebody who’s like, he had encountered this problem once before when a miner did something similar and he pointed it out. He’s like, hey, that’s a, you know, but I had this very clear list of consensus rules. We’re marching down through them and we’re looking at the code together. And he’s like, oh, you know, like there. So it was very obvious and easy to see. every consensus rule has a name.
Eric Voskuil 05:16:07 It has a little piece of code and it does its, you know, does its thing as it’s marching through the block. but those things, those things can, can happen when there was no. So what I ended up doing was I wrote a function that all it does is check the block to make sure that any spend is in the block. Is spending a transaction prior to it in the block.
It’s all it’s it’s not like because that was a behavior that was just a side effect of how he wrote the code. He wrote this loop to do one thing, and it imposed this order unintentionally. No reason for it. Right.
And so I wrote a rule that imposed that with a name on it that says, no, what is it called? no. no. Forward references. So, so if there’s a forward reference of a, if an input spends an output that’s forward of it in the block, it’s a consensus break. There was nothing like that in court. There’s nothing that says no forward.
Eric Voskuil 05:17:00 It’s just hidden in the behavior of the code. Right. This is a requirement. So by pulling those things out, documenting them in the code, not in comments. Right. This is in the code. It’s there’s a function here that says this has to pass. This has to pass. And all these things are just a nice long list. Not even a long list.
Not very long. They all have to pass or it’s invalid. And then you look at those and you go, what? Which of these actually makes sense? Like they’re here for an actual economic Make security, whatever reason, and several of them are there for no reason, right? One there must be one Coinbase. No reason. There must be only one input in the Coinbase.
No reason the input must be null in the Coinbase. There’s no reason to have any inputs in the Coinbase there. it must be first single single input and have no point. None of those are necessary. You could just accumulate all the all the, all the transactions that don’t have an input have no input on some of them, have inputs on other ones, accumulate all their outputs.
Eric Voskuil 05:17:54 And that’s the total spend and accumulate all the, all the others. And that’s that, you know, all the I’m sorry. That’s the total claim on the, on the block. Right. All the outputs of the, of the coin bases, the things that have no points. So it’s much more general.
You have a lot fewer rules. Right. Simpler to implement. But no, it’s not like that. So we have all these rules that really don’t serve any important purpose. so I don’t know. I’m just I’m just rambling on on different stupid aspects of of implementation, but implementation drives a lot of the thinking.
Around these things, and all of the reasons that they had given for banning the 64 byte transactions had to do with making their own implementation easier based on the way they saw it. Right. When I pointed out these things, they were forced to accept that even if it might make their own implementation easier, they make any sense to impose these rules. So it comes down to yes, I said, I said, yeah, yep.
Eric Voskuil 05:18:53 I understand that it would save like about 100 bytes on average download for a CSP wallet. If you if you invalidate 64 byte transactions, of course, the the CPU cost of invalidating all the 64 byte transactions in the block is pretty small. It’s pretty trivial. You know, maybe, maybe, maybe 30s on the whole sink run. but I think it’s probably still a wash. It’s really not worth it.
John Carvalho 05:19:16 And then why is Bitcoin core node optimizing for SPV?
Eric Voskuil 05:19:19 I just I don’t know. It was like it was a reason to save this, save the sophomore feature. But I think it was acknowledged in the summary recently that that this one before it was like so important they had to do it and everybody agreed. Now it’s like, you know, they’re no longer listing any of those reasons. And it was it was stated again, I give these guys more credit than the guys before they was stated that this probably wouldn’t rise to the level of activation if it was a standalone soft work, right? Nobody, nobody would support soft working Bitcoin to do this.
Eric Voskuil 05:19:52 So it’s only happening because it rolls up into other things. And so I, you know, the natural reaction is to go look at the other things and go do these make sense to.
John Carvalho 05:19:59 Yeah. Because this makes me think okay. Like if if the attitude is, hey, we’re all looking at this as an inevitable soft fork, let’s shove in all the pork we can. Yeah, yeah.
Eric Voskuil 05:20:10 So there’s a I mean there’s I think there are reasons to, to kind of roll up to cruft and clean it up. But you got to be careful, you know, even doing so.
Like. Like there’s a time warp bug. And from my recollection in our code. So. So we have like coin support prior to like mweb. Right. Goes way back like seven years or something.
And in the code there’s like two changes that I can there’s only I think it’s only two. So and Litecoin is so similar to Bitcoin that if you if you generalize the numeric parameters like the things that control for block period things like that, if you if you move those into config, like there’s like a handful that we moved into config, which we had already done for being able to do testnet testnet three anyway.
Eric Voskuil 05:21:02 And not, not yet, but so, so we’ve already kind of done that anyway. But we had to write two. There were two code changes. One was script versus Sha, right for mining. So we had the script library. Just one line of code. You know, if this fork is active, we’re forking in script versus whatever.
And if that code is active in the config in the config file, then that gets run. And the other one was the time warp. But so so so Litecoin implemented a time warp bug patch. And we have a fork for it in our code which switches on that change to the code if that’s enabled. So if you want to run Litecoin you change a couple of numbers in our config.
And you activate those two paths those two forks. and like to go to testnet, you activate the easy blocks fork, which you know, changes the block difficulty. So it’s easy to produce blocks and some numbers and that’s it. It’s really simple. So you can actually run the same binary without even recompiling against all these, you know, different variants.
Eric Voskuil 05:22:04 so that tells me that there, you know, somebody had already thought through it and implemented and deployed a time warp bug fix, right? And I never really spent any time thinking through the complexities of the time warp bug. But I was kind of wondering, like, why aren’t we doing it the way they did it, right?
So I don’t have to implement another fork in my code, but I don’t really know. So that was that was one that, you know, there’s a legitimate issue there. it’s kind of obscure, esoteric, but real. And, that one probably should get fixed at some point. so there’s another one that has to do with making very expensive to, to validate transactions.
I don’t know if you guys remember back way back there was a quadratic, op roll bug. It deidentified. Right. So somebody identified that, you could, you could force like, you know, a thousand op roll operations in one transaction. 1 in 1 script. And it’s not inherently it’s not a bug.
Eric Voskuil 05:23:10 Right. It’s the way it was designed. It works. It works. But in Bitcoin Core, the stack which is its Bitcoin script is a stack language, which means you push, you have opcodes which you’re just running through you. There’s no looping. Right. There’s, there’s if there’s conditions but there’s no looping.
So you just run through your list of opcodes and you execute them. And the state that’s maintained between those opcodes is the stack. Right. You got a primary and alt stack. And you run through the script and you’re you’re pushing and popping stuff off the stack. Now in theory, stack language is pure stack.
You push and you pop and that’s it. You can’t, like, read down, you know, way down to the bottom in the middle and stuff like that. But but, the way Bitcoin Core is implemented, it does a lot of cheating on the stack. It it it’ll it’ll, you know, if it needs to like inspect the second item on the stack.
Eric Voskuil 05:24:03 It doesn’t pop the first, pop the second, inspect it and then push them both back. It’s an optimization kind of a hack. But so I when I originally wrote the rewrote the script implementation in in Bitcoin, I implemented as a pure stack because you had to. You only got the push and pop. You couldn’t see what was down in there.
And then and then did implementation optimizations on top of that. And I did that so that we could one ensure it was a pure stack implementation, and two, that we could, provide a variant of it without, you know, whatever these fairly minor optimizations are or even determine they weren’t necessary and just run a real true stack so that people looking at it from an academic perspective could better understand how it works.
It makes it much easier to understand the opcodes anyway. So OP role takes the stack and it like pulls an item out of the stack and pushes it, you know, moves it to the top, which shifts all the other items down in the stack or something close to that.
Eric Voskuil 05:24:57 Right. And because the stack can gain a certain size, which you can kind of impose through your hacky script, right? You create a big stack and then you start moving as much as you possibly can and all those shifts we require, essentially rewrites of the stack, and that can get very expensive over time.
The reason, the reason it’s expensive is because of the use of a standard vector to implement the stack, which is contiguous memory. When you move something out of the middle and you have to move, you have to move everything up. You can’t just delete something, right? It’s contiguous memory.
So, you know, if you have one, two, three and you pull out two, three, four, five and everything after, it has to be shifted up in the memory. That’s hugely expensive. Although if you implemented it using a list which is a linked list, it’s trivial, right? You just pull out the element of the list and readjust the link. Standard list delete.
Eric Voskuil 05:25:49 So why don’t you do that? Well, because lists have pointers and therefore more allocation, more independent allocations. it’s it’s slower than a vector if you can get away with a vector. So, parole is quadratic, which means it can be, it can be very expensive. and it is very expensive.
I think it’s there’s nothing stopping this presently. So I looked at it. Everybody looked at it and said, there’s really no way to solve this. We just, you know, and I went, wait a minute, what are you talking about? If you if you implement the stack as a list, it’s salt. It’s no problem.
And so what I did was when we implemented the, when we implemented, the did this reimplementation of script work a couple of years ago, stack got templated so that it takes as a template parameter the container that it uses to implement the, the the stack. So the entire script processor is templated on a couple of parameters, and one of them is the, actually maybe only the stack.
Eric Voskuil 05:26:45 So you can templates it with a stack, sorry, with a vector. Or you can templates it with a standard list. They have basically the same API signature, so they’re interchangeable. You just compile with one or compile with the other. So what do we do. We compile both right.
I don’t know it’s like an extra 500 K. And by the way our whole implementation is much smaller than Bitcoin Core. Four. So single file. Binary. Right. So we compile both and we take a look at the script. And the script has an op role in the, in the, in the opcodes which we determine during parsing. we call it a roller script.
We just execute on the other, on the other, script on the other, processing engine. So it’s no problem. Right. Would it would be if we did it for, for all script. It would be we would take a performance hit. If we do it for just op roles, we’re probably taking a performance hit on most of them because most of them probably are not malicious.
Eric Voskuil 05:27:37 Right. But that one that comes along and takes like ten minutes to process, we’re not going to get hit by that, right. We’re just going to blow right through it. And we you know, you know, our validation is super fast. So so these again a lot of the decision making around even consensus stuff comes back to your implementation. We looked at it and said that’s a perfectly legitimate opcode. There’s nothing wrong with it. I don’t want to see somebody banning it down the road. So I’m going to implement it properly. So it’s performant. In both scenarios.
John Carvalho 05:28:06 Is this the same type of transaction, or are there more when people talk about, like being worried of direct submission to miners because they can include non-standard transactions. So miners need to know which types of non-standard transactions.
Eric Voskuil 05:28:20 A non-standard transaction. Yeah, it’s definitely a non-standard transaction. I don’t think our role is standard is standard standard opcode. but you know, people can mine their own, so there’s no stopping that stuff. It’s silly.
Eric Voskuil 05:28:33 policy is done. We don’t we don’t implement policy.
John Carvalho 05:28:36 I remember when, Mary, I think it was marathon Mining released their direct submission service.
Eric Voskuil 05:28:42 Which had been predicted for a long time. Right.
John Carvalho 05:28:45 And, I think it was the guys from Spyro, Matt and, and Steve Lee were like super scared. And I, I learned about this later and they ended up contacting Mara saying, hey, are you guys watching out for non-standard transactions? And they weren’t. And so it was like, yeah, why.
Eric Voskuil 05:29:01 Would you Why would you? It’s dumb. It’s just dumb, you know? Like.
John Carvalho 05:29:06 Well, because they could cause nodes to freeze up. Taking too long.
Eric Voskuil 05:29:09 Can’t stop them. So one miner watching out for them. Well, you don’t know what any other minor is doing. Doesn’t help. Right. This is what I mean by obscurity. Security, right. It’s like. It’s like dandelion. It doesn’t help to pretend there isn’t a problem. There’s a problem. The answer to this particular problem was to templates for your script processor, which would be a horrendously difficult thing to do in Bitcoin Core.
Eric Voskuil 05:29:33 Right. But proper implementation. Your abstract implementation is trivial. Inconsequential. So. But the. I mean, it’s a good, good point, but I point out we don’t. We only implement policy for DDoS purposes, and that’s just fee rate. So that we don’t have if we take free transactions that wouldn’t cost anything.
If they got mine, then we would be easily over overflowed in terms of disk or memory. So, that’s what we do. And that’s, you know, that’s always been my policy for ten years. It’s like like, why would we implement policies? Don’t make any sense. They’re trying to they’re trying to stop things from happening that they cannot stop.
And and all they’re doing is, is creating a bigger and bigger, reward for the person who decides to not do what they want them to do. it’s better to let the little the little problems creep along and people start fixing them, right, like I did. So there’s this other problem in this consensus cleanup, which is it has to do with, It’s similar to the opera problem.
Eric Voskuil 05:30:33 It’s not it’s definitely not the same problem. It’s nothing to do with the, you know, the stack or anything, but there’s this there are expensive transactions that hadn’t really been anticipated or talked about or something like that can get really expensive, and it wasn’t clear how to deal with them. And so there have been a number of proposals.
I’ve, you know, I’ve kind of read through it a couple times and I. Yeah. There’s no easy answers in these particular cases, but they probably should be dealt with. And this is one of those cases where I go, well, I’ll defer to these guys who are spending, you know, all their waking hours working on this question. They’re smart people.
And I’m, you know, I don’t see anything wrong with their arguments. I’m just going to I’m just going to, you know, be an observer in this in this case, so I this is the way it works. Like there’s certain things I know, like, I know a lot I know a lot about this opera question because I did the work, I coded the implementation.
Eric Voskuil 05:31:26 I know about, you know, this, 64 byte issue because I’ve just done the work. And that’s what happens if you have a lot of different people work on a lot of different things, different implementations, they’ll have different areas of expertise. And when they come together, they can provide better input. When you have this monoculture, you just get yeah, yeah it looks good. Right. And let’s let’s do that. I mean.
John Carvalho 05:31:47 Yeah, the monoculture you’re separated from because your behavior might cause your PRS not to be reviewed or merged in core. But because you don’t submit PRS to core, you don’t have to worry about that.
Eric Voskuil 05:32:01 Right, right. And so if somebody comes along and says, well, we want to we want to ban up more than three roles or whatever, I’m going to like, why would you do that? Right. Like, why would you want a fork to do this? Oh, because our implementation is super slow and happens like, okay, well, we just ran through all these test transactions.
Eric Voskuil 05:32:16 It’s super fast. What’s your problem? Right. That’s kind of how I look at it. It’s better to have competing implementations out there that can show you other ways to do things. But part of that is that, you know, we’re showing people how to do certain things differently, and it’s very disruptive. Core can’t adopt some of the things I’m talking about, not now without a major rework.
So that’s now becomes defensive. Right. We’re going to protect ourselves by getting better performance, by maybe changing consensus rules or changing a network protocol. So it works in our favor where it hurts us. Right? Every every consensus change that’s unnecessary Is is a is it is difficulty for us because we maintain all of the history of all of the consensus changes.
They just throw out the old code. Right. It’s done. Not to worry about that anymore. Every bit that like obsolete. The other bits. We maintain them both. We. You take out this one. This one’s still active. so all the shit they did on Bip 30, where, you know, it’s like the.
Eric Voskuil 05:33:13 That’s when the database forked. And the first thing they did was it was kind of a 13 block, you know, chain split. And it was like, panic. We’re going to contact the miners, stop mining now. We’re going to we’re basically going to fork out all, all blocks that have more than I, I don’t know, 5000 hashes or something.
And, so it was the quantity of hashes they determined, which produced a certain number of database locks, which caused the failure, silently silent failure to basically invalidate the block, and so restricted the number of hashes that could be in a block that was a soft fork, later made some changes. Whatever it decided, you know, we didn’t want to have this restriction.
So fixed the problem and then took out the restriction. So that was a hard fork right. Because now re enabling what were previously considered invalid blocks. So we’ve got three three forks in there for that right. We got like well there’s the initial fork which nobody knew about, you know, which we didn’t have, by the way.
Eric Voskuil 05:34:15 because they were based on level DB and we had used and dropped level DB long, long before. And so we didn’t we didn’t have any restrictions on how many hashes you could validate. So they would have forked off from us. And here’s the interesting question. When they forked off from us at that point, who’s who’s running Bitcoin. Who’s running BTC. We are because that fork that forked off from where we are that got invalidated, I think that was the one that got, you know, those those transactions went away and we went back to the other one and then imposed this other restriction.
John Carvalho 05:34:47 So this was the Berkeley DB change in like 2014 or so is already referring to.
Eric Voskuil 05:34:53 It was. Was it Berkeley DB to level DB or I think that’s what it was right. So yeah, like 2013 I don’t know. Mayor started in 2011. This was early for me, but I’ve gone back historically and looked at the looked at the bips and the code changes. And I’ve written code in there to impose the block hash.
Eric Voskuil 05:35:15 It’s not the block. It’s like number of hashes impose the hash restriction so that we can produce the same behavior. Right. So you could take out one one the hard fork. Still have the soft pork. You can take out the soft fork and still have the no fork. Right.
But then the question is if you take both those out, what’s the intended behavior. Right. What was the what was actually Bitcoin before that. Was it. so the hash restriction that the database was imposing wasn’t the number that they put in it was higher. I don’t even know if anybody actually knew what specifically it was they put in. I think it was 5000 restriction.
So before that there was some arbitrary restriction and it might have even it would have varied version to version, right. So the question is what was the consensus. Nobody even knew what the consensus was. The code is not the consensus. Right. What became the consensus was the rational behavior which we had, which was no restrictions on the number of hashes in your blocks.
Eric Voskuil 05:36:09 That was the consensus. This is why it always burns me when people say the codes, the consensus. Time and time again, the code is not the consensus, right? The inflation software that, you know.
John Carvalho 05:36:19 Got what it’s worth. I always say consensus transcends code.
Eric Voskuil 05:36:23 But I think the consensus is the consensus. Right. And the code implements it. And there may be cases where the code does things that are weird, but people know about it. It’s not a mystery. But when there’s something in the code that nobody knows about and then it does something that violates the human consensus, it gets fixed, it gets changed. It’s not the code.
John Carvalho 05:36:43 This is why I don’t worry as much about like, mining attacks and people are speculating about mining taxes because not only is there not a lot of incentive. Not only are they difficult, but consensus will transcend whatever glass hammer they chose. They choose to break on us. And so, like they can’t reveal, they can’t take advantage of their attack without revealing their attack.
John Carvalho 05:37:04 And once they do, consensus will enforce whether it be through code or through new code.
Eric Voskuil 05:37:12 Yeah. I think consensus eventually eventually wins. It’s like you know the.
John Carvalho 05:37:19 It doesn’t mean they won’t be like price damage temporarily or such. But you know, just you know from reasoning it about it like that. That’s how I think about it.
Eric Voskuil 05:37:28 Yeah.
John Carvalho 05:37:31 Got any other questions for us Vlad.
Eric Voskuil 05:37:36 Approaching the six hour mark. All right, well, that’s my cue. I’m gonna. I’m gonna hit the restroom again. It’s been six hours.
Vlad Costea 05:37:45 I was muted, sorry. we passed the 5.5 hour mark. So this is pretty good. We do have some questions. So I wish Eric was here because there’s I cast 007 in the chat. And he said that he’s running Bitcoin nuts. And he wants to know what are the comments from Eric on Bitcoin knots. If it’s better than Bitcoin Core and why it’s so fucking heavy in terms of resources.
John Carvalho 05:38:23 I’ll say is why do you want to run the implementation by the guy who lost all his bitcoin?
Vlad Costea 05:38:29 Well I guess he’s mining with ocean.
John Carvalho 05:38:33 Yeah, I don’t know. My impression of ocean. My respect for Luke has like gone down in the past, you know, the past year or two. the things with, like fixing the filters and censoring, you know, mempool transactions and, the way they’re portraying some of what’s going on is ocean as relevant or even useful. And when it’s not like I just don’t think I don’t know, I feel like there’s he’s leaning on a little bit of his reputation and a bit of, you know, people’s interest and just blindly supporting him and that, that what they’re doing is not really very interesting or relevant.
Vlad Costea 05:39:16 I would not be this harsh, because I know that Luke has been of this opinion for at least a decade. There was this other situation with the upper turn worse. That’s what they refer to them as with Counterparty and Omni, when basically that was when the developers decided that they want to switch to Ethereum. The the scandal. I’m not sure about the parameters. Maybe I should look up before I say this, but I know that the data size was restricted on Bitcoin to not allow these token issuers and people building on counterparty or omni to insert too much data into Bitcoin blocks, and they were not happy about the limit.
Vlad Costea 05:40:03 I think the limit was lifted with taproot, and that’s how it became possible for people to do these four megabyte ordinal inscriptions. But Luke has been pretty consistent in his views. It’s just that now he found the business model around what he believes is his personal quest for purity. And honestly, John, I remember you’re one of the first guys to run a 300 kilobyte node.
John Carvalho 05:40:34 I never I didn’t even know that he actually made a fork of it. That was 300 kilobyte, But what I did was I saw I was supporting his just mentioning of the idea of reducing the block size, partially because it’s not something I had thought of before, and I thought it was an interesting concept to think about. And I was trying to reason about this was back in 2017 or so, maybe 2016. I was trying to reason about Lightning Network and, you know, the idea part of the idea with that was, well, if we had smaller blocks, then people would be forced to use lightning. but generally, I’ll say any of my support for that idea was, in my opinion, today, out of naivety.
Vlad Costea 05:41:21 So, Eric, there’s someone in the chat. Wants to know what you think about Bitcoin knots, which is the client that’s being maintained by Luke Dash junior.
Eric Voskuil 05:41:31 I don’t I don’t know I just to me it’s just another Bitcoin core. I don’t think much about it. What what would I. What would I think about it? I don’t. It’s it’s it’s just Bitcoin core with a few, you know, parameterization changes maybe some trivial code changes. So yeah I mean.
John Carvalho 05:41:56 Why does your reader or your, your, your person in the chat. Why does he run bitcoin knots.
Vlad Costea 05:42:02 Because he seems to be mining what ocean.
John Carvalho 05:42:06 You need to run knots to do that.
Vlad Costea 05:42:10 I guess or maybe it’s part of the recommended stack. If you go on some page by look, he tells you that the first step is to download knots and then spin up your.
Eric Voskuil 05:42:21 Yeah.
John Carvalho 05:42:22 Aside from any kind of personal judgment of Luke, I would just say, look, you’re running an implementation that probably isn’t having doesn’t have a lot of eyeballs on it doesn’t have a lot of, you know, maintenance and Development put towards it.
John Carvalho 05:42:36 You’re taking a fair amount of risks, in my opinion. You know, you’re putting your trust into one guy or I don’t know how many people work on knots, but I’m assuming not much more than one. you know. And why would you do that?
Eric Voskuil 05:42:49 I just wonder what why would you do it anyway? Like, what’s the what’s the motivation? I mean, I’ve heard him say that it’s more performant, but I don’t think there’s any significant performance difference. you know, I remember we were talking about the the size of the DB cache, and, and, but the utxo cache, or maybe it’s called DB cache mutex cache when you’re thinking and how that can affect performance.
And I think it was somebody pointed out that knots changed that limit. Right. In other words, they took the pull request to allow that limit to be larger that Bitcoin Core didn’t take. And what not it’s not not a consequential change. These are these are these are these are tiny things in the big scheme of things.
Eric Voskuil 05:43:29 And I think probably the main reason why he’s got his own thing so he can, you know, make tweaks like that, performance changes or, you know, policy changes that may not be available. I don’t know, significant differences.
John Carvalho 05:43:46 I can definitely be wrong about this, but I almost want to say, didn’t Notts first come about because Luke wanted to be able to introduce censorship to have banned lists? Isn’t that why he started it?
Eric Voskuil 05:44:00 I don’t know, it’s been a while. He’s been around for years. But put it this way, if there were, if there were significant advantages to nots, they’d just be pushed into court. So these aren’t really, you know, what I consider significant things from the perspective of a node developer. These are more probably differences in philosophy in terms of policy and, configuration parameters, maybe some tuning for mining, you know.
John Carvalho 05:44:28 But oh, that’s why they run it because they want to fix the filters. That’s why they run knots. They want to. They want a sensor.
John Carvalho 05:44:36 Pretend that they can sensor the the, NFT transactions and such orderings.
Eric Voskuil 05:44:43 I do see a good number. You know, I think pretty regularly on May net and I, I do I spit out the nodes that connect on the, on the console and I see, you know, a pretty good number of knots, nodes, I don’t know, maybe a few percent, which is more than most, of alternate nodes, although you can never really tell by by looking at that for sure.
Vlad Costea 05:45:10 Oh, yeah. He said yes. He does want to fix the filters.
John Carvalho 05:45:17 Does he understand why that doesn’t mean anything? Yeah.
Vlad Costea 05:45:22 Well, I’m not sure, but it it feels like I don’t know when this. There’s this guy on hosted Marcellus or something who started this movement on Twitter. Seemed like he had this sort of epiphany, and he found himself in the middle of a personal crusade to pursue purity in Bitcoin, to maintain its usefulness or something to keep the spam away. It’s like.
John Carvalho 05:45:48 That’s the pursuit of censorship is what that is.
Vlad Costea 05:45:51 Yeah, I know.
Eric Voskuil 05:45:53 No censorship is perfectly legitimate in Bitcoin. I mean, there’s nothing wrong with that. Everybody, all mine are censored. And, you know, they they choose. I define censorship is subjective. You know, it’s subjective as opposed to objective selection of transactions for confirmation. And all miners must select sorry, subjectively select transactions for confirmation because they’re the only objective way to do it would be to take the ones that produce the highest fee. Right. That’s that’s an objective way to to to to select which transactions Even if there’s no spam, how are you going to do it right? You have to.
John Carvalho 05:46:29 Order. Well, wouldn’t there also, maybe this is a little too philosophical, but the miner might also be inclined to think about the long term fees. In other words, you could take you could you could objectively analyze, you know, which transactions have the highest fees. But if for some reason there are those are types of transactions that are, I don’t know, somehow going to affect the overall long term usage of Bitcoin, then you might not want to include those transactions for some other longer term speculation.
Eric Voskuil 05:47:05 Nevertheless, it’s not computationally feasible to to to produce a set of transactions at any given moment for for a potential block that satisfies any objective criteria except for the fact that you’ve randomly chosen them, right? You’ve arbitrarily chosen them. Bitcoin D uses a knapsack solver to to produce its block template. Right?
Which is just grab whatever you’re seeing. sort of because it is a it is an NP hard problem, to optimize for anything. So my point was just that there there is no there’s no purity in that process. Right. You could you could like, not accept anything that meets certain criteria. That’s that’s policy. That’s subjective. Right. Other people, the only the only objective policy would be, you know, if it satisfies the consensus rules, that’s very objective.
But then you still have to take a subset of what’s mineable and that becomes subjective again. So censorship occurs on a regular basis. And if it was a problem in Bitcoin and we’d have a big problem. Censorship itself is not a problem because the presumption is that, you know, your odds of getting, you know, many blocks in a row are pretty damn slim.
Eric Voskuil 05:48:18 And, eventually somebody’s going to mind the transactions that you’re not mining. And if they’re not getting mine, the fees are going to rise and eventually somebody’s going to be incentive to to mine them. And the only time it becomes a problem is when it’s enforced by a majority of hash power, which is both the situation you have in the in the case of sophomore enforcement and in the case of state censorship. Right.
John Carvalho 05:48:42 So basically, unless you convince all miners to censor ordinals, then censoring it in the mempool level is just performance art. Like you can’t actually.
Eric Voskuil 05:48:54 Not not only not only do you have to. Well, I mean, you can’t convince all miners or presumably there’s the guy that’s creating the orders is going to mine himself. Right? And so eventually somebody comes along and mines one. And you want this pure system. What do you have to do? You have to convince majority hash power to not mine on that block. That becomes majority hash power enforcement of censorship, which is indistinguishable at that point from state censorship.
Eric Voskuil 05:49:17 Right. That’s the that’s the kind of censorship threat is that you can’t get your transaction confirmed no matter what, because the majority won’t build on it. That’s what a soft fork is. I’m sorry. That’s what software enforcement is and that’s what makes a soft work. non-disruptive. When it’s deployed, if you, if you have enough hash power, not willing to build on otherwise valid blocks.
John Carvalho 05:49:40 So so yeah, this leaves you in a situation where if you try to quote unquote, fix the filters, you have one of two possible outcomes that you have no effect. And you’ve wasted your time and you’ve done performance art, or somehow you figure it out how to make censorship more efficient.
Eric Voskuil 05:49:56 The software. Yeah, that that somehow you figured out as a software, you’ve you’ve imposed a software where the majority hash power will not mine on. non.
John Carvalho 05:50:06 Oh. What I mean is that the pursuit for purity ends up being a pursuit for better censorship in bitcoin.
Eric Voskuil 05:50:12 Right? Or I mean, I just call it a software.
Eric Voskuil 05:50:16 I mean like you could have there’s two aspects of a software One is the enforcement of majority hash power, and the other is activation of a rule in in nodes. Right. So what typically happens is, is, is miners, you know, we didn’t used to do this, but, you know, we got to the point where we got smarter on it and set a fairly high threshold.
Once that threshold has been signaled, we assume that miners are going to honor their signals and censor. And at that point, it’s safe for all nodes to activate the rule so that if miners stop censoring, everybody’s read. You know, a significant part of the economy is now rejecting, blocks under non-conforming. So that’s that’s activation.
Censorship, coupled with activation is how we get these things deployed. And you could certainly have a soft fork that, you know, that consists of, invalidating, transactions that are non-standard. Just just get rid of all non-standard transactions or ones that have op role or ones that have too much of a, you know, operation.
Eric Voskuil 05:51:21 too much data after an operation, for example. But there’s there’s this has already been looked at many times. There’s so many ways to put arbitrary data into a into a block that it’s it becomes very counterproductive.
John Carvalho 05:51:35 it’s also like we’re not even discussing like why? In other words. Okay, what was the motivation for wanting bitcoin to be pure or such? Like, I feel like the motivation was that the blocks got full and they didn’t like that the blocks were full.
And so it because fees went up or because they wanted to, you know, they wanted the block space. And so what what are we going to do every time there’s a type of Bitcoin transaction that is valid, that is the most popular type but not your type, you’re going to advocate for censorship of that.
Like I don’t understand what what what the long term logic is here. Like okay, now we hate ordinals. But then suppose we work in And covenants and then covenants fill all the blocks. Are those same guys going to want to filter out covenants like what is the law? Maybe.
Eric Voskuil 05:52:22 Yeah, maybe multisig fills all the blocks or something, but I just don’t I really don’t care that much. And like, you know, I like I, you know, you and I have had the same thing about about RBF, right. Like, that’s just that’s another form of policy.
Right. And I and and going way back before RBF, before even the first RBF, you know, thing was deployed. I turned on I with no policy. Right. So I’ve always taken the perspective of if it conforms to the consensus rules it’s valid.
Right. And you’re not going to be able to control who minds what unless you’re the state and you get majority enforcement power. So I really am not going to work on something that is not enforceable. And, I can understand the motivation of.
John Carvalho 05:53:10 I learned a lot from you about how to reason about that, that situation. but I think there was a lot of nuance in that, in a lot of other learnings in that kind of mempool for full RBF for.
John Carvalho 05:53:24 And just that, in the end, what I was just trying to show was that core kind of is supposedly has a policy of if something is controversial, that it should be held and not, you know, merged in and going live. And there’s obviously always been controversy around RBF, around zero confirmation transactions. And I found I was very, very disheartened with the way I was handled by Core when I was trying to.
I had a core dev helped me make a PR to undo the and pull for RBF as a as an option, and I didn’t quite know when I started about how all of this was, you know, the stuff that you taught me about it and that, you know, this is just policy stuff and we shouldn’t even mess with policy and have policy. That was interesting to learn. But in the end, like, I felt what they were doing was violating the user space for a speculative kind of nanny ism. In other words, zero confirmations were never safe. And so we’re going to make it we’re going to remove first scene.
John Carvalho 05:54:32 So you can’t do them for sure. And it’s like, okay, but what was the trade off exactly. Because nobody got anything out of Mempool for RBF. I can I still can choose the RBF.
Eric Voskuil 05:54:44 It’s, it’s, it’s a, it’s a, it’s a it’s a reasonable precautionary, improvement to the, to the network protocol because, you can say nobody got anything. But the way I’ve always looked at it is if you put something in there. So this this is exactly the same.
John Carvalho 05:55:02 But it’s not enforceable either.
Eric Voskuil 05:55:04 It’s exactly the same argument for dandelion. Exactly the same argument for, mixing. Right? You put something in there that that purports to provide a certain level of guarantee that doesn’t actually provide it, but people just haven’t figured it out yet. What happens is people build up infrastructure on that. And they did. They built up infrastructure on on zero cost. Now, in the earlier days, people didn’t think that people were going to really do that right. But then they did.
Eric Voskuil 05:55:30 And there was this back and forth like at some point, this is this is a way I looked at it. I think you look at it is pretty reasonable. The structure built up on this that it’s going to be catastrophic.
John Carvalho 05:55:46 But that that wasn’t.
Eric Voskuil 05:55:47 What.
John Carvalho 05:55:48 It.
Eric Voskuil 05:55:48 Was.
John Carvalho 05:55:48 Like. What was happening was merchants. Merchants were were aware of the risk. And what they were doing was they were they were putting a price on the risk and offering credit as a service.
Eric Voskuil 05:56:00 Well, so in this case, right. If that’s if that’s true, I can submit a transaction to a merchant, the merchant saying, hey, I know you can double spend that transaction. Maybe you maybe get a lot of hash power yourself. Maybe. Maybe, you know, maybe you’re you. Maybe you’re Jihan. But I’m going to price in that risk. ET cetera, et cetera, etc.. So, in the case with our with, with, you know, with, no RBF mempool. But that’s the case anyway, right? So, so they can still price in that risk.
Eric Voskuil 05:56:30 Right.
John Carvalho 05:56:32 But the difference difference was it changed. It changed double spending to be something that could be done by amateurs.
Eric Voskuil 05:56:38 Amateurs could always do it. They just have to. The miners just.
John Carvalho 05:56:41 Have to get not with any reliability. It was actually pretty difficult with first all that.
Eric Voskuil 05:56:45 Has to happen for amateurs to be.
John Carvalho 05:56:47 Able to. I worked at I worked at refill. And I think that I think that the whole time they, they accepted zero transfer transactions. There was one attempt at double spend.
Eric Voskuil 05:56:58 Yeah. But again, that’s what I mean. We’re building up this house of cards and somebody comes along and says, I’ll take I’m a minor, I’ll take any transaction. You send me the fees higher I’ll replace doesn’t require a core to do anything right. Doesn’t require. All it requires is a big enough minor to say. Yeah, but.
John Carvalho 05:57:13 The difference is you have to get that confirmed. You know, you you have to get that confirmed fast enough to affect the situation. Like you don’t have a guarantee that you’re going to get that double spend.
Eric Voskuil 05:57:22 So I, I send it off to the minor and I give you one. Right. And you’ve got now what, like a one in, you know, 1 in 10 chance of getting double spent. maybe, you know, half the miners decide doing it now you got one.
John Carvalho 05:57:34 Then you you also have the factor that double spending is seen as illegal. And you’re.
Eric Voskuil 05:57:39 You’re.
John Carvalho 05:57:40 I don’t I don’t bother with a real life entity. And so you, you have you have a deterrent as well. So this is why in practice we had our first seen mempool. We had a first seen mempool policy. And we had, the ability to offer zero confirmation transactions as a service. Now, you can say that. Oh, well, you don’t know how to properly manage your risk in that service. But that’s my problem, right?
Eric Voskuil 05:58:05 It’s still your problem. It’s it’s it’s just not. We’re just not as a as a, as engineers. Right? Telling people that there’s any security in this.
Eric Voskuil 05:58:16 There isn’t. There isn’t.
John Carvalho 05:58:19 This had been the policy in Bitcoin. For how long? Until it was, like, formally removed. You know what I mean?
Eric Voskuil 05:58:27 Way too long. I took out this. I we never had Bitcoin never implemented.
John Carvalho 05:58:32 But RBF isn’t a policy that’s enforceable either. The thing is I find the whole argument to be circular.
Eric Voskuil 05:58:39 Like you just take all the contracts.
John Carvalho 05:58:42 There’s no need. We need RBF because miners will always take the highest fee. Okay, then why do you need RBF?
Eric Voskuil 05:58:49 What you’re calling first seen is a concept that doesn’t exist in Bitcoin. There’s no.
John Carvalho 05:58:53 No no no I’m talking about RBF now. I’m just saying.
Eric Voskuil 05:58:55 Can you say the alternative to RBF is first seen? I can send out two transactions a network somebody some some are going to see one, some are going to see the other first? There is no first scene, right? So that’s always the case. It doesn’t require any RBF. You can have a 5050 chance right there. I just send them both out at the same time.
John Carvalho 05:59:14 I don’t think in practice it plays out as 5050.
Eric Voskuil 05:59:18 Do the math. I mean, how could it not?
John Carvalho 05:59:20 Well, I mean, the only math that we had was examples, right? And the examples we had were much, much less, much, much.
Eric Voskuil 05:59:27 Less because nobody.
John Carvalho 05:59:27 Was doing we we couldn’t we couldn’t pay people to do it. We tried to get we tried to pay people to do it.
Eric Voskuil 05:59:33 RBF requires low value transactions. Nobody is taking a, you know, a new Tesla on their fucking, you know, zero comp. They’re waiting for six five, you know.
John Carvalho 05:59:44 So that that argues my point to though like these are lower value transactions.
Eric Voskuil 05:59:48 The reason you’re not seeing it is because the value is low. Right. That’s that. That’s it.
John Carvalho 05:59:53 Mostly dealing in low value is actually.
Eric Voskuil 05:59:56 Not that you’re not seeing it because it’s difficult.
John Carvalho 05:59:58 But keep in mind the example here is refill and similar companies. We’re not talking about $2,000 sales. We’re talking about $20 sales.
Eric Voskuil 06:00:06 It was not worth the cost.
Eric Voskuil 06:00:07 If it becomes worth the cost or if it becomes the reward is worth the expense or the the the the the, the effort. There’s no real computational cost, right, to do it. Then people are going to do it. So the more infrastructure we build on the stuff and the more dependent the system becomes on it, the more disruptive you can become. Even just as a random threat actor who’s trying to disrupt the economy, right? If you build up your.
John Carvalho 06:00:31 System was detecting double spends and it can, and it had the ability to turn off when double spins happened. And so this was a service this. I mean I understand. I’m not arguing they’re safe. I never wanted to argue that they were safe. I wanted to.
Eric Voskuil 06:00:45 Make.
John Carvalho 06:00:46 Sure that they were manageable.
Eric Voskuil 06:00:47 You can still take zero for transaction.
John Carvalho 06:00:49 No. But now. But now anybody can submit it with anybody.
Eric Voskuil 06:00:53 Do it all the time.
John Carvalho 06:00:54 It’s. No, but it was not. It was not as certain before.
Eric Voskuil 06:00:57 Now it’s a losing look. It’s a it’s just a losing argument. There’s no security in it. You can argue all you want about how often you saw it, but there is no security.
John Carvalho 06:01:04 Then then would you will you concede the same thing about RBF? That RBF is also not?
Eric Voskuil 06:01:09 I don’t care. RBF to me is not even a relevant factor. This RBF is just another form of policy that we don’t implement, right? We don’t.
John Carvalho 06:01:17 So you agree that in other words, RBF doesn’t need to exist either? No, but you mean shouldn’t exist. Neither should be.
Eric Voskuil 06:01:23 What you’re calling RBF like. So for example, Bitcoin does not replace things. Okay, so it doesn’t mean it’s not a it’s not a concept we have because we don’t have a mempool. So we don’t discard stuff from the mempool because we don’t have a mempool. And so this is what I mean, like the mentality that comes about when you think about everybody always thinking that everybody uses the term mempool. It’s not part of Bitcoin, it’s part of Bitcoin D it’s part of Bitcoin Core.
Eric Voskuil 06:01:48 Right? The fact that Bitcoin, the Satoshi decided it was why store an arbitrary number of arbitrarily sized transactions, at least up to like four Meg or one Meg at the time in Ram is not reasonable, right? It just doesn’t make any sense. It’s like storing an arbitrary number of bands in the band list until it overflows.
Well guess what? It’s overflowing all the time now, right? I mean, maybe, maybe this week it’s okay. But all of the major discussions I’ve seen, you know, on bitcoin dev like not at all. But but a significant fraction of those discussions have been about overflowing pools. We don’t have overflowing pools. Right. And this was very very predictable from the start.
You could predict that if you’re going to store transactions in Ram, you’re going to overflow your Ram. And so, you know, you’re going to get into page swapping or something. And eventually they’re going to end up on disk. So the question is and if your if your objective. The only reason people should be storing transactions is because they’re mining.
Eric Voskuil 06:02:49 Right. Relaying to miners is great. But ultimately the only reason anybody needs a transaction transactions because they’re mining. Now, you can argue about zero comp, but I’m arguing that that’s not secure. So I wouldn’t build that into my node for that purpose. It’s interesting to know that somebody submitted a transaction that’s nice to know. So it’s useful.
But ultimately the transactions are for the miners and miners want like the the, the design principle that we operate under is miners want to make as much money as they can, because if they don’t, they’ll go out of business, other miners will put them out of business. And ultimately fees are going to be all the money they’re making. So this matters a lot.
Miners need to make the maximum fees they can make. And how are they going to do that? Are they going to do that by having a tiny little bit of ram stuffing a handful of transactions in there, and then poof, one comes in and pushes out another one and everything goes to shit because they just lost a whole bunch of money because those are all connected somehow.
Eric Voskuil 06:03:39 That’s what’s happening with with Mempool policy right now. And I said, we don’t implement policy except for DOS. So what does policy do you need when you when you take in transactions, we we take in a transaction and we put it on the disk. That’s what V3 does.
This goes back like seven years, right? we put the transaction on the disk. Well, if we do that for any transaction, the transaction has to be valid. In other words, it has to connect to another transaction. We have it has to the script has to execute. And and it also has to be there’s certain context that’s required for validating a transaction for the block.
In other words, when you take a mempool transaction and there’s no there’s no such thing as a valid Mempool transaction, the transaction can only be validated by a block, means you have to make certain assumptions when you accept it into the mempool about what the next or what the future block will be that it’s going into. In other words, if the top height, if there’s a certain height with a certain timestamp, or a certain median time past of previous blocks, you have to take that, roll it forward and make an assumed block, basically, and say this transaction.
Eric Voskuil 06:04:43 And this also has to do with fork activation, things like that. This transaction is valid in that future assumed block context, but that may not be the context that validates it, right? So what you do is you take that transaction in and you validate it in the context of a block, and you make sure it doesn’t overflow things like the total block size, it’s not bigger than than it can be to be in a block.
SIG ops, things like that. And then you sort of put it on the disk. And if you don’t have some constraint, you’ll fill up your disk with as soon as somebody decides to throw you as many transactions as they can think of.
So you put a, you put a p limit on the transaction, not as your policy. Now this is just DDoS policy, right? I’m not going to take any transactions that below a certain fee. So you’re willing to forego potentially child pays for parent or anything like that if they you know. And you know presumably people know this.
Eric Voskuil 06:05:33 So they’re not going to get through these fee filters if, if they’re if they’re too low. But that’s generally a pretty low number. And the reason that the reason it provides DDoS protection is because some miner can take that transaction and spend it. I’m sorry. And confirm it. Which means the fee will.
The fee has the potential of actually getting spent. And if you look at the. If you look at the, you know, pool of transactions we call the transaction pool, eventually it does tend to empty out. Even if it gets ridiculously full eventually it does tend to empty out so that those fees all get, you know, generally get paid over time.
But as soon as you have a you and you can have a graph of like a subgraph of transactions, right? You can have 100 transactions that are all kind of connected. And you there’s one at the end. It has a giant fee, but you can’t take it unless you take all the others. Kind of a child pays per parent kind of thing, right? So you’re not really interested.
Eric Voskuil 06:06:25 You’re not looking at one transaction at a time. You’re looking at sets of transactions that are connected. And, so this is this is real computer science, graph processing and this and this determining the set of transactions that I can fit into a block because of size, because of weight, because of off limits, because of lock times and, you know, Other, other consensus based restrictions that have to do with the block context.
You’ve got a complex problem to navigate your entire graph, and it changes every time a new block comes in. Every time, every time a new transaction comes in. The whole graph could change, right? So it’s extremely computationally intensive to find the maximal fee.
But what you really want to be doing as a miner is holding as many of those transactions as you can, because if you discard any one of them, you could be discarding unknown numbers of future unknown amount of future fees, right? So you hold on to as many as you can without dosing yourself or allowing somebody to use you.
Eric Voskuil 06:07:20 That’s it. You you you you want all of them, and you don’t want to be dosed. Well, a miner who’s running a big ass. Mine. What’s the disk size limit? They have 1000TB, I don’t. Right.
John Carvalho 06:07:35 My question is in your. You said we don’t do we don’t have the concept of RBF in Bitcoin. But you did answer me earlier that you said the mempool for RBF was a good change. So my question is how? Like why does why does RBF? If if your if what you’re saying is accurate, why does RBF have to exist in the first place?
Eric Voskuil 06:07:56 It is accurate. And what you’re citing is a narrow case which I which I’m pointing out is is is in the more general case doesn’t require RBF policy. Right. The idea of replaced by fee is this I initially was this idea that if my transaction had a certain structure and I opted in to it using this flag, that the node would then honor that and voluntarily and say, I will take this one out and put this one in.
Eric Voskuil 06:08:23 Right. That is a very narrow special case designed to, kind of provide metadata for wallets and whoever, right, to know kind of what the person who’s signing, what their intent is. Me as a node developer who’s supporting miners, right. I don’t care what the person’s intent is. I want the most valuable transaction I can get. So that’s the general case, which is I see a higher fee.
I’m taking it. I don’t care if they opted in or opted out or you know what the inputs and outputs look like. As long as as long as I can spend this transaction and make more money and confirm this transaction, make more money than otherwise, I’m taking it. And that’s the rational approach, because that’s what that’s ultimately what’s going to happen.
All miners are eventually going to do that. And if you don’t build up infrastructure that expects that, then you’re making a mistake. And RBF was a positive step in the right direction to say, we know this is going to happen, right? So that that years ago, that RBF thing that was off by default, right, is, you know, RBF policy, you could opt into whatever opt in.
Eric Voskuil 06:09:29 And I actually think it was an opt in RBF was on by default. But they changed it made it more general. Right. Because they saw this coming. And I think that was a positive move. Ultimately, I don’t agree with having a mempool at all. so there’s no replacement happening. What happens in in in a in a transaction pool scenario is I get it.
Let’s just take a simple example. I get one transaction goes onto my disk. Right. Had the minimum fee add one Satoshi, and then I get another one that spends one of the same outputs that the previous one spent. Doesn’t have to be even close to the same transaction. One can have one output, the other one can have 1000. Doesn’t matter.
But they but they are both spending one of the same outputs. So they’re in conflict. So it’s not a replacement scenario. It’s it’s I can’t I can’t confirm both and have a valid block because it’s a double spend. But one could be confirmed in one block and one could be converted into a competing block on another branch.
Eric Voskuil 06:10:20 Right. They’re perfectly valid independently. and some minor might mind this one and some other minor might mine this one. I want to be able to build on those, and I want to have the transactions already validated and on my disk. There’s a lot of reasons for me wanting as much information as I can as a miner. Right? So the only problem comes in the implementation of this with respect to DOS.
If I take that first transaction and it’s got, you know, X for a fee, which means that the person who submitted it is willing to sacrifice X if it gets confirmed and it is Confirmable. That means that if a if they if I get a lot of these right, like they’re, they’re sacrificing enough, they’re, they’re paying for the space on my disk.
That’s the way I think of it. Right. So if, if, if, if my disk is filling up, I’m going to raise that level and there’s going to be fewer and fewer of those. And that’s where I’m going to reach some, some equilibrium where I’m okay with what I’ve got.
Eric Voskuil 06:11:14 And that might change over time. I may have some cheap ones and later they might have have to get more expensive. Who knows? Because maybe the price is, you know, fluctuating. Then I get another transaction which conflicts with, you know, B conflicts with a, a had had fee X. What if B has fee X then what happens?
Well if A and B both have fees and they conflict, only one can ever be confirmed in the end, Right. Even with two independent blocks, one branch is going to get orphaned. And they will. Only one will get confirmed. Which means whoever sent me the second one or the first one. Right?
I don’t know, whoever sent one of these is not paying for two. They’re paying for one. They’ve only sacrificed one X fees, but they’ve sent me two X transactions. Two transactions. And they could send me 2 million transactions with X, and they still only spent one X into the fee. So again it becomes free for them to dos me.
Eric Voskuil 06:12:06 So so the way this is not replaced by fee right. This is dos protection. If I take in a transaction I’ve already taken it. It’s got x and then I see another one comes along. It’s got, it conflicts and it’s got two x, you know, and we assume this is a rate. So it’s per byte.
Right. So it’s proportional. I now can mine I’ve got, I’ve got two transactions I can take and my minimum fee, my minimum fee rate was x x per byte. Right. I’ve already got that. But I’ve got A2X that comes in and they’re the same size transaction. So if I take them both what’s my fee rate I’ve taken.
My fee rate is two x right. Sorry. My favourite is two x over two right. It’s x. So it satisfies my B rate. I’m dose protected. If I get another one that comes in maybe it was the very first one. And maybe it’s half x. I’m not taking that. It doesn’t satisfy my fee rate.
Eric Voskuil 06:12:59 I add that I’ve got I’ve got three of these same size transactions I’m putting on my desk, but I’ve only got two and a half x, which doesn’t turn into it’s not three. It’s not satisfying my fee rate, which is x per one of those transactions.
So I don’t take that one. Right. I might have taken it initially, but then I might not have taken the later ones because they haven’t raised the fee. Fee rate enough.
So that’s that’s the logic for DOS protecting yourself in a way that allows you to take as many transactions as possible. They satisfy block confirm ability in the presumed next block. and they satisfy DDoS protection for fee rate. And that’s it. There’s no other reason to care.
John Carvalho 06:13:43 And so are you saying that basically you on one hand, you agree that opt in RBF itself was pointless, but mempool or full mempool RVF kind of replaced that with the with a different policy concept. That is sensible.
Eric Voskuil 06:14:02 None of them, neither of them are pointless, but none of them went far enough in my opinion.
Eric Voskuil 06:14:08 Okay.
John Carvalho 06:14:09 And so far enough would be doing it the way Bitcoin does it.
Eric Voskuil 06:14:12 Yeah. From the very start I said I’m never going to implement opt in RBF and I’m never going to implement, you know, RBF, whatever they call whatever which is I’m taking anything that raises my feet, raises my possible fee, I.
John Carvalho 06:14:25 Guess.
Eric Voskuil 06:14:25 Without.
John Carvalho 06:14:27 The gaslighting part of it for me was that we were using Bitcoin this way and then of course stopped us using Bitcoin that way. And then the arguments were all revolving around opt in RBF that they knew what was best, etc. and so in the end it’s just like, well, if you’re going to support something that flags intent for a transaction, why don’t we just like map all of the intents and say, okay, I want I want to have a flag for first scene. I want to have a flag for, you know, replace. I want to have a flag for.
Eric Voskuil 06:15:00 None of those matters. That’s why we don’t do policy.
John Carvalho 06:15:02 Delete after two days like I.
John Carvalho 06:15:04 Right. Because none of them are enforceable.
Eric Voskuil 06:15:05 But, but but my answer to you is don’t use core. Use something else. And you’re like, well, everybody else is using it. Well that’s that’s not core problem.
John Carvalho 06:15:13 Well that is the point. Usable for production for a merchant.
Eric Voskuil 06:15:17 Bitcoin core does not control what people do, right. They make the software.
John Carvalho 06:15:20 But I just ask the question is like Bitcoin today you know would you recommend it for production for America right now.
Eric Voskuil 06:15:26 No it’s not ready.
John Carvalho 06:15:27 But I can’t use.
Eric Voskuil 06:15:28 What I am doing. I’m practicing what I preach. I’m not bitching about Bitcoin Core not doing not taking out all their policy. I’m making a node that takes out all the policy and if you can put you can put it in if you want. Right. But my point is that they don’t control things. People give them that power. And if you want.
John Carvalho 06:15:46 Yeah I don’t have the capacity to replace core.
Eric Voskuil 06:15:50 But if you want to run, if you want to run a node that has this, you know, special policy in it and you got to get people to run it and maybe, maybe, you know, you could take you could do a not’s.
Eric Voskuil 06:16:00 You could take Bitcoin Core for change, make the change as you suggested, and then get people to run it. It’s not your fault that everybody runs it. It’s the fact that there’s no other viable software out there that compete with core.
John Carvalho 06:16:11 So it’s not really viable for me to fork core just to make a policy change either. Right.
Eric Voskuil 06:16:16 So you’re not going to win that argument. It’s, you know, it’s just the way it is. The rules in Bitcoin are the consensus rules. That’s it. The other stuff’s not rules. And people can do whatever they want. and I don’t I don’t agree with a lot of the network protocol stuff they do, and I don’t I don’t implement a lot of it. And and some of it, I wouldn’t implement the way they implemented because I can make it compatible but not do what, what what Bitcoin you know what core does like I don’t I don’t.
John Carvalho 06:16:43 One final related annoying question, which is I know that we’ve discussed this before and I know that I haven’t.
John Carvalho 06:16:50 I know that I’ve remained stubborn on some of these aspects, but, was I going to say so? You helped me remember to to frame opt in RBF as a policy of intent, right. Flagging intent and what the what? And do you not think that in the abstract or in economics, however you want to look at it, zooming out, that miners obeying intent of users ultimately provides a more valuable system?
Eric Voskuil 06:17:25 Now.
John Carvalho 06:17:26 Like in other words, if if we had this way to flag intent for like five different things first seen RBF, delete after one day, whatever. Like we had all these intents and and miners did enforce them, you know, voluntarily that they would not make more money.
Eric Voskuil 06:17:46 Oh, no. All it means is that the person who doesn’t enforce them is going to make more money. That’s what it means.
John Carvalho 06:17:54 These are, in other words, I don’t want to make the transaction unless I know that my intent will be delivered. And if my intents are not delivered, I won’t make the transactions fine.
Eric Voskuil 06:18:06 You know, presumably the.
John Carvalho 06:18:08 The idea, the idea here is that I would make more transactions if I had intent. Capabilities.
Eric Voskuil 06:18:15 okay. You’re talking you’re making a classic what I consider a classic economics argument error in the argument. And that is, socialized gain for individual expense and that doesn’t ever work. It’s the basis of communism, right? You you’re socializing the gain. Everybody’s going to make more money. If we do what this guy wants with this transaction. But in order to do that, I’m going to have to.
John Carvalho 06:18:39 I’m personally not I mean, maybe maybe you’re right. Maybe it boils down to that. I’m not sure. But just to continue my thought process, it’s more like if I try to use, T-Mobile to make a phone call and it works, then I’m going to keep paying T-Mobile. But if it doesn’t work, I’m going to stop paying T-Mobile. Or if I get SIM swapped, I’m going to stop using T-Mobile. And yes, this is a trusted service and not enforceable and all these things.
John Carvalho 06:19:09 But just as I’m just saying as a concept, people providing a service reliably make more money than people that don’t.
Eric Voskuil 06:19:17 If if T-Mobile promised to not let you get SIM swapped, but somebody kept SIM swapping you anyway. How would you feel about their service?
John Carvalho 06:19:24 That’s what I told you. I would stop using it.
Eric Voskuil 06:19:26 Right. So it’s going to happen. People are going to do what you’re what you don’t want them to do because they can do it. It is perfectly legal under the consensus rules and they will make more money by doing it.
John Carvalho 06:19:36 Yet first seen was enforced for ten years or something not enforced.
Eric Voskuil 06:19:40 It was never enforced ever. And there’s no such thing as first seen.
John Carvalho 06:19:46 Well, there was definitely a policy in the nodes for.
Eric Voskuil 06:19:49 A node can first see something, but the network does not have a first scene.
John Carvalho 06:19:54 Yeah, yeah. No. There was first seen Mempool policy.
Eric Voskuil 06:19:59 Right. You know why? You know why there was first seen Mempool policy. I’ll tell you, I know absolutely why there was first Mempool policy wasn’t even about name.
Eric Voskuil 06:20:05 It’s it’s the easiest thing to implement by far, what I’m talking about in terms of competing fee levels for different branches for different, not even just individual transactions, but graphs of transactions. That’s hard to implement, right? And live Bitcoin. You know all the bitcoin. That’s as far as it as far as it goes. It’s first seen right. It puts it on the disk. There’s no mempool.
But if it sees a conflict on the disk it tosses it out right. It’s exactly what it does. There’s no policy, but it’s the it’s the only way it can DDoS protect itself. If it sees a conflict, it’s not going to it’s not going to accept it. So the so the the problem, I think what we’re looking at here looking at is you’ve assumed that there was some intent to have a policy that was based on first seen.
I absolutely don’t believe that. I look at Satoshi’s code and I look at the way he did things, and I’m like, this was the most obvious, straightforward, simple way to deal with conflicts, right? If I get a transaction that comes in and it’s I’ve already got one that spins that out, but I’m just talking the other one because because I can’t.
John Carvalho 06:21:05 It’s because it was for someone who’s not. Especially when I knew less about Bitcoin than I know now. It just it actually makes sense from a user perspective to why an engineer would do the same thing, in other words. Oh, that makes sense. Like I, I wrote a check and I already made a commitment. I can’t make a new commitment.
Eric Voskuil 06:21:23 No, the opposite is true. The opposite is to me, the opposite is opposite is clearly true. If I write a check and I give it to somebody, and then another one shows up that spends to the same person for the same thing, right? The second one is the priority check. It means that something was wrong with the first one. It wasn’t enough or whatever. Right? That’s what we’re doing. It’s not enough. So that is absolutely the opposite, I would expect.
John Carvalho 06:21:45 But this is speculation. We don’t actually know. Right.
Eric Voskuil 06:21:49 But no, from a rational standpoint, the last one you see is the one. Otherwise transactions get stuck.
Eric Voskuil 06:21:54 The spend gets stuck. And that is a real and a significant problem. So that’s why RBF came about, right? Because they had implemented this first seen policy just by accident. It was like I’ve already got that spent. How am I going to deal with this other one coming in? I can’t I don’t want them both in my mempool because I’m generating blocks from my mempool. That’s why I have it and I don’t want to generate a conflict. If I leave it in there, it’s going to be a complex, going to be very complex.
John Carvalho 06:22:19 If it’s if it’s another one is for a parent.
Eric Voskuil 06:22:23 What’s that?
John Carvalho 06:22:24 Why wasn’t it just addressed with CP FP and generating an extra output with every transaction?
Eric Voskuil 06:22:29 Wait, wait. CPF is way beyond what Satoshi was doing. We’re talking about like, why would you implement if you’re making a very first implementation of this thing and you’re just trying to get transactions in that spend outputs and put them in blocks?
John Carvalho 06:22:42 I’m starting from my starting point, not Satoshi starting.
Eric Voskuil 06:22:45 Satoshi comes on. You know, I wrote this from scratch more than once, and this is what you do, right? If first the first thing you do is say, if I have the same transaction, you check the hash. I’ve got it, okay, I’ve already got it in my mempool right now we’re going to put it on disk.
Yeah, we check it. We do. I have this one already. It’s already there. Toss it. So that’s that’s the most obvious thing you do. But then you have one, then you, then you find out when you’re doing your testing you have two different hashes, but you’ve produced a conflict in your block. You’ve actually double spent and you go, shit, right?
So how do you stop that? One of two things. Well, three things you toss out. You see two things that are spending the same thing, which, by the way, is computationally costly across your entire pool. Right? To check every single thing, spending the same output, you’re basically looking for duplicate inputs between your transaction and every other transaction.
Eric Voskuil 06:23:31 So every input in the new transaction that shows up has to be compared with every input and every other transaction across potentially millions. Right. So it’s expensive. And you do that and you find there’s a there’s something already spending this and you go, well do I want the new one or I want the old one. Well, all I know is that they’re spending the same input.
They’re spending the same output, but there might be different numbers of outputs in one versus the other. And I might have a whole trail of transactions that are following the one that’s already in there. So if I take it out, I maybe insert the other one in, but if it doesn’t have the same outputs, now I’ve got to propagate that deletion across the entire graph.
Right. It’s going to like, knock out all this shit on my graph. Now it gets costly, expensive and, you know, complicated. So the obvious thing to do. The easiest thing to do when you’re doing a first prototype implementation is say, if I have any conflict coming in on the transactions already in the pool, I don’t take it.
Eric Voskuil 06:24:28 That’s it. And, and and eventually somebody comes along and says, well, this sucks because we can’t we can’t get our transactions confirmed if the fee rate gets too high. Nobody’s mining these because they’re too low. So let’s see if we can bump the fee rate. Well, one way to do that is say I think this is the way often RBF worked.
If the transaction had the same inputs and the same outputs is basically the same transaction, but it increased the fee over in comparison to one that we already have, then I could do what I just described to you without any disruption to my graph. I could say, okay, it’s the same transaction sans fee and maybe a flag, right? So I can just pop this one out and pop this one in.
There’s no disruption to my graph. The fees going up. It helps the miner. It helps the person trying to get the transaction confirmed. Great. That’s what often RBF was. And I think the opt in the the flag that says this is an opt in RBF was the indicator to the node that it should check for this scenario, right? So it was an optimization for the node as well.
Eric Voskuil 06:25:26 So I’m not even going to check for this unless you set this flag. Not as a way to make it.
John Carvalho 06:25:30 The reason I think there was more complexity added to RBF at some point than that.
Eric Voskuil 06:25:34 I think that was the initial that was the initial cut. There was a there was a Bip on it. I never implemented it, so I could be guessing. But what came later was, you know, as the as Mempool implementations got more and more complex, we started started dealing with child pay per parent. not just for an individual transaction, but for a whole subgraph.
And now you’ve got, you know, Peter, Willy’s out there doing this, distributed mempool thing, which is basically what I’m talking about. Right? We’ve been working we’ve had this design for years, and, we’ve done an implementation of it.
It hasn’t shipped yet, but it’s it’s graph processing over, over a graph of inputs to outputs. where you have you can have in the pool any number of conflicts. Right? I can have a, I can have a whole pool of transactions that form all these independent graphs.
Eric Voskuil 06:26:24 Right. Well, independent in some way, they all connect somehow and they conflict like this. Subgraph conflicts with this subgraph. There’s something in here that’s going to conflict with something in here, which means I can’t take both of these. Right. Those are conflicting, but I’m still going to hold them all in memory.
And then maybe something comes in as a child of this, and it’s a huge fee, and I can take that whole thing because it outweighs this thing. Right. And that’s that’s extremely complex processing. That’s real computer science especially. I mean, it’s to do it naively. It’s not too hard, but to do it formally, it’s it’s not possible, actually.
You have to you have to turn it into heuristic. You have to guess because it’s way too computationally infeasible to traveling salesman problem on steroids. so the reason that didn’t get done was because it was hard to implement reliably, and he was building a prototype. But very soon after that we got RBF. And then, you know, we got the RBF, which improved upon it.
Eric Voskuil 06:27:19 And then we got the, you know, the other RBF which generalized it even further. And there’s still struggling with overflowing mempool. Right. which ones are we going to kick out deciding which transaction to kick out of the mempool when another one comes in? Oh my God, that’s a that’s a real problem, right?
That’s a complex problem. It’s not not as simple as it might seem. So the approach we take is memory is the most expensive resource on the machine, and disk is the cheapest resource on the machine. So as long as it satisfies fee policy we put it on the disk. Right.
The problem the problem is is bigger than that because, you know, having it on the disk serves a couple purposes, but it’s not sufficient to do mining. having conflicting transactions on the desk is fine because they’re not. They’re not in blocks. They’re not confirmed. So we put them on the same you know, we have one table that holds all transactions. It doesn’t matter. Confirmed. Not confirmed.
Eric Voskuil 06:28:11 It’s you know, they’re associated by headers. Not. And the headers get confirmed. And that’s what makes it a chain. But if we if we take transactions and put them in the on disk, then when a compact block header comes in and says, you know, we’ve mined all these transactions, we go, yep, we got that one, that one, that one and that one.
And they’ve all been validated already in the in some context. And so all we do is make sure they’re there and check to see if the context is still, sufficient. It’s not going to necessarily be the same. It won’t be the same because median time pass won’t be the same.
But we can look at the context and we can say, is it sufficient for these not to have to be revalidated again? And if that’s the case, we’re done. Right. And we didn’t have to validate a single signature right. Coinbase no signatures. And so we bring the Coinbase in. We block in we. So we need in order to do that we need certain metadata.
Eric Voskuil 06:29:02 We need to know how big all the transactions are that just came in. All we got is hashes, right? So we need to know how many sig ops or in all the transactions. We need to know the lock. You know lock time issues. We need to know total weight. Total size. so, we need to know double spans. Right? We need to.
John Carvalho 06:29:23 I mean, it sounds like a lot of headaches if you just said first scene.
Eric Voskuil 06:29:27 Nope. You wouldn’t. We wouldn’t avoid. You wouldn’t avoid them at all. You just go out of business. So,
John Carvalho 06:29:32 Well, not necessarily. I mean, you wouldn’t be optimizing, but would you be taking fees?
Eric Voskuil 06:29:39 How you go out of business is not optimizing your your income, which is strictly fees. So yeah, that’s not a that’s not a rational approach because you.
John Carvalho 06:29:48 Wouldn’t be hardcore optimizing. You would still be optimizing by the size of the fees of the transactions you did keep. Right.
Eric Voskuil 06:29:56 Okay. Well, I tell you what.
John Carvalho 06:29:58 And if the mempool is Pools overflowing. How much cream are we talking about, exactly?
Eric Voskuil 06:30:02 I’ll tell you what. If all the miners want to. Want to want to? Mine on first scene and that’s it. I’m all for it. I am all I know. You can convince all the miners to do that. I’m going to put every every last red cent I have to mining on my own.
John Carvalho 06:30:20 I’m partially teasing. I do understand the nuances, and I have actually learned a few more nuances as you spoke, so I appreciate it. But yeah, it’s hard for me not to think that as you describe, basically the impossibility of optimization. And I’m thinking, okay.
Eric Voskuil 06:30:35 Well.
John Carvalho 06:30:36 Not.
Eric Voskuil 06:30:36 Impossible. It can’t be fully. There’s no way to fully optimize it. In other words, there’s not enough time.
John Carvalho 06:30:40 But when I think about how you have all these like graphs of transactions that are co-dependent and you and your hopes of actually comparing them become like infinite, it’s like you’re.
Eric Voskuil 06:30:52 Like, this is too hard.
Eric Voskuil 06:30:53 Let’s just not do this right?
John Carvalho 06:30:55 Right. Like, it just seems like. It seems like it’s so hard that you might be optimizing to make one sense. It’s like, you know, you know, like.
Eric Voskuil 06:31:03 We’re, you know, we make we make mobile phones. But, you know, that’s great.
John Carvalho 06:31:06 Because you also factor in the computational cost. Do you compare the the potential computational cost to the the fee difference.
Eric Voskuil 06:31:14 Like yeah.
John Carvalho 06:31:16 Yeah you do.
Eric Voskuil 06:31:17 Yeah, absolutely. You know, the computational cost. I mean, the biggest the big computational cost is time because the more time you spend not.
John Carvalho 06:31:24 I mean, when you’re analyzing the graph, are you factoring cost of analyzing the graphed?
Eric Voskuil 06:31:30 You mean the electricity cost of running the CPU to to ensure.
John Carvalho 06:31:34 Because what if the difference is just ten sats or something. You’re going to run all that.
Eric Voskuil 06:31:38 Then you then you. So there’s always going to be a limit on your on your graph processing. Right. You have to arbitrarily cut it off at some point.
Eric Voskuil 06:31:44 You just tune it down. You don’t want, you know, if you don’t think it’s profitable. But but the, the the idea that you’re, you’re not going to attempt to optimize profit because it’s too complex to fit.
John Carvalho 06:31:55 The spectrum, right? I didn’t. That wasn’t quite what I said. What I said was I’m not going to go that far with optimization.
Eric Voskuil 06:32:01 Okay, well, you’re saying the same thing. You’re saying I’m not going to optimize to my fullest ability, right? The cost and the cost is inclusive of everything, right? I’m not going to do that.
John Carvalho 06:32:12 My girlfriend’s always trying to do things that will save us like $0.25. And I’m like.
Eric Voskuil 06:32:16 I understand.
John Carvalho 06:32:16 The idea costing us so much just by worrying about.
Eric Voskuil 06:32:19 It. I understand.
John Carvalho 06:32:20 By telling me it’s a cost.
Eric Voskuil 06:32:22 But realize that I’m doing this for free. I’m writing the software for these miners for free. They’re not paying shit for this. So that’s the biggest cost. I’ve worked on this for years, right? And and when they can plug it in and run it right, and the code’s all written and it just sits there, it uses, you know, the trivial amount of electricity.
Eric Voskuil 06:32:40 It’s not fucking caching. Right. So if I was, if I was a miner and I could invest, you know, a certain amount in hash rate and a certain amount in optimizing what I’m hashing for. I would put a significant amount of money towards optimizing what I’m hashing on, because if I’m spending all that time hashing, presumably the only thing I’m getting out of it is the is the money that I put into the blocks, which is what? Suboptimal. Why would I do that? I want.
John Carvalho 06:33:11 I mean you could with bitcoin since you save everything, you could do some post analysis to see how much optimization really gained you. Right.
Eric Voskuil 06:33:19 You could, it would, it would be expensive to find the optimal right. Like to find.
John Carvalho 06:33:24 Well, I just mean comparing what you did to first seen for example you’d be able to do something like that.
Eric Voskuil 06:33:33 It’s no it’s not limited to first scene. You still have to deal with which ones you take of the ones you saw.
John Carvalho 06:33:39 Comparing comparing one policy to another policy.
Eric Voskuil 06:33:41 So you’d have to you’d have to store the time or the order in which they were retrieved, and then you’d have to, you know, you’d have to, you know, compute the computational cost of all this. I can’t imagine anybody would ever do that.
What you would do is you would look at your profit ratio compared to people that aren’t doing it. and that’s how you would determine whether you’re winning or losing, in that game. And, you know, if you, if you can’t come up like, first. First of all, I mean, what what will you typically see miners do when a new block comes in?
They mine an empty block. Why? Because it’s the fastest block they can find. It’s valid. So they they they have an empty block all ready to go as soon as that one comes in. Boom. They’re mining, so they’re not wasting their hash rate. And, now, would you mind an empty block if you have if there’s no block group, if there’s no subsidy? I don’t know.
Eric Voskuil 06:34:36 Probably not. Right. Because even even if the subsidy gets pretty low, would you mind an empty block? Well, no, it’s not worth the hash rate. The probability says you’re not going to. I don’t know, but there’s some point in there where that’s not even feasible. So what are you doing?
You know, you’re you’re There’s a shift from just because the mentality of taking like, you know, whatever comes in for fees is based on this idea of the subsidy being the overwhelming part of the reward subsidy is going to zero. So the fees are the going to be the only part of the reward. And if if people aren’t optimizing for fees inclusive of all their costs, right, then they are going to go out of business.
They’re not going to be the most efficient miners. And mining’s a zero sum game. So, I’m, you know, all along here, we’ve been we’ve been working towards the, the game that makes miners most efficient. Now, let me let me put this in a perspective of security and, you know, kind of the cypherpunk mentality, the threat, the state.
Eric Voskuil 06:35:36 Right, which can mine centrally in one location has a significant advantage because it can seize mines and mine in one physical location, which is much more efficient than mining in a distributed fashion because of latency. Now people say, well, there’s no more, There’s no latency because we have compact blocks. That’s bullshit. There’s no latency because mining is heavily centralised.
And, or there’s less, you know, there’s less orphans seen because mining is heavily centralized. And the way you measure latency is kind of by how many orphans you’re seeing. But as people start distributing into the woods and running their little minds to compete with the state to capture those excess fees, right, then they’re going to be mining at a deficiency.
And if the state is, say, taking any fee they can get and putting money into optimizing and you’re not, you’re at a disadvantage, you’re at a double disadvantage. But then consider the fact that the the way censorship resistance works is when a, when a transaction is censored, right. The state’s censoring.
Eric Voskuil 06:36:32 They’re, they’re doing a majority hash power censorship thing. And they don’t take your transaction because, you know, you’re you’re living out in the jungles of Myanmar using your using your money to, to buy ghost guns. And your transaction is not getting confirmed. So what do you do? You increase your fee. That’s how you do it.
And it still doesn’t. You don’t even know you’re being censured, but you increase your fee. It didn’t go through. I’m trying to make my payment didn’t go through, increase my fee and all those fees that are piling up that the state’s not taking. The sensor’s not taking because they’re censoring you. Right. That becomes a cost to them.
But if everybody just minds on the first one, they saw no cost to the state, right? The the fee is not rising. The fee has to rise based on subsequent transactions until the sensor, until there’s enough potential money sitting there for somebody to come in and violate the censorship protocol and overpower the sensor with majority hash power.
Eric Voskuil 06:37:29 So it’s a primary security issue as well. You have to take the most profitable transactions, and that’s not going to be the first one you saw.
John Carvalho 06:37:39 I understand I, I feel like there’s some weakness There. If the state is already so large that it’s in that position. And, I’m playing devil’s advocate.
Eric Voskuil 06:37:57 The state’s winning that if you want to play devil’s advocate, the state’s winning the battle then. And no amount of fee increase by people is going to be that they’re willing to pay is going to be able to overpower them. It’s moot. Pristine doesn’t matter. Right? Nothing’s getting through and your zero isn’t going to work so well.
John Carvalho 06:38:15 I guess maybe that was kind of what I was going to say. I was just also going to add another part where all of the other miners that aren’t the state would still have my first transaction that was censored by the state. So as long as they were mining a block, they would be able to include my transaction if they want.
Eric Voskuil 06:38:34 Why would they? They’re mining.
Eric Voskuil 06:38:35 They’re they’re they’re going to be doing something now that’s illegal because your transaction your transaction is illegal. Right. They’re being.
John Carvalho 06:38:42 But if if people if mine if non-state miner is not mining transactions because they’re illegal is the security model. That’s not a security.
Eric Voskuil 06:38:49 It is a security model. Okay, let’s hear me out. Okay. State comes and says these transactions are money laundering. Right. In other words, let’s let’s let’s take let’s take a very practical example.
John Carvalho 06:39:01 Very specific OFAC. This transaction is from an OFAC address.
Eric Voskuil 06:39:05 I’m going to I’m going to go. I’m going to go more. I’m going to go more. I’m going to I’m going to go. Harder than that. Right. I’m going to say. There is a global consortium of states which already exists that protect their money. It’s called the IMF. Right. And they’ve come up with a policy that says a law, a regulation that says there will be no transactions in our financial system unless we have signed them, which is already the case.
Eric Voskuil 06:39:29 There are no transactions occur in the legacy financial system that are not, in one way or another, approved. So maybe they decide the way we’re going to do this with Bitcoin is if a miner mines a transaction that has not received a stamp of approval, which means a digital signature attached to it by us. It is a money laundering transaction by definition.
So any transaction that anybody else implements doesn’t get through. And how do you get that signature? The way you get that signature is you walk down to your bank and you say, I want to, I want to, I want to send this. Western Union. Right. Same old bullshit, same stuff that already exists. And you show your ID and you pay your mirage, right?
There’s your inflation right there, the damage per transaction, and you’re totally unmasked and you’ve paid your inflation fee. And now you can get your transaction through. And any in the way they’re enforcing this is just a simple soft work. They do software enforcement. They say any miner that mines these transactions better better be mining only signed transactions.
Eric Voskuil 06:40:32 And by the way, they better sign the block themselves. So we know who mined these transactions. And so we can verify all that shit. Somebody minds a block that has some unauthorized transactions in it, or they’re an unauthorized miner. Now they’re in some shit, right? And so that’s where you are.
You’re out there in Myanmar, and you want to buy your ghost guns, and you’ve got your you’ve got your transaction, and you’re not going to do any of that bullshit. You’re just going to submit your transaction to the peer to peer network and hope that somebody finds it and you pay your fee, not knowing maybe that this shit’s even happening and your transaction doesn’t go through.
Now, the state’s not taking it. Nobody else is taking it. And what you’re arguing is that people will just take it anyway. And what I’m telling you is that no, it’s not worth it for them.
John Carvalho 06:41:12 For for no. What I’m arguing is your assumption is that Bitcoin has already been compromised, right?
Eric Voskuil 06:41:17 No, there’s no already compromised.
Eric Voskuil 06:41:19 This was always going to be happening. This is the this is the you should assume that this is how Bitcoin works. This is how it’s designed to work. So this better be how it works right. It’s designed to deal with this specific situation. This is the only way Bitcoin is censorship resistant.
So it’s designed to deal with the fact that the state is doing what I just described, or something analogous to that. Right. And there are miners out there who are not mining because it’s not worth it. It’s a they’re going to lose money because the state has a centralization advantage. They can. They can not just one but be all the big mines.
Right. Which are kind of co-located, have no regulatory risk and have centralized hash rate, which means they have a they have a latency advantage and they have a, what do you call it? the other, frequency of payment, forget they, they have they have both advantages, right. Because they’re big and they have low latency. So they’re already mining at an advantage.
Eric Voskuil 06:42:17 So you’re losing money and you’re you’re going to shut down your mind. You shut down your mind, you’re losing money, but you’re monitoring the mempool. You know, the transaction pools, I would call it. And you see, fees on all these millions of transactions are going up, up, up. Why are they going up? Because they’re not getting confirmed.
It’s just what happens, right? People do. They’re replaced by fee. They’re just boom, boom or they’re or they’re child bumping them or something. Right. And they’re going up and they’re going up and you’re like, Holy shit, look at that. Look at I could mine one block and. Just turn on my mind’s eye, grab all those transactions.
I submit the block right. And and everybody else is doing it too. And all of a sudden, we’re mining at a higher hash rate than the state because there’s money there to pay for it. The only way the state overcomes that is to subsidize mines. They can’t take the higher fees they’re operating.
Eric Voskuil 06:43:07 They’re operating at a lower success, for their given hash rate. So they have to subsidize at the. It’s basically the way if you take out the latency differences and, and that it comes down to the, the increment in fees that black market transactions are paying, the difference between the, the fee level that’s getting mined by the state and the fee level that people are willing to pay.
That difference is the amount that they will have to subsidize their mining. That doesn’t sound like a lot, and it may not be enough, but that’s the only thing that provides censorship resistance is people willing to pay more for their transactions. And if these are big deal transactions.
John Carvalho 06:43:40 It feels a little insecure. well.
Eric Voskuil 06:43:43 That’s how Bitcoin works. I hate to break it to you. There’s nothing else protecting it.
John Carvalho 06:43:48 It sounds like inevitably Bitcoin is going to be captured. That’s what it sounds like.
Eric Voskuil 06:43:53 Well it would be majority hash power enforced. Yes that is probably.
John Carvalho 06:43:57 Centralization isn’t efficiency. So miners are always trend to essentially.
Eric Voskuil 06:44:01 Why don’t.
John Carvalho 06:44:02 We work on which always trend them to capture.
Eric Voskuil 06:44:05 Why do we work on core development? Two things we work on, right. We work on making it, balancing out those mining inefficiencies. Right. So people are not very efficient. But the idea, right, is that you can do it anonymously. And, it’s not but it’s not efficient. Right. So we’ve got we’ve got people that work on trying to limit at least. If not, eliminate the advantage to centralized mining. The technical advantage to centralized mining. I’m talking about regulatory whatever, right.
John Carvalho 06:44:38 So that I don’t see how that could be eliminated.
Eric Voskuil 06:44:42 Okay. Well, but that’s what that’s what people are working on. That’s that’s what that’s what braid pools all about. So braid pool guys. Another another’s work on this idea of reducing the advantage to centralized mining and, the other the other problem with being able to mine or transact when it’s not allowed is privacy. So other people work on privacy enhancements to Bitcoin, and part of that part of privacy is being able to operate at very low scale, right? I mean, you know, the guy peddling corner weed doesn’t come along with a semi full of weed and, you know, set up shop on the corner.
Eric Voskuil 06:45:20 He operates at very small scale and that’s how he hides. He’s doing a high volume business. He’s going to be highlighted. So the idea of of Decentralization is not enough to provide security. Decentralization exists to provide the ability to operate at small scale and hide. So without identity, right? And and with a equal.
With an equal advantage, you’re not going to disadvantage the state because you don’t know who it is. But you want everybody to have an equal advantage as much as possible. But the sensor has an inherent disadvantage as soon as he starts censoring, that’s why. Generally, unless it’s a state attack, there’s no reason to censor and there’s no advantage to it, right? You just take the Most High, the most valuable transactions you can.
Otherwise you’re just losing money. So there really is no threat apart from the state which wants to censor so that it can preserve the purchasing power of its own money, or including the ability to tax through the money, etc.. So that’s why the state is kind of designated as the threat, because they’re the only ones that have the incentive to to do that.
Eric Voskuil 06:46:20 Right. To censor. And the only thing that could possibly counter that censor, aside from voting, which is the system we already have, which doesn’t work, right. But it doesn’t provide that feature because people don’t really want it when it comes down.
John Carvalho 06:46:35 So the the the error mode, in other words, once the state is, you know, suppressing or censoring the the situation you describe where there’s millions of transactions that would make me suffer if only I started mining again. Sounds kind of unlikely to me. Like, I feel like once I’ve been. Once I’ve been cornered out of mining, I’m probably not watching any.
Eric Voskuil 06:47:01 Why are you working Bitcoin?
John Carvalho 06:47:04 because maybe none of this will happen till I’m dead.
Eric Voskuil 06:47:06 Right? But, you know, I don’t really care that much, right? I mean, the reason I work on it is because I. I want people to have permissionless money.
John Carvalho 06:47:14 No, no, I want that, too. But what I’m saying is.
Eric Voskuil 06:47:17 Well, they don’t.
John Carvalho 06:47:18 Have made a huge leap, as in, just because, we have what? Bitcoin is providing this service to us now, but what you describe does sound somewhat inevitable.
Eric Voskuil 06:47:28 Bitcoin is Bitcoin is being allowed. It’s permissioned. Right now it’s not providing permissionless money. It hasn’t even been tested. Right. I mean, it it surely likely would have been shut down a long time ago if it was totally centralized, like, you know, Liberty Reserve, for example. However, it has not been tested. And, I, I think it’s really, you know, silly if anybody wants to say, well, you know, we’re doing great. Like, look at, you know, we’re censorship. You know, we’re not censorship resistant because I just showed you how.
John Carvalho 06:48:00 I wasn’t even finished. I was going to describe like, okay, like, we have miners now that have to comply with OFAC and some, some, some say that they do, some say.
Eric Voskuil 06:48:10 But they do. They not mine on censor on on blocks that are that are accepting censored transactions. They they might not.
John Carvalho 06:48:16 I think I think only because they that the state hasn’t made that nuance a requirement.
Eric Voskuil 06:48:22 They will say they don’t have enough. They don’t have enough hash power. They they don’t. So what would happen is if they impose that now, it would likely just put those miners out of business because they would be they would be offering a lot of blocks. And so once they get to majority hash power under control, then there would be no, no problem.
John Carvalho 06:48:40 We have this issue with lightning as well and other like Bitcoin stuff like my lawyers are very, specific about what we can and can’t do as an LSP. And, you know, in this kind of money transmitter. Right, right. Like, in other words, like, oh, if you want to do this, this and this, you can, but you’re going to have to get licensed and you’re going to have to do it. Yeah. And it’s like, okay, then why then then I guess lightning’s kind of fucked to eventually.
Eric Voskuil 06:49:07 So like I ask people, why do they work on this stuff, right? If you know, what I explained to you is not controversial.
Eric Voskuil 06:49:15 I think you accept what I told you is a reasonable security model, and, you know, it very possibly could happen. So I ask, why work on it? Like like you can’t prove that the censorship.
John Carvalho 06:49:30 We’re all working on it to get rich. No.
Eric Voskuil 06:49:33 So you can’t prove that the censorship. But that is telling, right? Like it’s a kind of a rhetorical question. Why are you working on it again if you don’t believe this stuff?
But but if if the censorship aspect, you know, if censorship resistant money is what it’s all about and that’s what gives you it gives it its value proposition. And I just showed you how fairly trivially it could be censored. And the question is, well, what are we doing? Right.
You can’t prove that the state will be able to generate enough tax revenue to pay the subsidy to overpower people that, you know, are willing to pay higher fees for their transactions. But you also can’t prove the opposite, which you pointed out, and I agree with you can’t prove that people are going to pay enough to incent those miners to break the law, to mine the transactions, and continue to do so.
Eric Voskuil 06:50:18 So they don’t get the branch doesn’t get completely orphaned off. But it’s possible. And so I work on it. That’s right there in my book. I think it’s chapter one.
John Carvalho 06:50:28 Right. So like, neither of us can predict the future, which is so which is another reason to keep working on it. In other words, I you can’t predict either of those outcomes for sure. There might be a third outcome. You know, like.
Eric Voskuil 06:50:40 We believe it’s possible and we think it’s worthwhile, right? We can’t prove it will happen one way or the other, but at least we’re honest about how it works, right? What I get fed up with is people just completely denying how it works, primarily because they don’t give a shit about this. What they care about is their NGO. Until the state takes it over and it becomes PayPal. Right? That’s that’s it. And I don’t.
John Carvalho 06:51:04 Care. Honestly, it seems a lot like Njoo is mostly turning into, you know, deference to the state.
John Carvalho 06:51:10 It’s just saying, oh, state, come on in. Like, take everything if you’re gonna make me money.
Eric Voskuil 06:51:16 If you’re if you’re doing institutional white market bitcoin, you have no choice. That’s why I do not work on anything that’s institutional white market bitcoin right. I mean they can use my node right. But I don’t design for that because it has no security. There is no security in the white market.
If you’re not willing to say no to the rules right. You’re you have no resistance whatsoever. You’re not part of the security model. So I this is I laid this right out of my book. Right. Nobody in the white market who is unwilling to say, you know, to, to, to to to act without permission is part of the security model.
They’re a no op in the security model, which means Saylor, which means all the ETFs, which means Coinbase, which means all the big miners, they do not count in the security model. Now people will come and say, well, we can vote for it.
Eric Voskuil 06:52:06 Like that’s the status quo. We we already can vote for good dollars.
John Carvalho 06:52:11 You may want to look at this if you haven’t heard of it, but France is already making things worse. any transaction involving an anonymized cryptocurrency or a mixing service will be considered money laundering by default. This is a presumption. So they’re reversing the burden of proof I told.
Eric Voskuil 06:52:28 I have a good friend that, you know, runs an exchange and I was like, you know, European. This is coming. This was years ago. I’m like, that’s not a sustainable business model running an exchange, right? You’re going to be part of the problem soon enough.
John Carvalho 06:52:44 So and now they want to bring exchanges to lightning by bringing tokens to lightning with the edge nodes.
Eric Voskuil 06:52:50 All this all this shit happening in the white market with lightning. Like I don’t care. To me, it’s not even part of Bitcoin. This is why I don’t get involved with most discussions that go on about like, okay, you know, Adam wants to talk about the number or this thing.
Eric Voskuil 06:53:03 And I’m like, okay, you’re fine, fine, but you’re not relevant anymore, right? If you’re not working on black market money and because there is no value proposition, there is no reason for it. It’s just a casino and I don’t care about that. Why would I spend my life working on that?
I could just go to Vegas and, you know, roll the dice. So. So I don’t I don’t know. It’s it’s, I there’s some. The reason I talk about it, the reason I get on these podcasts and anybody ask me is because there’s some people that just don’t understand this.
A lot of people don’t understand it that, you know, they they’re the class of, you know, yesterday they show up and they, they, they they’ve heard nothing but cheerleading. And then I come along and, you know, or black comes along, we tell them, hey, you know, that’s not what you’re here for. And, you know, some people, some people, like, comes on, but, I agree with you.
Eric Voskuil 06:53:52 There’s no guarantee. There’s no guarantee it’s going to survive. But I, I tend to think of it this way. Bitcoin could Bitcoin could be completely subverted through, you know, majority hash power attack. They could they can they can impose damage which you know without even changing any rules imposed impose complete transparency in all transactions.
And basically all the value prop is gone. It becomes PayPal. And that could happen and it could be completely dead, you know? But it’s going to keep coming back. Right? Because when, when the, when the hash power attack goes away and then it comes back.
So I kind of prefer to work on the software and the tools to allow that to happen. So for the rest of humanity, the span of life on Earth and maybe Mars, it’s always going to be there. And it’s kind of like gold. Right. When society comes apart in the past. Money dies. There you go. You didn’t quote it.
John Carvalho 06:54:51 I I’ll be putting these as a merchandise soon in a in a store.
John Carvalho 06:54:55 But we made this black market money.
Eric Voskuil 06:54:57 We didn’t put the little quote at the bottom.
John Carvalho 06:55:00 Oh, that’s that’s what you want.
Eric Voskuil 06:55:02 My quote that’s failure attribute, you know.
John Carvalho 06:55:09 Did you actually. Were you? Cause I feel like it’s just been a thing.
Eric Voskuil 06:55:17 Maybe if anybody said it before me, it was probably a mirror. I don’t know. Yeah. but, I it’s kind of a mantra. You know.
John Carvalho 06:55:26 I’ll send you a free shirt.
Eric Voskuil 06:55:29 Okay, let’s consider it paid. I think, you know, it’s going to. As long as it’s the software is still there, and and, you know, people, people know this thing exists, and it will still be possible to keep coming back forever for all the, you know, unlimited number of years in the future, it’s always there and maybe something better will come along. Maybe something will solve some of these problems that that, you know.
John Carvalho 06:55:52 Kind of we may find that like the low level, like there’s a level to stay under, you know what I mean? In other words, Bitcoin can be so big.
John Carvalho 06:56:01 And then it gets so now you’re captured and then.
Eric Voskuil 06:56:03 You’re hitting.
John Carvalho 06:56:03 On a very.
Eric Voskuil 06:56:04 I agree. And you’re hitting on a very relevant question. So what do we what are we doing with scaling again? What are we trying to do.
John Carvalho 06:56:13 What’s the we’re trying to maximize the amount of people that can use black market money.
Eric Voskuil 06:56:17 Right. But that’s not what we’re really doing. What most people are doing is trying to maximize the amount of people that can use white market Bitcoin. And and in terms of black market bitcoin, I think we’re probably, you know, we’re doing pretty good right now in terms of like I don’t.
John Carvalho 06:56:34 I mean.
Eric Voskuil 06:56:35 I don’t know anybody that’s having a problem getting their Bitcoin transaction through on L1 ever. So you know okay I think we’re all right right now. And my priority is not to make a, you know, a very complex system that tends to be centralized and that nobody can actually run in the jungle and, and you know, and tell them, you know, this is what you got to do because we’re scaling, I think, no, I’m just going to use whatever, and I’m going to transfer my money.
Eric Voskuil 06:57:00 And so, I don’t know, I, I tend to think, We can build simpler, right? Performant, easy money that satisfies the requirements. It’s just that we have. We have a requirements problem. Really, the biggest problem Bitcoin has right now is the requirements problem. There’s a requirements bug and it’s white market. Just take every single white market scenario and just fucking toss it. Now you’ve got the requirements right. And that changes the changes everything where all the money goes right. Who’s giving the money.
John Carvalho 06:57:37 Well yeah. And this is I don’t know how often you, you listen to any of my interviews or tweets, but this has been a very common theme for me, like pointing out that the entire Lightning Network is entirely subsidized, that, you know, these scaling methods are all things nobody will actually tolerate as far as their complex normal users like these are all performances. And that what I point out is that there’s a budget for speculative development, and that if that budget is consumed by things that are a waste of time, then we are all wasting time and we’re not making progress.
John Carvalho 06:58:14 Whereas if we can better understand what things to work on, then that budget is put to good use for real humans. And for me, like whether it’s black market, like I avoid the black market money term and a lot of situations just because people think black market means evil. and because the government said the yeah, right. Criminal evil. Same. but when you use it, you mean something very specific.
Eric Voskuil 06:58:39 I mean, free market, right. And free market is the market that doesn’t the commission.
John Carvalho 06:58:44 Yeah. The, the rules that weren’t made by the government. and so for me, like I, I’m trying to optimise people able to do direct commerce with each other. in other words, without middlemen being able to stick their fingers in the pot and mess everything up with regulations with, you know, whatever it may be.
Eric Voskuil 06:59:06 I mean, I wouldn’t I wouldn’t have a problem with middlemen as long as they can’t be used to take control of the system or they’re, you know, and it’s all voluntary.
Eric Voskuil 06:59:14 Yeah.
John Carvalho 06:59:14 I don’t have an issue with, like, middlemen as a service. In other words, curation, sourcing this kind of thing. I mean, the what’s what’s the word, rent, you know.
Eric Voskuil 06:59:26 Or lending. Right. Like where you have a facilitator, a bank that facilitates moneys coming in. Moneys going out. Right there. That’s a that’s a middleman. And people would say, oh Bitcoin is like oh banks, you know you’re not going to have lending right. Anybody who’s lending is essentially a bank. So or investing because investing is just lending.
John Carvalho 06:59:43 I guess when I, I guess I would identify middlemen as points of censorship.
Eric Voskuil 06:59:47 Right? Well, that’s why I when I said it, I said, like, as long as they’re in this position where they can’t be used to take control. Right. Banks are free market banks become a weakness. Just like anything that kind of gets larger in the free market, right? State steps in and takes control. And the way they took control of banking in the US was through the Federal Reserve Act, which basically subsidized member banks.
Eric Voskuil 07:00:09 And so all the other banks went out of business. and so, you know, by by giving, by giving free money, essentially, you know, interest free loans to your member banks because you control the printing press at the Treasury, you can put them out of business. So you can take you can take control of the system because it’s aggregated so much.
Right. And the same would happen, you know, if a bunch of miners have aggregated all the hash rate, then, you can take control. You take control of that, you’ve taken control of of of mining. Now, of course, the people are actually doing the hashing and they can go somewhere else, but then they’re operating at a disadvantage because they’re operating at smaller scale.
And that’s the issue that we have to deal with. And typically what happens now is everybody gravitates towards the most profitable mining pool. And even though they can leave it, if it starts censoring, the question is why would they? If they’re making more money.
Eric Voskuil 07:01:00 So again, it comes back down to individualized cost and socialized gain. and that that’s that’s not a reasonable set of, financial incentives. So, things like this is why I come out against things like, What the the the new the newer mining protocol.
Vlad Costea 07:01:28 Ocean.
John Carvalho 07:01:30 No.
Eric Voskuil 07:01:31 Stratum two is a is an is an example of that. Right. Where you know, obviously the miner who controls the payout can control what blocks get mined even if they don’t select the blocks.
They just not pay people. And, they will go out of business. So, you know, the argument, I pointed that out right off the bat and, and, this is another one of these things that sells itself as Security. It’s not.
It might be a nice engineering feature, but it’s not security because it doesn’t provide that benefit. And then the argument becomes. The miners can leave this miner miner censoring because they’re not paying miners who who are not, you know, who are mining on unauthorized blocks. And so they leave.
Eric Voskuil 07:02:19 Where do they go? They go to the other the next biggest miner who’s doing the same thing. All the big miners are doing the same thing. So where do they go? They all go. The small mining. Right? So? So really, has it solved the problem? No, it’s they’ve had to go off and hide. you people will be able to tell whether, you know, large scale mining is, you know, state censoring. That’s not really a mystery. So, the question is, what’s it doing? It’s another one of these false sense of security engineering solutions where we like, you know, like dandelion or, you know, whatever. It’s like, you know.
John Carvalho 07:02:50 Where do you think Braid Pool is a solution or improvement?
Eric Voskuil 07:02:53 You know, I was there when Brad Poole was announced at Scaling Hong Kong, and that’s where I went up to Bob, and I was really excited. I was like, this is, you know, I was pretty new. And and I remember thinking like, you know, if this does what you know, you’re saying it can do and it seems like you can do, it could be really important because this is one of the most important issues in Bitcoin.
Eric Voskuil 07:03:11 And but I’ve followed it and I’m friend, you know Bob’s a friend and culprit who’s doing the coding on it. You know, he’s a he’s a Bitcoin guy. And he’s one of.
John Carvalho 07:03:23 Our we met at a couple of conferences and became friends over crypto economics.
Eric Voskuil 07:03:27 Culprit. Yeah yeah yeah yeah. He’s great. And he’s he’s like, you know computer science PhD. He’s been he’s been, you know, kind of a part time contributor for a long time. And I have him to thank for helping me on lodging my brain, how we could solve some of the problems that led to where we are now.
So, and, you know, so both of them are great. but I’ve, I’ve participated tangentially in, in grad school and other related things and kind of like working group level. And you know, I, I’m not I’m not entirely convinced that there is a solution.
But if anybody’s getting closer to the solution, it’s them because they’re working on the right problem. And, you know, the the other the other example that was kind of like, stratum V2 was, fiber, right? It’s also one of mass things, fiber, similarly naive in its in its attempt to provide a security benefit.
Eric Voskuil 07:04:19 I think, you know, for the these things, you know, like fiber and starting to be true for as examples are an example of trying, you know, doing the right doing for the right reasons, the thing that doesn’t really accomplish the objective. Same dandelion, same thing. Right?
There’s a lot of these things that like, they just don’t get enough to move the bar. But the problem is that they they advertise themselves as having done so, which draws money into them and away from other solutions. So Braid Pool didn’t get funded for like, I don’t know, ten years or it just got funded recently.
It was years, I don’t think six years working on this one source of funding a long time and finally got some funding. And so they’re finally starting to do some work. But, you know, all this other stuff, you know, which is not which was from the beginning, obviously not going to solve this problem. and so fiber was this idea of reducing latency and, in order.
Eric Voskuil 07:05:09 So if it’s, if it’s P2P protocol and everything moves faster and every miner sees everything faster than they would have otherwise, it’s great. It’s positive for security. But if it’s not so. So that’s what compact blocks does. Compact blocks reduces latency, reduces the amount of orphan. If there’s a constant amount of orphan across the whole system, it’s not a cost to anybody because it’s a zero sum game.
Everybody’s paying the same profit, but it’s a disproportionate level of orphan. In other words, smaller miners is you create more orphans than larger miners because they’re farther apart from each other, and therefore they don’t see blocks as soon. So it’s a problem. You reduce latency, you can reduce that, but proportionally you’re probably not really reducing it anyway. So net net is It’s about the same.
But, with compact locks. We have a P2P protocol which dramatically, you know, reduces latency. But the miners rely on that. No, they they spy mine. They all the big miners contact, connect to each other’s pools, and they see the blocks as soon as they come out of the competing pool, which is as fast as it’s going to get.
Eric Voskuil 07:06:08 fiber comes along and it’s like we’re going to do like better than compact blocks and it’s fiber relay. And the and the way fiber became faster, apart from like all the miners joining this public network, which really didn’t do anything was to create a private relay network. Right. So there were two things.
There was the protocol and the public aspect, and then there was a private network which somebody maybe met. Right. managed so that because it had no security, it intentionally, like had no way to protect itself from being like destroyed by spam. And so they basically had to sign up and join and to to or you know, they had to be identified and they could be kicked off.
Right? Minors could be kicked off the system. That’s how it was protected against. Right. And and the messages were put into very compact messages. So like like one packet you could you could send things out. So it was basically packet reduction and compression. Very low latency. Great. But centralized totally centralized.
Eric Voskuil 07:07:06 The only way it could work was with a central authority. So that didn’t do anything. And then the the one that was not centralized was just P2P network. If it was, it was worthwhile. It’s basically just compact block. Put it in the protocol. Great.
But people are mining anyway and that’s as good as it’s going to get. So what have we achieved? Nothing really. All this work really haven’t achieved much. of all those things, I think Compaq Box probably achieved the most in reducing latency. But did we, did we advantage the small miner over the big miner or reduce that disadvantage?
No we didn’t. and as soon as, as soon as we start facing, you know, the threat, what happens is nobody nobody’s big mining illegally. Right. So they’re all they all got smaller. They all moved out into the into the into the, you know, hinterlands. And they’re and they’re mining their small mines. All of a sudden latency goes way up, orphan rate goes up.
Eric Voskuil 07:07:57 And so when people say, oh, I’m from orphan rate, you know, latency, it’s not a problem anymore. It’s no orphan. I’m like, well, there are orphans. But the reason you’re not seeing a lot of orphans is because mining is very centralized. So as soon as it becomes decentralized, you’re going to see that it’s actually a problem. And that’s when it will matter, because that that will imply, smaller miners operating in a, at a at a higher as you. I’m not convinced that, laundry, you know, laundering works, right? Mixers is really sufficient to provide the level of privacy that people need in the threat environment.
John Carvalho 07:08:41 I’m kind of biting my time to decide what I think is good or bad for privacy, because I’ve just learned so much over the years and I just feel like I haven’t quite gotten there yet. Like, I, I have a lot of thoughts about how privacy works that have evolved and a lot of ways to see why certain things don’t make sense.
John Carvalho 07:09:01 But I also have hope. And so I think, okay, maybe eventually, if nobody else figures it out, I’ll learn enough or I’ll figure it out. And that’s how I look at it.
Eric Voskuil 07:09:11 I tend to think that I’m not the smart guy in the room, and that other people are going to figure these things out, and I just keep working on what I can do, which is, you know, basically just software engineering and just cranking through the engineering.
John Carvalho 07:09:21 I’m like, I’m like disappointed when I figure something out. I’m like, I figured this out. Like, why didn’t somebody else figure this out?
Eric Voskuil 07:09:29 When I, when I, when I look at it like a SSC, you know, zero knowledge proof paper and I’m like, my head starts spinning. I’m like, I’m in. I am in the wrong class. I, you know, I’m perfectly happy to let other people understand the concept, the print. I’m like, okay, you work, you work on that. Make it small, make it efficient.
Eric Voskuil 07:09:47 We’ll we’ll come back in ten years and see how it look. But people are continuing to work on those things, I think. Zero knowledge one way or another. allow gives us the possibility of decoupling inputs and outputs. And that goes a long way towards privacy, right? I mean, there’s a certain aspect of privacy where you’re transacting with another party and they know who you are, and there’s a potential tainting problem which is always going to exist. Right. But then you’ve got online interactions where, you know, maybe, maybe you can be as anonymous as you need to be to, to do the things you need to do.
John Carvalho 07:10:46 And I’m just. That’s why I’m biting my time before taking a position or or such. How are you doing over there, Vlad?
Vlad Costea 07:10:58 Oh, we broke a mirror record. It was seven hours. Seven minutes. Now we are at seven hours, 11 minutes, 58 seconds.
Eric Voskuil 07:11:08 But there’s. There’s two of us, so we only get half credit.
Vlad Costea 07:11:13 I’m not sure.
John Carvalho 07:11:14 I’ll take half credit, but I’m not going double time.
Vlad Costea 07:11:18 Basically, Amir cheated a bit because he spent like, one hour talking about his favorite mathematicians and dinosaurs and the way that he envisions the future and all of these non-technical topics. But this was very consistently Amir. Yeah, that’s a mirror. But this has been very on topic. I’m really proud of it. And we still have Android P read out or something. I hope I don’t mispronounce the last name. Beretta. Yeah. Wanted to know also about those social scalability and what you do differently, or what you would like to see differently in Bitcoin, the current state of Bitcoin and critics of Bitcoin.
John Carvalho 07:12:11 What’s social scalability like? The user experience?
Vlad Costea 07:12:15 No, I think it’s the concept as defined by Nick Szabo in one of his articles, in which he describes social scalability as technology that enables you to interact with strangers that you don’t trust and trade with them. And Bitcoin is like the ultimate tool of social scalability, because you get to trade with strangers around the world and you don’t have to know anything. Except for the fact that you’re running the right client and you’re verifying that the coins are not fake.
John Carvalho 07:12:53 I would say on the surface, speaking ignorantly, that does not sound like a sound concept. I would say when in trade and in commerce, part of what you’re trying to do is match people. You’re trying to say, like, this person’s looking for that and you’re trying to help people, you know, find what they’re looking for, and that requires an exchange of information. And so I would argue social scalability requires a certain amount of supporting of a social graph and identity. So anonymity. How do you go from not knowing who anyone is or where anyone is or anything about them to to trading with them? Like, yeah.
Eric Voskuil 07:13:31 I kind of kind of agree. It’s maybe a little different take on it, but there’s this there’s this tendency among, you know, Cypherpunk ish people to see the whole, you know, see everybody as a threat and shrink into anonymity as a default mode of operation where, like this, this what this thing describes is like this presumably ideal state of affairs where nobody interacts with anybody else.
We’re all just numbers interacting with numbers, pseudonyms or something. Right? We’ve got this web of trust where we trust pseudonyms and, you know, no, nobody’s actually interacting, and I don’t I don’t see that as either effective or desirable. I know a lot of people do, but I think it’s fucking stupid. Like, the the what I, what I see is Individuals working together, right?
Generally knowing who we are. I mean, we know each other. We’ve known each other for years. Right. We’re working together to to achieve some common outcome. And that generally, you know, in the, in the anarchist, libertarian cypherpunk ish world means enabling or empowering the individual over the over, you know, in the face of the overreach by the state.
Eric Voskuil 07:14:55 Why that means we all need to be anonymous to each other. I don’t know. Right. That when it comes to me, when it comes to privacy as an aspect of security, it has to do with being able to operate in a way that you can’t be identified by the threat. The threat is not every other human being. I mean, every every human being is potentially a risk. But it’s just not. It’s just not the way the world works. And trying to devise a society like it sounds like Nick is advocating for. To me, it’s not. It’s a non goal. I don’t want to live in a society.
John Carvalho 07:15:26 It’s a non society. It’s anti society.
Eric Voskuil 07:15:29 Right. It’s not even a non goal. It’s a non. It’s a non thing right. I actually my first reaction to it when you described it was was the name was weird right. Like what was the social scaling. It’s nothing social about it. It’s and it’s not really scaling. It’s it’s more like effective isolation.
Eric Voskuil 07:15:49 Right. We can all be completely isolated from each other, but still be able to trade with each other, which is interesting.
John Carvalho 07:15:55 Well, to play devil’s advocate, I would say maybe what he means is minimizing witnesses like we talked about earlier. You know, like, in other words, is there a way that we can. So social scalability of Bitcoin would be getting as many people to use it as possible in a way that they aren’t, that they’re revealing as little metadata as possible.
Eric Voskuil 07:16:17 Sure. Because metadata gets sucked up by the NSA and then you’re, you know, then you’re you’re on the grid, you know, minimizing third party control over two party voluntary interactions. is a laudable goal. I mean, my, my ultimately, my goal is just for people to live freer lives. and, you know, that certainly doesn’t mean in isolation or, you know, on their machines or their computers. Right? It’s just, empowering the individual.
John Carvalho 07:16:52 I think some Bitcoiners took don’t trust verify to mean much more than it was meant to mean.
John Carvalho 07:16:58 And like trust is useful. Trust. You can’t compete without trust. You can’t participate in society. Without trust, you can’t scale. You know, without trust. Like, there’s so many things that you need to trust for.
Eric Voskuil 07:17:11 Low trust societies really suck, right? Like. Right.
John Carvalho 07:17:15 I mean, yeah.
Eric Voskuil 07:17:16 There’s there’s there’s there’s high trust societies like go to Japan. Right. There’s some things about I’ve been to Japan a lot and and there’s some things about Japan that are great high trust Society.
Some things about it really I don’t like and they don’t like, but in general. Right. You know, would you prefer to be there or in the, you know, the DRC like like low trust society? I assume? I’ve never that’s one of the places I haven’t been.
But like, you know, low trust societies are dangerous and, and, unproductive. and so, yeah, trust is not an inherent evil, right. It’s, it’s, it’s really when you’ve and trust works really well in a free market, it’s really well because reputation works.
Eric Voskuil 07:17:59 And, you know, you look take a look again. Look at Japan. Right. Relatively trusting society. And it works. but when you have the state step in and violate that trust, like, you know, they took all your gold certificates and said, sorry, we’re keeping the gold.
Right? and it happens on a regular basis. now you’re now you have a different problem. It’s not really about, you know, so people talk about, like, you know, getting robbed by banks. Well, banks aren’t rugged people. The state is rugged people using the banks. It’s it’s this common denominator. Of course there are there are scams.
And there were banking scams that, you know, that have happened, you know, long ago in history. But these are exceptions. The rule is generally that, a, you know, societies operate on trust, like you’re saying, especially, you know, you go back further in time. There weren’t mechanisms to provide assurance. I remember writing checks, receiving checks.
Eric Voskuil 07:18:54 I remember when writing a cheque was much was considered much more, acceptable. When you’re waiting in line to buy something than using a credit card. Credit cards were new enough. They took a long time to process. You had to get out the thing, sit on the desk, do the, you know, get the paper.
John Carvalho 07:19:10 I used to have to do that, and I had a job at it.
Eric Voskuil 07:19:13 And they’d have to write out the thing. This was this was kind of credit cards in the 70s when I was growing up. Right. And somebody comes along with a cheque, it’s like they’re already back, you know, it’s done. And so if you think about it, both of them were high trust because the credit card swiping thing, there was no verification.
John Carvalho 07:19:30 They all got all about that. Like how you had to, like take the card and put it in the carbon and slide the thing over. But what do they do?
Eric Voskuil 07:19:36 It’s a dynamically created check. That’s what credit cards are.
Eric Voskuil 07:19:41 They’re dynamically created checks. You get the boom, you write the amount right. You get the vendor. You get you. You get the card number. Right. Same thing as your account number. And then they then they send it in and the visa company debits your bank account.
They send it to these guys. It’s all complicated. but it was much slower. People writing a cheque was faster. Cash was the idea. Like you get in line behind, somebody starts pulling out his credit card and. Oh, fuck. Right.
Like, he’s sitting there for five minutes while they get this done. And now it’s the opposite, right. Somebody’s paying with cash. They’re like, oh, Jesus. Just use your, you know, Apple Pay or something. but, you know, if somebody goes to use bitcoin, who knows what’s going to. But but that’s the.
John Carvalho 07:20:22 Same thing actually. Like, if you go to El Salvador and you want to pay with Bitcoin and somebody behind you in line.
John Carvalho 07:20:26 Well, now the waiter is telling you that the manager has to do it. The manager forgot how to do it.
Eric Voskuil 07:20:32 Right, right right. It’s just not. Yeah. And so but the point was high trust. Right. So those so any form of payment you know had some fairly cash was fairly low trust you know because it was counterfeiting was not easy.
And then credit cards were pretty high trust. And and the checks were pretty high. Until you get again you get the list of checks behind the guy at the at the cash register. You know, don’t take checks from this guy. and, you still see that once in a while.
It’s very kind of funny, like they’ve been up there for 20 years. But, you know, if that’s that’s how it that’s how it worked. And, yeah, there were, there were problems with that deep, you know, people maybe didn’t see. Right. There were problems behind the scenes. And there’s, you know, there’s money printing and inflation.
Eric Voskuil 07:21:18 And you know what? It’s all taxed. It’s another thing.
John Carvalho 07:21:20 That the department store and we used to keep a Rolodex. And so people people who tried to use fake checks, people who tried to return stolen things, returned, used things. And we had this Rolodex where anytime anybody was behaving suspiciously, we would look and see if they were in the Rolodex.
Eric Voskuil 07:21:36 And, you know, that’s how credit bureaus got started. Big, big, big stores started keeping what you’re talking about. And then that got to be a pretty big list, right? And they started pooling their lists for common benefit. That’s what that’s what gave birth to the credit reporting agencies. That’s how it happened. And it just makes sense as a market solution to a trust problem. Right. Okay. So so you know, these these people have have, you know, caused us problems in the past. So we’re not going to extend them credit. If they’ve got cash we’ll sell to them. Right. But we’re not.
Eric Voskuil 07:22:04 That’s what credit reporting is all about not extending credit. And why should anybody have to extend credit to anybody else. There’s no reason again. But we got all these regulations controlling the credit reporting agencies and, you know, regulations, controlling credit cards and all this other bullshit.
If you want to, you know, you want to buy something, just pay cash. but the, you know, the idea that, that we’re going to live in a zero trust society and that’s kind of some ideal, which seems to be some people’s mentality to me is not a goal. It’s it’s like they haven’t really contemplated what that means. And I think some of it comes from, some of the, some of the fiction, science fiction that’s been written about about, you know.
John Carvalho 07:22:45 Dystopian future or even digital only. It’s not feasible. In other words, like you could say, oh yeah, yeah, I understand about society, but online, no, even online you need to use trust. It’s everywhere.
Eric Voskuil 07:22:59 Right? I mean, yeah, if you think about the level of level of trust that people extend to each other on a continual basis is very high.
Eric Voskuil 07:23:08 yeah. People translate my books. I said, yeah, I’ll pay you full royalties for two years. Two years later I sent him some bitcoin and they’re like, oh, I forgot about that right. Like yeah it’s you know. But it worked right. You know. How else would we have done it. I don’t know. Write up a contract and say, no, we don’t need a contract. If you trust me, you don’t. We did it and it worked.
John Carvalho 07:23:28 So anything else for that?
Vlad Costea 07:23:32 Sure. I mean, it would be very useful since one of the sponsors is hodling, and they’re specialists in self-custody. To hear some of Eric’s opinions about ledger, which were part of the conversation that we were having before we went live. And yeah.
John Carvalho 07:23:49 Yeah. So we’ve been here even longer than the seven hours and such. There was another 30 minutes before that.
Eric Voskuil 07:23:55 Yeah. Can we get credit for that? All right. So I, I don’t know if enough has been disclosed on what actually.
Eric Voskuil 07:24:07 There’s been quite a bit disclosed right off the bat, which is great, but, on what happened. But, part of it is I, you know, I, I never kept up with hardware wallets after the first few years. I was working on one initially, so I had quite a bit of, quite a bit of knowledge, and I and I, and I was, I was working on one before Trezor even came out, and then, and then ledger came out and I thought, I, I’ve always felt that the security model that and the and the and the assumptions that Trezor publishes along with the security model, which is essential, right?
You have to publish your assumptions that you’re that you’re operating under have been very reasonable. They’ve always been reasonable. again, I don’t keep up, but that was always been my assessment from early on. I don’t really know what’s happened in more recent times, but ledger, the first time I saw them, there was a, I think it was a CoinDesk, article about a new release.
Eric Voskuil 07:25:01 It was the first one, like 2015 maybe.
Vlad Costea 07:25:05 Was it NTC chip or ledger?
Eric Voskuil 07:25:09 It It’s called ledger. I actually so today I went and I the the the thing. All the discussion about this, you know, there’s a lot of discussion between me and Eric Levesque. I think his name is who is the CEO of ledger at the time, maybe still today, it all occurred in discourse forums.
Underneath these articles was it was a series of articles, over the years. and he at least twice came up on these, on these threads where basically, you know, article comes out, you know, ledger or whatever just released. It does all these great things. And I read it just based on reading the article, I go, well, that’s a security problem. And so so I make a comment and a little discus thing at the bottom of the thing.
So these are all gone now. All these all these forums just vaporized when discus, I don’t know, shut down. But I was able to recover my log in and go in and see my own post today and I repost it if you saw I tweeted a screenshot of one of those old discus posts, which were from one of the later releases.
Eric Voskuil 07:26:13 and I was quoting from the article and I just made a comment on that. And so this is how these threads got started. So I reviewed it, reviewed I didn’t I didn’t look at any of their source code. I didn’t go beyond reading an article about them and, you know, like CoinDesk or something and maybe a little bit of reading their documentation. and I have a history of doing this. I had so I, I, you know, I started a software company and network security company and, and, one of them still the trust is still out there.
And, in the process of running that first company, I, I, I inferred major security vulnerabilities in a competitor’s product by just reading their press releases and their, you know, a little bit of their documentation and not even ever running their software. And I was able to get one of my employees to verify what I said. And then we wrote up and they they that resulted in three cert vulnerabilities being published against them after we had informed them and they denied all the stuff, and they had basically copied our software and done it poorly.
Eric Voskuil 07:27:16 So we understood it really well. so I had, you know, I had some experience with like just reading documentation and going, yeah, I think there’s a conceptual problem here that’s maybe big enough that people tend to overlook it when they’re looking at the details, but I don’t I think, you know, me, I tend to look at the big picture first and then I look at the details. So the first ledger was, you know, it’s a USB stick, no screen, nothing, right?
Just plug it in. I had some software that went on your PC, and it had a little plastic card, looked like a credit card, and the card had a number on it. It was a numbers and letters and I think it was like.
Four, four sets of four numbers and letters. And they were all like base 58 pairs. So, in other words, there was a like there might be a bee which got paired with a seven, right? And, you know, just just, just pairings of basic D8 like.
Eric Voskuil 07:28:12 And and so the idea was and this is, this is bear with me. This is relevant to the current issue. And this was the case with each of the iterations I saw. The idea was that they, they would you know, you plug the USB stick in and it made it cheaper by not having any kind of UI, you know, screen on it or anything like that.
And you put software on the machine. Now, the presumption of the of a hardware wallet and the presumption of this whole credit card thing, right, was that you cannot trust the machine. You just plugged it into the machine. Is the threat, right? The hostile software is running on your machine.
And you know this for a fact, and that’s why you’ve got this little plastic card. And so you put the USB stick in and you, you, you, you tell the software you want to sign this transaction somehow. And the software presents you a prompt for, several characters in the address of the payment that it’s going to sign.
Eric Voskuil 07:29:12 Right. And it asks you for the corresponding letter on the on the card. Right. So it prompts you with a seven, you give it a B, right. And and it prompts you with four of them. So how many what’s 58 divided by four? You remember.
Vlad Costea 07:29:28 14.5.
Eric Voskuil 07:29:31 Okay. That’s good. Remember that number. So you do that once and it’s basically you’ve provided to the threat software right to the machine. The answer to four of the possible 14.5 to 1 of the possible 14.5 scenarios. Right.
Or to four of the 58 values you’ve given for 58 of the secret to the machine. Now, keep in mind the machine doesn’t need the whole secret. It only needs to match four. This has to be the right floor. So you go to send some money.
You say I’m going to send to this address. You. You think the thing pops up a prompt and you give it the you give it the thing that prove you’re not malware. You have the card. So you prove that you’re the you have the card.
Eric Voskuil 07:30:17 And so the software then, you know, sends the thing. He sends those numbers over to the signing device. The signing device correlates those numbers, those answers to the address of the payment. Right. So if you didn’t have the card and you didn’t give the right response, it won’t sign. So that’s how you that’s how you work.
That that was their theory on how you work your way through the malicious software on the machine. So let’s let’s assume now your machine is in a botnet. And, you know, every, every single machine in the world has been attacked by this thing. And it knows it knows ledgers. So as soon as it sees the ledger software, it replaces it with its own version.
Right. Does an injection attack or something. And it’s presenting you with this prompt and it just does what you say. If the USB stick says, I want to sign this thing here, give me these four four values. You type in those four values, it goes back to the USB and it signs it no harm.
Eric Voskuil 07:31:09 Right. You do it again. And it maybe maybe every time you do it it uses four different values. That would be like kind of an ideal case right. So how many attempts does it take before the malware has your entire card takes 14.5 payments and it has the entire card.
But it doesn’t need the entire card. It just needs to get lucky that that or it just needs to have enough addresses to pay to for itself that it can take those, you know, four values and send the payment and the values to the USB stick and have it signed.
So, so after after 14.5 tries, it’s pretty much assured that the malware can drain your wallet. probably much earlier, and you could probably even short circuit that by causing the app to crash and then prompting you again for a different set of pears. Right. So, so horrendously insecure. And, I pointed that out at the end of this article, and eventually it came to be acknowledged. It’s kind of understood, but not until a new release was out.
Eric Voskuil 07:32:18 And this is what happened with my competitor’s software situation as well. Right. So this is why there’s screens on these devices. This doesn’t this this model does not work. And so when I saw people talking about, okay, well, the guy with a lot of experience. Right. Signed a big ass payment using a ledger device. And it’s being described as a what?
What kind of payment? What kind of signing? not transparent, but a blind. Blind. Right? Blind signing. That’s what this was, right? That’s what what I just described to you. To the effectively. It’s effectively blind signing where like the the malware on the machine can sign for itself if it wants to. in other words, the software can present you something and you don’t have any.
You don’t go to the screen and check to make sure what’s supposed to be happening. You just trust the software on the machine. And then you had to do that in the first version of the software. So that’s why I, you know, to my, to me, in my head I’m like, okay, that sounds familiar.
Eric Voskuil 07:33:20 Now, anybody that would implement what I just described to you in the first version of their product and defend it as secure, right, doesn’t understand security at all. And that and that’s what I was always bothering me about ledger is that they would actually.
So version two came along and then version three and and in both of those versions there were major security lapses. one of them was almost as straightforward as the one I just described to you. The other one is a little bit more convoluted, but but not as convoluted as what just happened. It. Oh, so very feasible. And in one of the scenarios I said, I said it was me, a discussion between me and, Mr. Levesque there.
And, I was like, look, you’re saying that this can happen, but all that has to happen is, you know, a bunch of machines on a botnet are under somebody’s control, and they can just start draining everybody’s wallets. So I’ll give you I’ll give you one other example. And again, these are these are based on the history of something that sounds similar.
Eric Voskuil 07:34:16 It may not it’s probably not the same scenario, but it’s a history of very cavalier approach towards security or at least inexperience and, defending. You know, what I consider indefensible security. And then just waiting till the, you know, saying, well, the next release is going to solve this and this kept that.
So the I think it was the second version got much more advanced. They came out with a secure element. You probably remember this, right. It was a big thing. You got a secure element. And then what they were advertising was bank level security because banks have the chip cards have secure elements in them.
They’re tamper resistant or tamper evident or something. Right. So. So there’s a so. So these cards like your your credit card that has a chip in it, it can you know, it doesn’t give up the secret. It’s it gets a prompt and it signs and it provides an answer and that, you know, it’s your basic proof of possession of the thing.
Eric Voskuil 07:35:14 So what they did was they and this was in their documentation they produced for secrets public private key pair secrets. they published a public key public keys of all four in their documentation. So it was very clear that there were four secrets on all. So the the devices were made in four batches. Each batch had a unique and a different secret in it, but only for total secrets.
And these were the public keys were published in the documentation just to kind of, I guess, show how it worked. And they were referred to as attestation keys. And whenever I see attestation I might, you know, my spidey sense goes because I don’t like with secure computing attestation I find complete nonsense. The idea is, is that I can attest to be something or to have something.
So you plug in a hard drive and it can say, I’m one of these, right? And it couldn’t possibly be faked. Well, that’s just nonsense. But an attestation key in this case was basically providing the assurance that it was like a legitimate device or something, and that allowed the bootstrapping mechanism to take place between I think I’m like a mobile device and the thing.
Eric Voskuil 07:36:24 Anyway, I can’t remember all the details, but I but the whole point of this, what it was, everything hinged on the on the lack of disclosure of these secrets on these devices, obviously. Now, when banks make you a credit card that you can use to prove you have it, it’s your it’s your account. They put a secret on that card. That’s your secret?
Not every not everybody sharing the same secret, right? It’s not saying this is a Bank of America card, and that’s good enough. No, this is your card, and you can use it right, to access your account. So that’s bank level use of these things. What they did was shared secret, right? Everybody was sharing the same secret. So you for secrets right. But it doesn’t matter.
So what I did say, well, if I got one of these secrets, like if I was in the chain of custody for the production of these devices, and I somehow got one of these secrets, what could I do? Well, it turns out if I could just get, you know, at least, I mean, certainly with root level access on their machines, I could drain wallets.
Eric Voskuil 07:37:25 I could I could interject myself into the bootstrapping process between what became their screen, which I think was a mobile device at the time. No screen still, but they were using different ways to try to avoid putting a screen on the device.
And I could, I could basically, even if they had already bootstrapped it, you could fault the thing, cause them to have to do it again. Most people would go, oh, okay, I’ll do the thing again. And boom, you you own it. you could you could prove to be the device to the to the to the like the screen.
And you could get it to sign whatever you could, you know, cause it to sign. Would it be wanted? So I went to a hardware hacking course in Portland, and I and I talked to some guys. I took the course and I talked to some, you know, famous guy that wrote, like, the Linux hacking book, big thick ass book, and, you know, great guy.
Eric Voskuil 07:38:12 And I and I asked some people like, one of these guys had worked at a place in Seattle where I lived at the time that that did that had the ability to shave down a chip and read off data, like actually read using a, you know, electron microscope. What on the chip? Like what what is the memory say?
And I said, so is this is this hard? He says, well, you know, there’s a certain failure rate. So you’d want to have probably more than a couple of them. And he said, but it’s definitely possible to shave down the you just, you know, just kind of shave them off until you get to the point.
We can see that the actual state. And he said, I think he said it at the time. This was going back like eight years or nine years. It was it was like $100,000. It was about what it would cost you to do that. I think it’s far cheaper now. But even so, I was like, man, $100,000.
Eric Voskuil 07:38:59 I could, I could, I could dig really deep, maybe get some, get some people together and just take one, you know, just get one of these things on, you know, and, and and shave it down and get that secret off it. And if I had that secret, all I had to do was put out, you know, contact some botnet and put out some malware on everybody’s machines and just drain all their wallets. Just who knows how much money there was on all, but certainly more than $100,000.
John Carvalho 07:39:22 You could do it for all of them.
Eric Voskuil 07:39:24 Well, I could do one quarter of them for that. For that.
John Carvalho 07:39:26 One, I said for $400,000, you could go.
Eric Voskuil 07:39:29 Over $400,000. I could drain every ledger wallet back then. Right. That was the upshot of it. And so, that was an interesting conversation. Right. and there was another one that came after another. I forget the details of the other one, but I, you know, after the third one of these discussions, I just kind of stopped.
Eric Voskuil 07:39:46 I was like, I, you know, I’m not working in this anymore. I don’t really care, but, I, I was never surprised every time I, you know, saw some some something, there was one of the, one of the aspects of the third one was that the it was multi-sig and, and basically the recommended approach was to bring all the signatures together on a single machine which defeated defeats the purpose of multi-sig. So, I pointed that out again with malware on that machine. That was that was the signing platform, which again was untrusted. Then, you’re effectively doing a single signature in a compromise platform.
John Carvalho 07:40:31 Did you ever look at the bit key device from the.
Vlad Costea 07:40:35 O from Jack Dorsey?
John Carvalho 07:40:37 Yeah.
Vlad Costea 07:40:38 This is a screen less.
John Carvalho 07:40:41 It’s a screen less hardware wallet. but it uses.
Eric Voskuil 07:40:44 No, I never. I never looked at it. No.
John Carvalho 07:40:48 You might. It might be your new, pet thing to dismantle.
Eric Voskuil 07:40:53 Yeah.
John Carvalho 07:40:54 I mean, I don’t remember the security model.
John Carvalho 07:40:56 I it’s a little. It’s a bit different because it is multi-sig across multiple devices, but it is not having a screen.
Eric Voskuil 07:41:03 Right. And then, you know, I remember getting into, like, because I had done all that work on a hardware wallet that had a lot of a lot of features like, you know, BTL and, you know, QR code scanning and all, all the bells and whistles.
I looked at all the stuff and I’m like, you know, you’re talking about blue. You know, blue. Handshaking to establish trust. I’m like, that’s not a that’s not a great idea. but, I don’t know. I, you know, so I, I, I suspect that It doesn’t sound like the operator. Really?
You know, he might not have been cautious enough, but I think there was an assumption of the level of the type of security that was being provided. Probably wasn’t. It sounded like it sounds like it was a desktop or a laptop desktop, whatever application on a on a machine where the machine itself had been compromised, which is the standard scenario.
Eric Voskuil 07:41:59 You should always assume the machine’s compromised, right? And you plug in the USB thing, which I guess now has a screen, and the app pops up and you, you know, you verify you’re looking at the right transaction.
There was a question about like, how do I know what the transaction is supposed to look like? It’s too complicated. It’s Ethereum contract, blah blah blah. But to me I was like, that’s not the interesting question. Let’s assume this guy knows what it’s supposed to look like.
But we know that the machine was compromised and that’s what’s been reported, right? North Koreans compromised the guy’s machine. So presenting him something to sign, which he thinks is his transaction, but it’s actually draining his wallet, and send it to North Korea.
Vlad Costea 07:42:35 All right. So for context, we are talking about the by bit by bit exchange hack. Right.
Eric Voskuil 07:42:40 Right right right right. So so yeah it’s probably good for somebody.
Vlad Costea 07:42:46 Was it clarified or confirmed late.
John Carvalho 07:42:48 Late context.
Eric Voskuil 07:42:49 But what’s that.
John Carvalho 07:42:53 Is it confirmed. They use ledger.
Eric Voskuil 07:42:56 It’s been reported a number of times. So I think it’s the case I’m only seeing like what’s coming up on Twitter, but, it’s, I think it was the guy that did it, like spike bit. He, he was very open about what happened. He said he, you know, did this thing and, if just the term blind signing.
Right, that that’s what got me. It’s like we know we know from what’s been reported, at least we believe from what’s reported that the machine was compromised by malware, which is not that hard to do. We you assume that’s the case. That’s why you’re using the stuff in the first place.
And we assume, I assume, that the that the device was not compromised. Right. Plug in the device. Machines compromised. Has a single. Fairly straightforward transaction. Ethereum contracting, but still going to. He’s going to authorize this transaction in this, you know, kind of cold wallet signing process and authorizes the signature.
Eric Voskuil 07:43:54 basically what that means is gave whatever the whatever the USB stick right, needs from him to seek the secret handshake, to tell it to do the signing with the secrets that, you know, with the with the keys that it has on board. So maybe that was a push of a button on the stick or something, right? But how does he know what he’s signing? Well, either that’s on the screen of the device or it’s on the screen of the machine. But if it’s not on the screen of the machine, why the hell is the device even plugged into the machine?
John Carvalho 07:44:23 So and why are they doing all of this on a hot machine?
Eric Voskuil 07:44:27 Well, I don’t know if it.
John Carvalho 07:44:27 Was a, I don’t know, $1.4 billion of money. Like why? Why is it touching a hot machine?
Eric Voskuil 07:44:38 Right. I mean, it was me, I think I would.
John Carvalho 07:44:41 I mean, all right, so actually, maybe this is a good question. Should we believe this guy? Well, you know, like, it happens.
Eric Voskuil 07:44:48 So I think, you know, I mean, so so the money disappeared somehow.
John Carvalho 07:44:52 So either. What if North Korea paid him $500 million to do this, right.
Eric Voskuil 07:44:56 So maybe maybe he maybe it’s a maybe it’s an inside job. That’s the only other explanation, right? Either it’s it’s it’s it’s some kind of hot machine or it’s an inside job. I don’t know how else you would how you would describe it. Right.
John Carvalho 07:45:08 I just I would be so scared if I had one point. If I have billions of dollars that I could lose, that would never touch a hot machine. I’d be like taking the address, putting on a USB stick, taking the USB stick to a cold machine, copying the edge. You know, I would not. I would be fine.
Eric Voskuil 07:45:25 You’d be you’d be typing the whole the whole transcript in JSON. Right. One character at a time. I’ve done it. Yeah, I know it works. you know, you have like a like a b b b inside of a, you know, a, what do you call it?
John Carvalho 07:45:43 Faraday.
John Carvalho 07:45:43 Cage.
Eric Voskuil 07:45:44 Faraday. Faraday. See me with names again. Be inside a Faraday cage with the whole thing. so I don’t know, but I think, you know, I tend to. I tend to kind of lean towards the, You know, it’s it’s it’s much more likely that that things are just. It’s just stupidity tends to win out over malice most of the time. But, but I think, you know, point.
John Carvalho 07:46:06 Out that, like, tether moves billions of dollars regularly and they somehow have never done this.
Eric Voskuil 07:46:12 Yeah. Okay. But let’s look, maybe look, look at the human factors here. Right. Like if, if for some reason people believe what they’re messaged about, things like ledger. Right. They might get complacent and they might put it in there and get I got a hardware wallet. It’s keeping me safe. And I can just come in here and do this thing and it’s going to be okay. and, you know, it doesn’t happen very often, but if if that’s what people believe, that’s going to happen once in a while, they’re going to.
Eric Voskuil 07:46:44 And this was my beef with it all along. I was like, yeah, this can work sometimes. A lot of times maybe, you know, but if you’re assuming that the machine is, you know, you can do this on a hot machine and that machine is not been compromised, then why do you have the device at all? Right. Just use the machine.
Right. The machine has to be secure. Then just use the machine, use electrum and use the machine. So, that is that is a perfectly viable approach to have your, your, your never touches any kind of network, you know, operates inside of a Faraday cage, individual device that has your wallet on it, right, that doesn’t have, you know, doesn’t have a hardware wallet.
And you just do that and then you just kind of, you know, retype the transaction until you, you know, once it’s signed and you verify it every single bit in the, in the JSON or whatever it is, right? Then you copy it over to a hot machine somehow, take a, take a picture of it or something like that.
John Carvalho 07:47:38 So I’ll put it as a QR code. You can put it on a USB.
Eric Voskuil 07:47:42 You got to put it on a USB, you’re transferring USB from device device, then you got.
John Carvalho 07:47:46 Well, it’s already signed, right. So nothing else bad is going to happen. You’re just trying to figure out how to get it online.
Eric Voskuil 07:47:51 Now that USB is this long, if it’s a brand new USB and you plug it into one machine and then the other in the right direction, you’re probably okay. But, you know, going back and forth between your USB could be transferring malware. So now you got a potential problem the next time. So, you know, I mean it’s it’s it’s a lower probability. But malware can be transferred by USB. So again another one of these things I.
John Carvalho 07:48:13 Could output it as a QR though. You could output it as a QR and scan it right there.
Eric Voskuil 07:48:18 There’s, there’s that there’s a there’s a there’s there’s options. So, but, you know, I don’t know if you’ve seen these, like, these things that, like, the parabolic dish that can they can, like, look across an entire room and and like, this was decade ago.
Eric Voskuil 07:48:32 Can can can based on the power fluctuations and.
John Carvalho 07:48:39 Oh, yeah. I’ve seen, they did, analysis of how the sounds of your keyboard vibrated a bag of chips, and they were able to discern the distance of the keys from the chips. The crazy, crazy things.
Eric Voskuil 07:48:54 Yeah. Like, well, this is I, I was I was the computer security officer in my flight squadron when I was in the Navy going back. That started like, 30 years ago, 95, ish 94. So, you know, you’ve probably heard about, you know, these things are more common.
We heard about now, like, what’s a skiff? Right. Like the Congress people have to go into the skiff to talk about secrets and stuff like that. But there’s a reason for those things.
And these are not really you know, the things we’re talking about are not really new. This is stuff that’s been around a long time. And, you know, the military level. there’s reasons for for taking these kind of precautions.
Eric Voskuil 07:49:36 So, you know, the state of the art tends to be way beyond what people think it is. and the question is, just how motivated is your attacker? And, you know, how well resourced are they? You know, that comes back to what’s the motivation? when I was building my hardware wallet, I, I spent a lot of time trying to understand what.
So I did the entire engineering design, and I priced it. And then I decided I wasn’t going to make it. So it’s sitting on a shelf physically. Sit. I have a physical prototype. It’s on the shelf. I was lucky enough to have a fraternity brother from college.
I went to Rensselaer and he was a double E, and he, he had had a he created, coincidentally in Seattle, a very successful engineering design firm, and they made high end consumer electronics, all kinds of stuff. And so I worked with his company to do for like a year to do the design. And while I was doing that, I also worked with another guy who had it was another fraternity brother of mine.
Eric Voskuil 07:50:34 this guy was computer science, and he had sold a company, you know, to, basically to the government, to SAIC, that was doing, you know, kind of he does and did NSA kind of stuff. Right. So, so this is the so the shit that made him a little bit, a lot, actually paranoid. and, you know, we speak in generalities, but I get it.
I was able to kind of learn from from him. What what what, you know, what I can expect in a threat scenario. Like, what’s the state of the art? What, like the shaving down the chip thing? I don’t know if maybe that started just talking with them and then me going down to the hardware hacking course and trying to find somebody would would be able to do it.
But, you know, people just don’t really I don’t know, they don’t don’t don’t really take. Don’t look realistically at threat scenarios. And the security is really hard. And a lot of this stuff in the Bitcoin world is just really cavalier.
Eric Voskuil 07:51:29 And it’s not just like we’re not just talking about these hardware wallets. You go back to, once again, things like dandelion or even mixers or confidential transactions, at least, like every time I look at some of these things, I just wonder, like who? You know, how does this how do we get this level of confidence in this solution that we have? Because to me, I don’t I don’t see it. and so I think that’s kind of generally a problem is people think there’s some kind of magic, you know, the or they think the threat, they think the threats. Lazy. Yes.
John Carvalho 07:52:02 They put their biases over some sort of and you know, you need to discover the truth entirely. They just say, well, the bias has been satisfied. So I don’t compromise.
Eric Voskuil 07:52:12 Yeah. Good enough security I my My feeling is strongly that if somebody says it’s good enough, it’s not good enough. Yeah, it’s if you state your assumptions, you know, and and if it’s secure under those assumptions, you know, and you can you can demonstrate and prove that.
Eric Voskuil 07:52:29 And great like Trezor started off with the screen. Why. Because they understood this problem. They also, understood that you physically obtain the device. The device was compromised. The threat gets the device, it’s compromised. So tell people that. Right. Don’t assume that people you know, I lost my device and some of my wallet got drained.
How did anybody get in? It’s got a pin, right? That’s not how it works. It’s just not how it works. But you go to ledger guys, and then it stops on a tamper proof chip with, you know, bank level security, and nobody could possibly get in there.
And during that thing, well, it doesn’t really work that way. you know, tamper resistant, tamper proof. I always took that with a big grain of salt, right? Like, so it turns out years ago, some guy, got it, got a Trezor, plugged it in, and he was he did power faulting on it. And there’s a nice little video he makes.
Eric Voskuil 07:53:21 He shows the whole thing. He’s basically able to read the key off the device. by power. I think this is power faulting the device. in other words, you’re sending signals in that that don’t conform to the spec for USB, but you’re causing the light to do things.
And or there was some maybe, maybe, I dunno if it was signing. He didn’t, you know, obviously he was able to extract the secret without, the pin or anything else. and this led to Trezor people. and maybe core also like working towards, constant power algorithms. Right.
So if you, if you have a, if you have an algorithm like a loop that’s running in, if it and if there’s a branch in the code and the branch goes one direction versus another direction, based on logic and, and those directions differ in power consumption. You can tell where the where the code is executing. And you know, you know, if that’s an A or a B right now, what letter is that? And that’s exactly what he did.
Eric Voskuil 07:54:21 It’s a it’s a great little video. He actually shows you know how he derives the entire he takes the algorithm I think which was public. And he just uses that to listen to, you know, the amount of power being consumed and, derives the key off the device.
Well, people, you know, looked at that said, oh, treasure is not secure. And I’m like, oh, bullshit. They said, you know, they said it’s not a physically secure device. They were honest with you. They told you how it works.
That’s the limitation. And I’m much I’m much better with that than somebody saying, you know, we’ve got a we have bank level security. Nobody could possibly get your keys even though they’ve got your device like, well, that’s not really true.
Vlad Costea 07:54:54 Yeah. But you have to understand that ledger is possibly the company that messed up the most times, but never got punished by the market.
Eric Voskuil 07:55:05 Yeah, exactly.
Vlad Costea 07:55:06 These guys are market leaders. They have the guy who designed the iPod, I think.
Vlad Costea 07:55:11 Not the iPad, the iPod to do. They’re e-ink devices that they’re releasing nowadays. Yeah. So they are working with fashion brands. They actually got someone who did marketing for some. Yeah, they even made some.
John Carvalho 07:55:29 Leather.
Vlad Costea 07:55:29 Necklace.
John Carvalho 07:55:30 They actually did do it. Yeah.
Vlad Costea 07:55:32 They made some stupid hat. And you’re supposed to fold the ledger somehow to be part of the design or whatever. And they were wearing it around their necks and whatever.
Eric Voskuil 07:55:43 Yeah. $1.3 billion later. you know, I again, I want to be. I want to be clear, I have no idea what they’ve done since the first three versions, but there were the, you know, my my impression of of what they were doing then was not good. And this sounds like it, you know, might fall into that category. And my impression of Tresor. Every time I’ve looked at it is they make reasonable. So what I’m trying to point out is that these are not necessary issues, right? These are issues of design and competence and honesty.
Eric Voskuil 07:56:20 and, you know, engineering and, and, you know, the, the, the approach of keeping it really simple and like, you know, is, is there’s some there’s a lot of value in that. I don’t use these devices. I don’t, you know, I don’t have any Bitcoin.
Vlad Costea 07:56:35 That’s what I’m going to ask you, if you actually use hardware wallets because you are working towards designing one.
Eric Voskuil 07:56:41 So no, no I just I just use a hot wallet on my mobile phone. That’s pretty much all I got. I don’t even have a screen lock on the thing. I just always unlock. but then, you know, I don’t I don’t, you know, I’m mostly wallet.
Vlad Costea 07:56:56 Is it mycelium? Electrum.
Eric Voskuil 07:56:58 Edge.
Vlad Costea 07:56:59 Edge.
Eric Voskuil 07:56:59 Yeah. And better I know Paul. So, yeah. And they used to use bitcoin before they went to be, you know, supporting all these coins. So I you know I still like them. He’s good. and they were there were several there were two contributors to the bitcoin from from edge.
Eric Voskuil 07:57:22 all right. So yeah.
John Carvalho 07:57:26 It’s been amazing. I didn’t know that we would last this long. Eric, I really appreciate all of your detail and thorough explaining and patience. You two had we you had to listen to us for a long time.
Vlad Costea 07:57:43 For, like, ten minutes away from breaking the absolute record, which was set, like, a week ago. Oh, someone.
John Carvalho 07:57:49 Has an absolute.
Vlad Costea 07:57:50 Record. Yeah, yeah. He heard about the fact that you’re trying to break the record, and he came to the show and he kept talking. So if you say.
Eric Voskuil 07:58:00 Something meaningful to say.
Vlad Costea 07:58:03 Oh yeah, this was a lot more meaningful. That was basically a DDoS.
John Carvalho 07:58:09 Was there was there another question somebody had?
Vlad Costea 07:58:13 Well, I can ask you about some advice on self-custody, like if someone’s listening up to this point, which is crazy, by the way, you guys are crazy. I’m not gonna type something in the comments like, no one’s listening or something type. No one’s listening.
Vlad Costea 07:58:37 Seriously. Right? That if you’re listening up to this point, we’ve had like 2500 listeners live, which once again, is pretty insane when you think about it. I’m trying to imagine just a crowd of 2500 people standing outside.
Eric Voskuil 07:58:54 How many, how many people have how many people are listening?
Vlad Costea 07:59:00 So in total, it was about 2500, but I’m not sure how many of them were constant because some of them dropped in and out and Twitter kicked us out because it seems like everybody was too long for that platform. We’re still live on that.
Eric Voskuil 07:59:19 Otherwise, I would have taken this a little bit more seriously. And, you know.
John Carvalho 07:59:25 You weren’t taking it seriously.
Eric Voskuil 07:59:27 No no, no. It’s just all bullshit. I’m just glad this is like the final, like the fourth one we’ve done, right? You know, they all start to sound the same after a while.
Vlad Costea 07:59:36 I remember the first one that we did. And you spoke for like, 2 hours or 3 hours. And I was thinking, you know, this this is getting pretty long, but I didn’t have the stamina at the time.
Vlad Costea 07:59:47 Right now. I have no problem.
Eric Voskuil 07:59:49 Yeah, yeah. I mean, I would just talk, you know, like I remember I did, I did, I did a lot of long ones because I didn’t really, I didn’t I would just go and tell they wanted to shut it off. I mean, I did one with John Vallas way back. Like, I don’t know, six years ago, 78 years ago. And it was like, I don’t know, it was like seven hours. It was it was totally unplanned. It was just going to be like a 30 minute, one hour standard thing that was all dehydrated.
John Carvalho 08:00:13 And I never did one this long. This is this is new for me. I’ve done 3 or 4 hours, I think, but nothing like this.
Vlad Costea 08:00:21 It’s been really fun to watch how Eric came when the light outside was super bright and it became. I opened.
John Carvalho 08:00:30 All.
Vlad Costea 08:00:30 My darker and darker. And right now you turned on the lights and it’s very dark outside.
Eric Voskuil 08:00:36 Now. You can all see my screen back there. Oh yeah. You see my private keys on there?
John Carvalho 08:00:41 Good. I’ll say, as far as you asked for self custody advice, I’ll say don’t tell people how you Self-custody is a pretty good rule, right? But,
Eric Voskuil 08:00:54 Don’t take don’t take what I said too seriously.
John Carvalho 08:00:57 Yeah. and so that makes it a little bit difficult to give advice as well. But, yeah, I. I use the hardware wallet once and just instinctively the next day, I was like, I gotta get that bitcoin off that wallet. Like, I just, I just my, just by nature I was like, this is not where my bitcoin belongs. this was a long time ago and it was a Trezor.
And that same I kept that same device. And about 5 or 6 years later, it wouldn’t boot. Now, that doesn’t mean that it’s, you know, the Bitcoin would have been totally irretrievable. Whatever. So much as I would have been really scared and having a headache and trying to figure out what to do.
John Carvalho 08:01:38 And because I didn’t put the bitcoin there, I didn’t have to worry about that. And so that doesn’t mean you don’t have to worry about wherever else you put your bitcoin. Of course you do. But you want the way you store your bitcoin to be compatible with your own capabilities and your own comfort. And if it doesn’t feel right, it probably isn’t right.
Eric Voskuil 08:02:00 Right.
Vlad Costea 08:02:01 I remember when I tried the cold card and it felt like I’m some sort of masochist, because it’s really counterintuitive. You have to learn how the menu works and the interface, and then you try to use it a month later and you realize you forgot how to use it. So you have to look at some YouTube video and you’re like, is this really the way you want to store? As in, it’s so complicated you forget how it’s done.
John Carvalho 08:02:29 Yeah. And they also make open times, which is another not very safe way to store your Bitcoin.
Eric Voskuil 08:02:35 I also tend to think that, you know, there’s certain there’s certain things that make ideal ideal you know, attack surface.
Eric Voskuil 08:02:42 And what is a hardware wallet, right. I mean, if you if you want to you want to drain some Bitcoin, that’s where you tack, right. So, general off the purpose, you know. your computer. That’s your that’s your low threat device. Right? For for for securing bitcoin and your dedicated for bitcoin device is your high threat device.
I think Peter Todd makes this point. You know, as well. It’s like, you know, if I was state level actor who wanted to subvert, you know, this and have this, that level of control, why wouldn’t I just subvert these devices or, you know, and it can go beyond that.
This is actually brings up a point. I don’t know if we probably discussed this 1 or 2 shows back, Vlad, but, you know, the, the, the security issue that I had to deal with in the BCS project where these guys had used a command that we had for generating a, a seed, right, for, for so that we could execute the commands, in demonstration.
John Carvalho 08:03:51 And went after you too.
Vlad Costea 08:03:53 Oh, there were like.
Eric Voskuil 08:03:56 A couple guys. There was one. Antoine. it was Antoine. So he was. He was pretty good. there was, some others, but but, you know, the guys that had an axe to grind. Of course, they came out right away. including Maxwell. I was a little bit surprised about, Taj because we didn’t have any.
You know, we had been on a panel, I think, a couple of years earlier. together, it was fine, but, but, you know, we were. So this is this is the same philosophy as what I’m getting at. Like, I personally don’t really, like, you know, despite having gone through the process of starting to make a hardware wallet.
This is like 2013. I kind of got to the point. You know, I’ve never really, been comfortable with it, and I. I totally understand what you’re saying. that, that, like, you know, it’s uncomfortable and, and and so part of it is, you know, even if you trust the people who made the thing.
Eric Voskuil 08:04:53 Right. But how do you do that? And and that’s the that’s the primary threat vector. it’s like a honeypot for, you know, for attack. And so I, I was always the same way with the, with the computer and the RNG random number generator. I’m like, I’m not trusting that piece of hardware. Right. That generates whatever, you know, on my device. a random number is the place where it will be compromised.
Right. If somebody wants to inject into every piece of hardware, that ship’s a weakness that they can exploit to drain every single wallet in the world. That’s what they’re going to do. They’re going to go to standard off the shelf PCs, and they’re going to inject that random number generator with something you can’t see, you can’t verify.
How do you how do you know. Right. So I have never ever, you know, Trusted that. And that’s why one of the first things that we did, I did when I, when I, we took this tool that Amir had written called SE, which was really for internal use only.
Eric Voskuil 08:06:00 He documented it, but it really, it was kind of a hodgepodge of like several different languages, different add ons, dependencies. It wasn’t really, you know, it wasn’t a product. And really, it didn’t actually didn’t have any documentation. but, there was like a website link for it or something.
And I, I ended up making it into like a, you know, we, we renamed it to from se. I made a tool out of it. And this is, one of the things I did. So there were uses there were, there were, embedded random number generator invocations in several places in the code.
So we kind of you’d be doing it, you might not even know. Like, by the way, when you do this, there’s a random number being generated in the background on your behalf. And it’s being, you know, incorporated it into the signature, something like that. And so I took all of those out and moved them to one place. And I said, and all.
Eric Voskuil 08:06:54 And as a result, all of those commands, there’s almost 100 commands. And all the commands that required a C value had to obtain that seed value on the command line and no longer was embedded. And so I preserved one command that did what he used to do before, which was to generate using the, you know, the machine.
So that we didn’t because. Because not only did it have to be generated, but had to be hexadecimal in the right length, etc. and so it had some parameters to say, you know, how long do you want it to be? And it would generate it in the right size. And so you could feed it into the other command.
So it preserved the same capability. But but it did it as a separate command. But then I it was later that, So we, we, we documented the fact that this was not, you shouldn’t trust this. There were, there were, there were, you know, you should generate your own value and put it on the command line when you’re when you’re doing these things.
Eric Voskuil 08:07:42 We did that by saying, this is a this is a pseudo random number generator. And it’s, you know, it should not be you should not trust pseudo random numbers. and there was a case where so Bitcoin Core uses what’s it called for windows builds. Memory. so there’s, there’s a kind of an environment where you can, you know, you can do like a GCC clang compile, for windows instead of using, you know, visual C plus plus file for windows.
And in this environment, it basically is providing abstractions of general, sorry, implementations of Linux APIs that don’t exist on windows using underlying windows APIs. And in this one case, the random number generator, they’re just generated the same number every time. It’s like I just gave you a constant, and and so this this was out there for years, and it was actually, there was vulnerabilities in certain Bitcoin applications because of it. a similar one happened on, Android. There was a there was an, w was the technology.
Eric Voskuil 08:08:53 I said, so, so, so it, it it validated, you know, my concern that you really can’t, you can’t even remotely trust this thing. And so we moved it out and that’s so that’s just all I’m doing is making a, you know, a comparison between that and the use of hardware wallets. If if the device is kind of dedicated to this purpose, it becomes the threat vector.
If the device is, you know, a general purpose device like a computer, I mean, you know, you could attack, you could you could inject all computers with malware that attack your wallets. but that’s a much bigger task and it’s harder to conceal. so, you know, if you want my advice, you know, you use. Use the oldest laptop that will run your wallet software and don’t connect it. Don’t ever connect it to a network you know. Operate it in a Faraday cage and and then find some way to transfer your signed transaction to, you know, to the network without compromising your machine.
Eric Voskuil 08:09:56 That’s, you know, that’s a requires a little bit of technical expertise. But,
John Carvalho 08:10:02 I think there’s something to be said for using older or more, more obscure chips for your generation if you’re going to use a chip in the at all. Because probably most majorly manufactured chips do have backdoors by governments or more or more.
Eric Voskuil 08:10:18 Generally, don’t use don’t use the chip to generate your random randomness.
John Carvalho 08:10:22 Well, I wanted to show you. Have you seen these before?
Eric Voskuil 08:10:25 Yeah yeah.
John Carvalho 08:10:26 Yeah yeah.
Eric Voskuil 08:10:27 Yeah. There’s there’s there’s all kinds of dice and those things in there, but you know, even just a set of dice, but you know, you have to, you have to kind of even rolling dice. Right. You have to maybe that’s why those are better, right? Because. Because there’s human. There’s human bias. Even in things like dice rolling. Which ones? You, you know, you select and, but, you know, I find it kind of surprising that there are major wallets that still rely on the hardware random number generator.
Eric Voskuil 08:10:54 And, I think Bitcoin Core does. And it it had like when I did the research on this because of the issue. And I documented all this. If you read the if you read the response I wrote to the CBE, you’ll see it all in there. But they literally say this is, you know, the comments in the code.
They do. They generate this random number from the hardware, which has to pass through the C language to the, to the, to the application layer, etc.. And you have to trust each of these layers. And because once you get it to the to the actual keys, right, there’s no way to verify it.
There’s no way to verify a bias. not in any reasonable way anyway. so, they actually said that, so they put some obscurity layer over it and they actually commented that this should this should help delay and attack. In other words, if you’re if your random number generator was exploited, this will make it harder for people to actually carry out the exploit.
Eric Voskuil 08:11:54 So acknowledging that that the random number generator was a problem, but saying, yeah, it’s good enough, we’ll put some obscurity over it. and so, I think that that to me, that was pretty damning. you know, my, my recommendation for generating seeds is, you know, you know, your, your bucket of bolts or, or or some dice or something, but also, you know, there are there is documentation, about how to do that properly to avoid biases, like, especially with just basic dice. And I and I strongly recommend that. so yeah, especially specialized hardware. I mean I’m not knocking all hardware wallets. but I but I do think that specialized hardware presents a specialized risk.
John Carvalho 08:12:41 I think one interesting detail you left out of your story is that, part of the reason why it was discovered was because they had put your example, random number generation, function into mastering bitcoin, right? So there were people that were using it as an example, and they were generating wallets out of using mastering bitcoin, I believe.
Eric Voskuil 08:13:05 Right.
John Carvalho 08:13:06 Right.
Eric Voskuil 08:13:06 So it was it was you know, it was documented as you know, examples, of of using VCs. And there was a, there was a theory that that I personally had had like Backdoored mastering Bitcoin in order to achieve the outcome.
And, and the theory was based on the fact that, so we, we made it, we made a change to the implementation. And you know, this again in the CV write up. I wrote the entire history of all those emails in there. There’s the there’s the there’s a repo stuff.
There was a lot of assumptions made about what happened, which wasn’t the case at all. we had a, a mirror was working on dark wallet, I think. and he was, he was he had written some script to iterate over key generation just to just to do some experimentation or something. And it was really slow. And it turned out that the reason it was slow was because we were, this code that was using the hardware random number generator was.
Eric Voskuil 08:14:14 re invoking the generation each time. Like there’s a way you can kind of cache a seed and it kind of keeps feeding off the seed, which is much faster. Anyway, so I looked at it and I said, well, yeah, this is this is not really doing it the way it should do it. It was doing it the way I think a mirror originally coded it, but if you really wanted to do like a high volume of these things, it wasn’t great.
And so I looked at it and said, we really, really shouldn’t be using this at all anyway because it’s documented as insecure. And so I made it explicitly insecure. I said, you know, put a, put a clock seed and a sane twister. and by the way, you know, the mercy and twister is not a, it’s not a cryptographically secure pseudo random number generator, but it just happens to be the one that I think GW used underneath, you know, the, the operating system implementation. So again, it’s just, you know, these things are they were not intended to be, secure random number generators.
Eric Voskuil 08:15:11 For that you need a true source of randomness. And there is no true source of randomness on your, you know, generic PC. And there’s no way to know whether this, you know, a true number generator under your PC. So they’re inherently not secure. So anyway, I changed that implementation and, it, it probably coincided with the release of a major.
We went from like a version two to a version three, a major version change, and Andreas had written without contacting us. He had he might he had some interaction with the mirror, but he just said, hey, I’m going to put this stuff in the book. And, Amir contacted me. I have I, I publish some of these emails.
He contacted us and he said, like, Andreas is going to put in the book, this is, I think, the first release of the book. And, and and I said, well, that’s cool, but not it was s right. And, and I he said, if you can get it cleaned up, you may be able to get like, you know, a good release into the, into the book.
Eric Voskuil 08:16:05 So I spent some time, you know, cleaning it up. But he shipped with version two, I think, I think I had this right. He shipped with a version prior to that in the book. And so when we released our release version of the X, all the book was wrong.
There was a whole bunch of differences in the book, and so I took it upon myself to do a pull request into his book To rename commands to all the all the RNG commands had to be passed through the command line. There was a number of other things, but basically and the command. So he had named the the pages on the book after the command.
So the command changed from something to something else. Right. So what that meant was there was a rename of a page. So when the you know, when these people wrote up this vulnerability, they it looked like I had created the page from scratch using the, you know, using the same version of the that they used or the latest version.
Eric Voskuil 08:16:59 Whereas really what had happened is Andreas had checked in all the code originally, and I think I had nothing to do with it, no input whatsoever. And then I found out that, you know, he had he had shipped this thing and asked him if I asked him if he wanted, if he wanted me to, to issue the changes for the new release so the book would be cut.
And he said, yeah. So I strictly only implemented the changes, right? Like it’s like I don’t change any of his terminology or anything, but what that meant was that one of the page names changed, and it looked like it was a new page that I just introduced. Right. So these guys like shit all over me for like, injecting this thing in and say, hey, do this right.
Or I had written the whole thing. and I even added, this is like probably the only text I added that he didn’t have. I said, you know, this something about the the random number generator command being pseudo random or not being, there was there was some there was some disclaimer there like that.
Eric Voskuil 08:17:57 This is oh, there was a, there was a claim statement that the random number generator was based on, that trusted the hardware, something like that. Right. Because I didn’t like that, that this was being used. And there was like nobody was being told where the randomness was coming from.
So I told them it was using the hardware, which in our history had, you know, was, you know, there was a clear indication that that meant wasn’t to be trusted, maybe could have been more explicit, like don’t trust this value, it’s using the hardware. But, again, I wasn’t rewriting his book. I just took what he said and continued it.
So if we had done nothing except just let him take se and use what Amir had there originally, it would have used the hardware random number generator, which is insecure and on something. GW used the same twister and used a constant value. So, you know, we ended up just removing the command altogether because you could never, you know, it was just too much conflict.
Eric Voskuil 08:18:53 And I didn’t want to give people the impression that we were trying to keep people misusing it, and people misused it. So we took it out. but it’s much more tedious now to, like, use a command line to, to, like, generate some random keys and show people how addresses work and, and do it just primarily what it’s useful for demonstrating the behavior of Bitcoin. it’s called an explorer. Explorer things.
So yeah, that was that. But it’s, you know, we and we we, we have the internal communications about why we were doing these things as well. I think on slack, which meant go way back, was like, we don’t trust this hardware. We’re not we’re not going to ship embedded random number generators. So my my opinion is, don’t, you know, don’t trust the hardware, if you’re serious about it and, the hardware that’s dedicated to things like bitcoin.
Vlad Costea 08:19:54 I’m gonna have so much fun time stamping this. Eight hours, 20 minutes.
John Carvalho 08:19:59 Surely there’s AI that can do that for you?
Vlad Costea 08:20:02 Yeah, but even for that, I have to cut it, because on YouTube I have a character limit of 5000 or something.
Vlad Costea 08:20:08 So I, I need to select what is really important.
Eric Voskuil 08:20:13 For all we know, Vlad is an AI and we’ve just been, you know, talking to the spot the whole time.
Vlad Costea 08:20:17 Oh, haven’t you met me in person?
Eric Voskuil 08:20:20 Yeah, but I don’t. You? We’ve met a couple times.
Vlad Costea 08:20:26 I remember in Riga.
Eric Voskuil 08:20:28 Yeah, yeah. We met. We met at the last honey badger I went to. Yeah, I didn’t go the last couple of times.
Vlad Costea 08:20:34 You had a very quick pair of events, and I became jealous, so I bought one for myself.
Eric Voskuil 08:20:39 Oh, what.
Vlad Costea 08:20:40 A pair of vans.
Eric Voskuil 08:20:42 Oh, my vans. Do you like the vans? Yeah, I still have. I still have lots of vans. That’s good to hear.
John Carvalho 08:20:48 Yeah. All right, guys, I’m getting a headache. I need to go.
Eric Voskuil 08:20:51 Me too.
Vlad Costea 08:20:52 Okay. Thank you very much for being here. Right.
Eric Voskuil 08:20:56 We broke.
Vlad Costea 08:20:56 The record. Yes, we did buy ten minutes.
Eric Voskuil 08:20:59 All right, that’s good enough.
John Carvalho 08:21:00 It was great hanging out with you guys. Thank you. Vlad.
Vlad Costea 08:21:03 See you around. Thank you John. Thank you Eric. And also thanks to the sponsor SideShift, Citrea, Layer two labs, Bitcoin.com news, NoOnes, and Hodling.ch.
Verify this episode
This is the SHA-256 fingerprint of the MP3 as published here, timestamped in the Bitcoin blockchain with OpenTimestamps. If one byte of the file changes, the fingerprint changes.
- SHA-256
f6af6401b676ee7a9300652c4aea6d40baafaa86196e542fe94cd1fb05e7418f- Proof
- 2025-02-26_s16_e10_eric_voskuil_john_carvalho_on_bitcoin_austrian_economics_-_24.02.2025_12.07.mp3.ots · all episode hashes (proof)
- Status
- Anchored in Bitcoin block 974,312
How to check it yourself
- Download the MP3 and the proof into the same folder.
- Run
sha256sum 2025-02-26_s16_e10_eric_voskuil_john_carvalho_on_bitcoin_austrian_economics_-_24.02.2025_12.07.mp3(on a Mac:shasum -a 256 2025-02-26_s16_e10_eric_voskuil_john_carvalho_on_bitcoin_austrian_economics_-_24.02.2025_12.07.mp3). The result must match the SHA-256 above. - Install the OpenTimestamps client (
pip install opentimestamps-client) and runots verify 2025-02-26_s16_e10_eric_voskuil_john_carvalho_on_bitcoin_austrian_economics_-_24.02.2025_12.07.mp3.ots. It hashes the MP3 again and checks the proof against your own Bitcoin node, then prints the block and the date the file existed by. Without a node,ots info 2025-02-26_s16_e10_eric_voskuil_john_carvalho_on_bitcoin_austrian_economics_-_24.02.2025_12.07.mp3.otsshows the block height to look up in any block explorer.
Related
S1 E2 Remastered: John Carvalho on Bitcoin Politics, the Foundation’s Failures & That Roger Ver Interview
(Recorded January 2019, remastered 2025. Sponsored by Helen’s Pizza in Jersey City, 183 Newark Avenue, where you can pay with…
S17 E11: John Carvalho on Bitcoin Depression, Lightning Derangement & the Atomic Economy
John Carvalho was the second guest in the history of this podcast, way back in season one, episode two, when he was…
S17 E38: Keagan McClelland on Lightning Metrics, Covenants, Consensus Politics & Verifying Bitcoin
There is a certain genre of Bitcoin Twitter argument that never quite resolves into a conversation. People trade metrics, memes…
Comments
Comments run on my own server. No ads, no trackers.