Everything built on top of Bitcoin that you are aware of today is a result of the primitives that Bitcoin Script supports. What do I mean by primitives? The basic parts of a programming language that you can use to build real applications to do things. A programming language has never been designed specifically for a single application, i.e. building a single program. They are designed to support basic primitives, such as mathematical operations to manipulate data, or creating basic data structures to store data in a particular way, or operations to iterate through data as you manipulate it.
Basic principles are designed so that developers can decide how to use them to create a real application or program. The basic design of the language does not necessarily focus on what people will do with it, just that the main goals of the language cannot be combined in a way that does not 1) achieve what the developer is trying to achieve without they understand why, or 2) accomplish what the developer is trying to do in a way that is detrimental to the end user.
No one designs a programming language thinking from the start “Oh, we want to let developers do A, B, and C, but completely prevent them from doing X, Y, and Z.” (For the more technical readers here, what I'm referring to here is the goal for what the developer is building, not the low-level technical details like which primitives are combined).
Bitcoin Script is not different from other programming languages except in one way, what it means that a certain combination of priorities will harm end users. Bitcoin has two properties that general computer applications do not have, the blockchain and its execution must be fully verified by all users running a full node, and the overall progress of the a system secured by financial incentives that must remain in balance. Aside from these additional considerations, Script is like any other programming language, it should include any primitives that allow developers to build useful things for users that cannot be combined in the ways that harm consumers.
All the talk about softforks to add contracts (new priorities) has devolved, at least in the public square, to silly requests to use them. That's both not an easy thing to do, and also not an important thing to focus on. What is built with the Script is susceptible to the risks that must be investigated, as the issues raised interacting with the foundation is a major risk. What will be the costs, and how can these be limited? (This is a big part of the Restoration of Great Scripture compliments of Rusty). How can these costs on the base level attract incentives? This is a big part of the MEV risk.
These questions can be analyzed without carefully focusing on everything that could be raised by primitives. Prioritization at the base level can be limited by the cost of proof and complexity. More importantly, in terms of incentives, what new primates enable can be compared to what is already possible to build today. If new primers are just improving the trust model for end users of systems that can already be built that have an impact on the incentives of the system, without having a worse impact on the influence they have on these incentives, no real new risk is introduced.
These conversations need to start with a focus on what really matters, new functionality versus harm to end users. They have stopped almost entirely, again in the public square, not technical circles, to arguments about whether or not end users should be allowed to do things. That's not the conversation that matters. What is important is to provide valuable functionality to end users without creating negative impact.
People need to focus on the primates, not the wild geese they hear in the distance.
This article is a Take. The views expressed are entirely those of the author and do not necessarily reflect the views of BTC Inc or Bitcoin Magazine.
Source link