Pages:
Author

Topic: Why Bitcoin smart contracts are not developed? (Read 456 times)

legendary
Activity: 1680
Merit: 6524
Fully-fledged Merit Cycler|Spambuster'23|Pie Baker
Maybe you should (re-)read the replies to your topic. Some of the replies (especially those of @pooya87) explicitly mentioned "Bitcoin already has smart contracts" including some examples. So I disagree with your statement @gmaxwell explanation contradicts everyone elses.

Thanks, that's correct. I rephrased my previous post.
sr. member
Activity: 310
Merit: 727
---------> 1231006505
As you see, everybody else who posted here believed they did not exist (including me, which I asked why they don't exist) and they also offered reasons for which Bitcoin smart contracts don't exist yet. Thus, I can say that your explanation actually contradicts everyone else and I;m sure all of them are as surprised as I am to find out that the smart contracts exists.
Maybe you should (re-)read the replies to your topic. Some of the replies (especially those of @pooya87) explicitly mentioned "Bitcoin already has smart contracts" including some examples. So I disagree with your statement @gmaxwell explanation contradicts everyone elses.

Some of the other replies concern the fact that the current scripting language Bitcoin uses is limited, so in turn some type of smart contracts can not be performed in Bitcoin as of today.

So basically you got two types of answers: people pointing which type of smart contracts already in use using the Bitcoin Script stack-based language and people pointing out in oder to implement more complex Smart contracts the current scripting language is nowhere enough to get the job done. The one group doesn't contradict the other imho.

legendary
Activity: 1680
Merit: 6524
Fully-fledged Merit Cycler|Spambuster'23|Pie Baker
Bitcoin has smart contracts-- that is what script is.

This is why lightning can exist.

This is why escrow transactions exists (which weren't just proposed by satoshi, but are used by users!)

This is why multisig exists and is extremely widely used.

Bitcoin script is only less expressive than ethereum in there respect that access to transactions and the blockchain data is limited, that a few opcodes were disabled due to dos attacks and that there is a reasonable bound on execution resources.

The reason you may have an impression otherwise is a direct result of intentional fraud perpetuated by the creators of Ethereum, breathlessly hyping some "World Computer" nonsense early on to sucker people into buying coins from their 72 million coin (17 billion dollars at current prices) pre-mine.  Many of the things they marked (replacement for Facebook!) were obvious nonsense, and much of what wasn't nonsense was already possible in Bitcoin but their hype made it sound like it wasn't.
~snip~

Thank you for the thorough explanation, gmaxwell and also for getting involved in this discussion. It is a great honor for me to see such a great personality as you writing in a topic of mine - this is actually the first time (and hopefully, not the last). It is an honor to see that one question raised by me got under your radar and interested you.

Thank being said, your post bring things in a total different light, as you imply that Bitcoin smart contracts actually exists.

As you see, some of those who posted here believed they did not exist (including me, which I asked why they don't exist) and they also offered reasons for which Bitcoin smart contracts don't exist yet. Thus, I can say that your explanation actually shares more knowledge of this field and I'm sure that other members were as surprised as I was to find out that the smart contracts exists.

Thank you very much for this explanation and feel free to offer more details on this matter, if you have any.
full member
Activity: 616
Merit: 108
io.ezystayz.com

Therefore, why smart contract weren't developed by the core team which is developing Bitcoin?

Going through the mail draft, i can only thing of one reason why smart contracts isn't developed on bitcoin yet and it is due to the reason that bitcoin core values and purpose is creating a perfect  decentralized money that everyone uses for day to day transactions and so far, that vision is not yet achieved because the bitcoin network still have certain inefficiency like slow transactions, high fee charges, volatility e.t.c. we might see a shift towards smart contracts when bitcoin as money is a lot better than it current state
staff
Activity: 4284
Merit: 8808
Bitcoin has smart contracts-- that is what script is.

This is why lightning can exist.

This is why escrow transactions exists (which weren't just proposed by satoshi, but are used by users!)

This is why multisig exists and is extremely widely used.

Bitcoin script is only less expressive than ethereum in there respect that access to transactions and the blockchain data is limited, that a few opcodes were disabled due to dos attacks and that there is a reasonable bound on execution resources.

The reason you may have an impression otherwise is a direct result of intentional fraud perpetuated by the creators of Ethereum, breathlessly hyping some "World Computer" nonsense early on to sucker people into buying coins from their 72 million coin (17 billion dollars at current prices) pre-mine.  Many of the things they marked (replacement for Facebook!) were obvious nonsense, and much of what wasn't nonsense was already possible in Bitcoin but their hype made it sound like it wasn't.

That said: every time you create a new smart contract what you are actually doing is creating a novel bespoke cryptosystem.  That should be ringing alarm bells for you because almost always when someone-- even an expert-- cooks up a new cryptosystem the result is broken from top to freeking bottom.  Creating secure cryptosystems is among the most challenging domains of engineering.

Ethereum throws up a javascript like interface to enable maximum YOLO by the people least familiar with infrastructure engineering, they don't give a damn about the resource impact and have utterly obliterated the scalability of their system through poor design decisions (as a result the minimum hardware to keep up with Ethereum while it's doing *fewer* transactions than bitcoin, is literally orders of magnitude more-- and as a result  most businesses blindly trust consensys or another third party to give them access to a node).

But ignoring all those constraints doesn't make easier to write _SAFE_ smart contracts: experience has show that over and over again virtually all smart contracts on ethereum are absurdly vulnerable.  A smart contract to enable multisig there (functionality that bitcoin had widely deployed half a decade earlier) written by the authors of one of the most popular ethereum nodes was destroyed by someone simply sending it a command to delete itself-- instantly destroying two hundred and eighty million dollars of other people's coins.

Worse, very few "smart contracts" in ethereum have any reason to exist at all.  The vast majority of them are completely controlled by the decisions of a key holder (or sometimes a multisig of key holders).  The only purpose those smart contracts exists is decentralization theatre-- where people engage in something which is an unambiguous violation of securities law (and usually an outright fraud too) but then pretend it's okay because they falsely claim it's totally trustless and decentralized. Outside of those the next most common are trivial automated ponzi schemes and the like.

On the rare event where people want to actually do something interesting and worthwhile that doesn't just reduce to hiding a trusted third party the astronomical resource costs of doing in inside the EVM directly make it infeasible-- even in an exploration beta-test sense-- and instead they need to convince the operators of ethereum to hardfork the network to embed their critical inner-loop functionality in ethereum as a "precompiled contract".

Of course, Bitcoin can also be extended with new logic and much more simply and compatibility because it doesn't need to be hardforked:  OP_CSV, CLTV, P2SH, and Taproot are all examples of this.  (in fact, Bitcoin could provide an entirely new virtual machine in a softfork).

The issue isn't environment specific either.   It turns out that creating a centralized service is a LOT easier than creating a decentralized autonomous one, and while there is an easy way to monetize a centralized service a truly decentralized autonomous service is almost impossible to monitize-- so it's difficult to justify paying for all that extra effort. ... this makes the actual demand for real smart contracts fairly low which is why you haven't seen more done there.

I'd love to see an interesting neutral database (e.g. not created by some breathless eth pumper) that attempts to catalogue actually useful and interesting ethereum smart contracts to the limited extent that they exist.  Some of them are likely possible in Bitcoin currently, others would be possible with the addition of an opcode here or there.   A number of years ago I assigned someone working for me at blockstream to conduct such a study-- hoping to mine it for useful operations, and they mostly came up empty. I'm fairly sure that this wouldn't be the same today.

One of the things bitcoin developers have struggled with when it comes to adding opcodes is that while there is a multitude of interesting things that could be added, it is exceptionally difficult to justify sticking something in the consensus rules under a conjectural "maybe this will be useful".  There is a *lot* of functionality there which is essentially never used already. But this creates a bit of a chicken and egg situation because there probably is functionality that could be easily added, which people would use if it existed, but people don't develop the uses because it isn't there already.

So that's why you see that taproot creates a massive efficiency and privacy improvement for various multisig schemes and for some things like lightning-- which already have widespread use but it doesn't do much for other kinds of usage: it just isn't clear what that other kind of usage would need but it's clear what would benefit existing and related uses.

Another factor is that when something is sufficiently developed, you call it what it is, not the underlying technology.  People call lightning, lightning, they don't call it smart contracts just like someone calls a chess engine a chess engine (or its name like, stockfish) rather than "artificial intelligence".  The generic names are reserved for vaporware and stuff that doesn't really work but you hope it will someday. Smiley
legendary
Activity: 1680
Merit: 6524
Fully-fledged Merit Cycler|Spambuster'23|Pie Baker
I am posting hereby another quote from Satoshi, regarding "escrow transactions" -- something we can call as smart contract. It is obvious that he had that in mind while developing Bitcoin. Excepting the email sent to WeiDai which was mentioned in OP, he wrote the following lines right here, on the forum:

Here's an outline of the kind of escrow transaction that's possible in software.  This is not implemented and I probably won't have time to implement it soon, but just to let you know what's possible.

The basic escrow: The buyer commits a payment to escrow. The seller receives a transaction with the money in escrow, but he can't spend it until the buyer unlocks it. The buyer can release the payment at any time after that, which could be never. This does not allow the buyer to take the money back, but it does give him the option to burn the money out of spite by never releasing it. The seller has the option to release the money back to the buyer.

While this system does not guarantee the parties against loss, it takes the profit out of cheating.

If the seller doesn't send the goods, he doesn't get paid. The buyer would still be out the money, but at least the seller has no monetary motivation to stiff him.

The buyer can't benefit by failing to pay. He can't get the escrow money back. He can't fail to pay due to lack of funds. The seller can see that the funds are committed to his key and can't be sent to anyone else.

Now, an economist would say that a fraudulent seller could start negotiating, such as "release the money and I'll give you half of it back", but at that point, there would be so little trust and so much spite that negotiation is unlikely. Why on earth would the fraudster keep his word and send you half if he's already breaking his word to steal it? I think for modest amounts, almost everyone would refuse on principle alone.
sr. member
Activity: 2380
Merit: 366
From more technical side, some reason the community opposes smart contract on Bitcoin are :
1. High complexity, which could leads to bugs
2. Smart contract is only as smart as the creator
3. Increase node burden to store and verify the smart contract

Regarding 1, according to Satoshi, it wouldn't be too difficult... 2 and 3 are totally understandable.

This makes me think that had Satoshi not decided to leave everything about his creation behind, Bitcoin could have been more than just the kind of cryptocurrency that we experience right now. I'm sure Satoshi still had a lot of brilliant ideas which definitely include developing smart contracts on Bitcoin when he decided to vanish.

To those who are left with Bitcoin, before developing smart contracts on Bitcoin further or even thinking about it, Ethereum came and it was a big hit. It was sort of the answer to the question of what else could we do with cryptocurrency and blockchain?
hero member
Activity: 2268
Merit: 588
You own the pen
It is because there are lots of cryptocurrencies nowadays that offer that kind of contract, like Ethereum and others. If they will be developed it now, I think its too late for them because there are already lots of projects who have this kind of thing and theirs are already developed to the point that they only encountering fewer bugs from it. If the team who develops smart contracts for BTC is really sincere they won't hesitate to start it now but there must be some kind of reasons why they're not focusing on this one.
legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
Bitcoin can have "DIY smart contracts" (no code, no forks, no extra software) as in this example.

While you shared a bit interesting blog post, it doesn't utilize smart contract, let alone bitcoin script. If you're looking for example, you should check Rootstock instead, even though the smart contract happens on side chain.
sr. member
Activity: 310
Merit: 727
---------> 1231006505
Bitcoin can have "DIY smart contracts" (no code, no forks, no extra software) as in this example.
That example has nothing to do with a smart contract. A smart contract should be run/verified by every full node. In this example the private key gets published  Shocked Just because someone writes a blog and smacks in the word "Smart Contract" doesn't mean it is one.
full member
Activity: 1190
Merit: 117
Because the main purpose of Bitcoin is not to become smart contracts, the Bitcoin developers team prioritizes the goal of Satoshi Nakamoto
to make Bitcoin as a currency that can be used globally. Smart contracts platforms are better developed by altcoins like Ethereum and Tron
which is better technologically. Proven Ethereum is now a widely used smart contracts.
copper member
Activity: 193
Merit: 255
Click "+Merit" top-right corner
Bitcoin can have "DIY smart contracts" (no code, no forks, no extra software) as in this example.
legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
From more technical side, some reason the community opposes smart contract on Bitcoin are :
1. High complexity, which could leads to bugs
2. Smart contract is only as smart as the creator
3. Increase node burden to store and verify the smart contract

Regarding 1, according to Satoshi, it wouldn't be too difficult... 2 and 3 are totally understandable.

Looking at ETH and various bugs related with smart contact, i would say otherwise.
legendary
Activity: 2044
Merit: 1018
Not your keys, not your coins!
I think most developers just focused on Bitcoin's primary function, namely being a currency and also fighting off the hostile forks. Then suddenly the ICO's burst on the scene and every Tom Dick & Harry started to develop ICO's on Ethereum and people thought Ethereum is best suited for Smart Contracts. So Bitcoin developer accepted that and just kept on developing off-chain solutions for Bitcoin (BTC) like the Lightning Network.
I agree that any new and supplementary features for Bitcoin should be developed off-chain. Confirmation time should be fast and not congested like on-chain. Lightning Network is promising and people expect on it too much but years passed and there is neither much adoption nor success on Lightning Network.

When people don't have something, they ask for it but when they have it, they don't actually care to use it for their daily lives. I see some users on the forum don't know what is Segwit address and how to choose a wallet, and get a Segwit address. More people use Segwit address for their transactions but not all of them, it is life. Some will accept new technology, some will do not.
legendary
Activity: 3472
Merit: 10611
Well, that's a bit exaggerated Smiley I mean the car comparison. Cars were not designed to have ovens, but Bitcoin was created with the possibility of implementing these contracts. At least these were Satoshi's words...
it already has smart contracts. for instance each time you create a multi-signature, locktime, conditional,... scripts you are creating a smart contract. these are all aligned with bitcoin's purpose of being a currency. adding more capabilities for people to create things like cryptokitties is neither wise nor accepted.

Quote
Regarding the Bitcoin core team vs a third party team, by "core team" I meant the official developers of Bitcoin. Yes, they don't own it, but they are the official developers. Bitcoin has an open source, thus anyone can work on it, including that someone outside the core team can create smart contracts. But these are "third parties", not the core developers (such as Luke-jr, Greg Maxwell etc.).
again there is no such thing as "official" either. bitcoin is not a company to have an official representative. by using these terms you are centralizing bitcoin.
bitcoin is simply a protocol that has many implementations with one reference one called bitcoin core that is developed by a team of contributors that has changed and will change in the future.
hero member
Activity: 860
Merit: 1004
BTC OG and designer of the BitcoinMarket.com logo
Counterparty was probably the closest thing to having smart contracts implemented with bitcoin, if i remember correctly their EVM was compatible with ethereum so one could deploy the same solidity contracts with a bit of tweaking on Counterparty. I'm not sure how far along they got on with it tbh.
legendary
Activity: 2506
Merit: 1394
I also want to as guys if there is a smart contract on Bitcoin like what Ethereum have, is there any possibilities that the network of Bitcoin will be more clogged, and the transaction fees could be higher and more transactions there?
Because as what I saw and heard on Ethereum, they are also experiencing the high transaction fees due to a lot of transactions with smart contracts for sure.
legendary
Activity: 3024
Merit: 2148
I'm happy that Bitcoin doesn't have smart contracts in the same way Ethereum does, they only create hype and unrealistic expectations for everyone in the community, while failing to solve any real-world problems. When Ethereum was first launched, it was touted as world's computer, the idea was that soon every device will turn IoT, that centralized services will be replaced by decentralized ones, and it will all be thanks to ETH, but now 5 years later Ethereum's biggest achievements are lotteries, collectible tokens, and ICO scams.
legendary
Activity: 3906
Merit: 6249
Decentralization Maximalist
Smart Contracts do exist on Bitcoin, only not the turing-complete ones that are characteristic for the Ethereum blockchain.The Lightning Network, for example, is based on a kind of smart contracts. The same applies to other hash/time locked contracts, like Atomic Swaps.

For more complex applications, in the medium to long term, Simplicity could be added to Bitcoin. It's open source, not a "closed" third party solution. It's not Turing complete, but it would make the Bitcoin Script language a bit more "generalistic" and "self-extensible" (as Adam Back wrote), so there would be no need anymore to add a new opcode for every new language feature.

In this thread about Simplicity, gmaxwell has described it as "a much better direction for underlying systems for smart contract than other development we've seen". While he wrote that speculation about an implementation to BTC is "extremely premature", he seems to be positive about it, so maybe in a couple of years it can be added.

However, the scalability problem would remain. It has to be seen which kinds of contract could run at least partly using off-chain mechanisms like Lightning. Or maybe a decentralized sidechain idea (not a federated one) becomes reality.
Ucy
sr. member
Activity: 2674
Merit: 403
Compare rates on different exchanges & swap.
Perhaps satoshi being the architect behind Bitcoin and a creator who understands how things can be built on the network, has the goal to develop such feature in the future but the dream dissappeared with him. He probably left suddenly and didn't leave all/most of his ideas and plans to other members to achieve.
Pages:
Jump to: