Hacker News new | past | comments | ask | show | jobs | submit login
Smart contracts on Bitcoin (avc.com)
214 points by rmason on Jan 14, 2021 | hide | past | favorite | 237 comments



Following the links down a hole a little bit I saw this statement: "Bitcoin is by far the largest and most secure blockchain"[1]

Sure it's the largest, but it seems ETH2 might now be the most secure. It (at current prices) has $2,400,000,000 staked in the network. Sure this is still in the league of nation states to corrupt, but the penalties for breaking the rules are _so much higher_.

Given that, and the fact that Ethereum is based around smart contracts, I find it hard to believe that this could compete with ETH2.

[1] https://blog.blockstack.org/realizing-web-3-proof-of-transfe...


having a lot of money staked doesn't mean it's secure. The security model of Bitcoin comes from proof of work, which most people complain as being waste. But it's not actually waste. It's secure because miners have to keep working hard and "wasting energy" because the network is worth protecting (and only if the network is worth protecting). With proof of stake, the stakers only need to make an investment once in the beginning, so it results in rich get richer, and the network is essentially "protected" by those who do not keep working hard to protect the ledger. This suffers from the same flaw that exists in the real world financial system. The whole system could collapse overnight like a domino if something goes wrong. It's much more unlikely for something like that to happen for Proof of Work because miners invest heavily in constantly innovating and investing back into the network. To summarize, in theory Bitcoin is secure exactly because miners "waste" energy. Without wasting energy, all the protection is just a mirage.


> The security model of Bitcoin comes from proof of work

This is not the security model, this is the consensus model. It's based on probabilistic finality, meaning that the probability that a transaction won't be reversed increases as more blocks are added on top. One major advantage of PoS is that it has "Absolute Finality" - after a certain amount of blocks, it's absolutely impossible to do a 51% attack. (See https://medium.com/mechanism-labs/finality-in-blockchain-con...)

Note that a higher hashrate does not mean more secure, it's a common falsehood. The security of bitcoin depends on the percentage of miners that are honest - this is mentioned the bitcoin whitepaper. Fortunately, the incentives align for the majority of miners to stay honest, and this is what the whitepaper predicted.


Exactly.

In addition, the Bitcoin proof of work is pretty much a proof of stake scheme in practice, where the stake are physical (specialized hardware and access to cheap electric power). So most of the GP's complaints about proof of stakes can be applied to bitcoin as well (“With proof of stake, the stakers only need to make an investment once in the beginning, so it results in rich get richer”).

And the biggest difference between BTC and ETH when it comes to “security” isn't “proof of work“ vs “proof of stake”, it's the fact that Vitali Buterin is alive and that there is an official centralized stewardship of ethereum, which in practice have led them to actually hard-fork the ethereum blockchain.


not only hard-fork numerous times, but also adjust monetary arbitrary policy.

It's just like any other fiat, and of course for such applications PoW is irrelevant.


Proof of work is not a consensus model, it's a method to elect a block author, an incentive mechanism designed to keep miners honest.

Consensus is the process through which the network agrees on state. Examples are Nakamoto consensus (e.g. Bitcoin), BFT (e.g. Tendermind) or GRANDPA+BABE (Polkadot).


I think the GP meant: “the security comes from a consensus, not from proof of work”.


I'm not sure of the argument -

  so it results in rich get richer
In PoW, the same 'rich get richer' applies - miners can buy more mining rigs and thus it compounds the same?

  miners invest heavily in constantly innovating and investing back into the network
In PoS, is this not exactly the same, if not even more true? Stakers are by definition highly invested into the network

  The whole system could collapse overnight like a domino if something goes wrong
Could you elaborate on this, why is this more likely in PoS over PoW?

PoW had decreased decentralization substantially to only happen in regions where electricity is the cheapest. PoS at least prevents this problem.


> so it results in rich get richer In PoW, the same 'rich get richer' applies - miners can buy more mining rigs and thus it compounds the same?

In theory, if and when proof of mining actually becomes the mainstream vehicle for global financial transactions, simply buying more mining rigs won't be enough. They will need to institutionalize and reinvest heavily into their infra. The mining rig that could find ten blocks yesterday may only be able to find one block tomorrow if the competition becomes fierce. Since it's a permissionless system, if one miner starts doing it and makes a lot of money AND Bitcoin gets accepted as a legitimate payment network, other companies will enter the space and the competition will accelerate. That can't happen with PoS.

> miners invest heavily in constantly innovating and investing back into the network In PoS, is this not exactly the same, if not even more true? Stakers are by definition highly invested into the network

The difference is in continuous investment vs. one time investment. With proof of work (again, assuming when these models actually work as designed), you will need to invest more and more into the infrastructure as a miner to stay profitable. As a result the entire network becomes more and more secure. But with proof of stake, the stakers do not have incentive to compete in this manner. With proof of stake, you can literally throw around money to gain influence over a network. With Proof of Work that's not enough because you have to "keep investing", so you need actual commitment to the future. That's much stronger security than a network made up of people who only care about the present.

> PoW had decreased decentralization substantially to only happen in regions where electricity is the cheapest. PoS prevents this problem.

This is like saying "Riding car is dangerous because people can get hit by a car and die. Walking prevents this problem." There's always a solution for every problem. Even the decentralization. The only reason why that hasn't happened is because the Bitcoin network is not worth that much when it comes to its value as a payment system. That doesn't mean there is no solution. For example, using certain clever hashing algorithm, multiple miners can specialize and only do things that each location is optimized for. Mining doesn't just involve hashing. You can generate revenue through including more transactions in a block, for example.


> With proof of stake, you can literally throw around money to gain influence over a network.

But can't you do the same with PoW. You just throw money at minners and buy their rigs or rent them for a good premium.


This guy is a clear bitcoin maximalist and is making exceptions saying that anything is good for PoW and taking that same thing and saying it's bad for PoS.


A Bitcoin miner that can 51% attack the network will need a huge factory full of mining rigs. A proof of stake miner who wants to 51% attack doesn't need that.


... and now you get to my point why I argued ETH2 is likely better on the security front.

Bitcoin needs a huge factory. ETH2 needs a billion dollars. I feel like a billion dollars could probably buy the factory you're talking about.

ETH2 also takes time to add new stakers to the network, but perhaps not as long as building the factory.

If you did this with BTC you'd cause a huge drop it the value of the network, and therefore your investment in miners

If you did this with ETH2 your investment would be destroyed by slashing, and the network might survive

... also keep in mind the Bitcoin factories already exist. You just need to buy one or two, or perhaps hack some of the mining pools.

I prefer the ETH2 semantics.


> Bitcoin needs a huge factory. ETH2 needs a billion dollars. I feel like a billion dollars could probably buy the factory you're talking about.

What you don't get is what comes after that.

In PoS, once you invest a billion dollars, you're set for life. In PoW, you invest a billion dollars but still have to keep investing more and more in order to survive. If you're complacent, a new upstart miner with innovative technology could swoop in one day with 10x more efficient mining method (it could take many forms, such as a closed source bitcoin node that does things much more efficiently yet still fully follows the Bitcoin protocol, or it could be a closed source hardware that they don't sell outside of their own mining operations, like Apple does with their own chips) This way the PoW network as a whole will keep evolving because of competition. In a PoS network there is no competition once you invest the billion dollars and it's a complacent network compared to a PoW network where everyone is constantly competing and comes and goes (those who can't keep up will get left out and leave). If you join a PoS network where someone has a huge stake collectively, you're basically joining a feudalist society where you're being ruled by a king. If you join a PoW network you're being ruled by entities that keep competing to show their competency. it's like the presidential election is going on for every block.


.. that factory full of rigs and a power plant with the capacity of Arkansas Nuclear One


That or maybe just a few colluding mining pools. The network is only 'secure' because mining cartels own most of the specialised hardware, increasing difficultly. ETH 2.0 starts to pool all that power back abit, by allowing others to compete for staking rewards.


All fine in theory, but the rich will find a way. BTC hasn't really been 51% attacked yet, so the attack vector was buy up all the commit devs.


I think you're missing the fact that with PoS, you can use positive _and_ negative incentives to incentivize desired behavior while with PoW, you only have positive incentives. Once you can slash bad actors for enabling a double spend attack, you can significantly change their calculus.


> the stakers only need to make an investment once in the beginning

> The whole system could collapse overnight like a domino if something goes wrong

IMO, these two things are one of the main points of tension which PoS uses to operate. The stakers have put up a significant amount of value, and it's in their interest to maintain that value by preventing things from going wrong.

Not only that, but they are actively pitted against each other -- it's in their interest to find any node that tries to violate the rules, and submit an attestation slashing the offender's stake for bad behavior.

There are also a number of incentives (such as the upcoming EIP-1559 upgrade) which are designed to align incentives so that cartel members are encouraged to break away for their own advantage.


see my comment in sibling thread. with proof of work, it's not just about money. proof of work mining forces miners to invest through future commitment, which means you can't just bring some one time money and gain influence. For proof of stake it's only about the present.


When you buy mining power you are bringing money in to gain influence. There's literally no difference so I'm led to believe there's a bias making you think there is.


what influence do miners have?


> it's in their interest to maintain that value by preventing things from going wrong

It's also in their interest to never sell anyone enough tokens that they could become rival stakers, which makes the system vulnerable to node or network failures. Fewer stakers means fewer nodes to disrupt to trigger consensus failure.


Ethereum 2 is very different. It is proof of stake (PoS). This reuses the proof of work of Bitcoin (so very different properties for how hard it is to change blockchain history). Also, PoS has some bootstrapping issues where a new node cannot independently (without trusting other nodes) verify the history of blockchains.

Scalability properties are also very different. Eth2 tried the concepts of sharding between <pick a number> chains. That has issues around added complexity between the shards and contracts needing to execute on shards where other data/logic they need is already available (so gravitational pull towards a mega shard). Stacks has no shards and scales horizontally. FWIW, Eth2 seems to be doing a slow move away from the sharding concept towards layer-2 like scalability as well. They disabled code execution for shards and using them more for data availability in latest iterations.


> layer-2 like scalability

Sorry, I'm not familiar with any blockchain layer model. Do you have a reference to the model this "layer-2" comes from? Clearly we're not talking about the OSI network model.


Layer 2 protocols are just those that operate "on top of" a base protocol, such as Lightning Network (on top of Bitcoin), roll_up (on top of Ethereum), or POA Network (also Ethereum).

(I would argue that the terms are imprecise though -- some protocols are described as operating "on top of Ethereum", but have their own consensus etc. which can function without Eth, so they could also be viewed as layer 1s with a bridge.)


My laptop is more secure than any cryptocurrency by a wide margin. The programming and security model of Ethereum is absolutely bonkers, with front-running bots running rampant and "smart" contracts getting their funds siphoned every day.

Remember the DAO? Man was that funny. I'm still shocked that that wasn't the end of this whole Bitcoin fad.

Let's not let big numbers obscure the fact that the model is fundamentally broken. You could spend a quadrillion dollars building a cryptocurrency and I could still get a faster and more secure system for $50 on eBay.


This is basically a bespoke blockchain that uses BTC as oracle. It's not a smart contracts "on Bitcoin". By this logic, I could write an ERC20 token on ETH and use some BTC state, and call it "smart contracts on Bitcoin".


Muneeb here, Stacks co-founder. So it does not use Bitcoin as oracle. It uses Bitcoin as a settlement layer. (Oracles like Chainlink can be, and are being, built using Clarity lang for Stacks blockchain itself.)

For using Bitcoin state on Ethereum, you'll need to implement Bitcoin SPV proofs. It's entirely possible but fairly complicated to do that given (a) Ethereum is a separate network that can fork independently from Bitcoin (Clarity contracts on Stacks fork with Bitcoin), and (b) Eth miners have no native visibility into Bitcoin state (Stacks miners have full visibility into Bitcoin state). Possible but more complicated. Further, any asset generation and transfers etc on such ERC20 asset would have nothing to with Bitcoin vs on Stacks all asset generation and transfers etc settle on Bitcoin and are secured by the Bitcoin main blockchain.


People are asking you why this counts as "on Bitcoin", and you've been saying throughout this thread it's because it has access to the Bitcoin ledger data. My point is that it pretty much sounds like you're using BTC as an "oracle" (and of course, you're using BTC as settlement, but that's a given, and also doesn't qualify as being "on bitcoin"). Stacks is a separate ledger that pegs itself to Bitcoin, not "on". "Smart contracts on Bitcoin" would be something that's entirely built on the Bitcoin ledger and every smart contract transaction is a Bitcoin transaction that settles.


What you are describing is similar to what Stacks 1.0 was i.e., directly on top of the Bitcoin chain -- a virtualchain. Every Stacks 1.0 transaction was a Bitcoin transaction.

The lessons we learned from that deployment for 2+ years is that (a) it doesn't scale that well and (b) it's very hard to modify Bitcoin and get new changes accepted (for good reason), so you end up with very limited scripting.

To fix the two limitations of Stacks 1.0, we worked on Stacks 2.0 which has a separate blockchain (so scalability independent of Bitcoin) where settlements still happen on Bitcoin and, more importantly, a full smart contract language without modifying Bitcoin itself: https://clarity-lang.org


You pretty much just explained why they're right and how it's not built in bitcoin.

Definitely not a fan how you're trying to bend reality for marketing benefits.


When I read "Smart contacts on Bitcoin", I though you have somehow encoded smart contract logic in a novel Bitcoin output script, and that this contract script is thus executed by the Bitcoin miners. If you just use the Bitcoin output scripts to store some data, I would make a better name for your product.


(No disrespect to your project) I’m a technical person, built lots of software myself over the years, run a large product team now...and I have absolutely no idea how to parse almost anything you said here. May as well be in Greek, the density of buzzwords is wild.

Everything in cryptocurrency is so obtuse and unapproachable for even otherwise-technical people, it’s pretty incredible given it’s been around over a decade now.


I mean if you spent decades running a large product team that develops accounting web apps, would you expect to be able to read and interpret a description of product related to bio-informatics, or neurotechnology?

If you spent decades working on video game graphics, would it surprise you that someone describing algorithms for sophisticated quantitative finance or high frequency trading use terminology you're not familiar with, including an abundance of words literally borrowed from the Greek language?

Information technology is an absolutely massive field that is finding more and more use cases every year, it shouldn't be a surprise that there are areas of it that you're not familiar with and would need to devote a substantial amount of time to become well versed.

As someone who has spent a decent amount of time understanding cryptocurrencies, it's not really all that much different from learning any other field. You can start with some Youtube videos, read a few blog posts, heck you can even spend a couple of weekends writing your first smart contract and deploy it to Ethereum to see how it works. My first side project on Ethereum was writing a decentralized poker game, I wrote a series of smart contracts based on the theory of Mental Poker [1] and deployed it to the test net, and then wrote a web front end for it that waited for a new block to get published, parsed it and displayed it. It was pretty cool, once you deploy your smart contract to the blockchain, it's kind of magical seeing a completely decentralized system of computers bring that code to life. Like once you deploy your code, that's it, it's entirely out of your hands from that point forward and there's this engine that takes it and keeps it chugging literally for as long as there are miners willing to operate the Ethereum network.

Everything is a mystery until you take the time to learn it.

[1] https://en.wikipedia.org/wiki/Mental_poker


I don't know if that argument works for finance on a moral level, where vocabulary has historically been abused to confuse and bamboozle


I sort of understand what's being said in this thread and I wouldn't say it's deliberately obtuse. A lot of ideas have been invented over the last decade and it's good that precise terminology exists to describe it. If you want to get into the minutiae of blockchain there's no shortcut.

And isn't it a two-way pegged sidechain?


I remember Counterparty (XCP) tried something like this a long time ago. Not full blown smart contracts, but things like asset creation (tokens) and decentralized exchanges like on Ethereum.

Anyway at the time they received a lot of pushback from some Bitcoin core devs and some threatened to block them over their use of OP_RETURN. Wonder how sustainable Stacks approach is in comparison? Don't know if it works the same way at all - but assuming they write some data to the BTC chain to ensure validity, etc.

You can read some of the drama here - https://www.reddit.com/r/btc/comments/80ycim/a_few_months_af...

I'm mainly curious if the BTC core devs still are apprehensive towards these Layer 2 projects. It is one of the reasons why I thought smart contracts on BTC were a dead end, and why I ultimately sold a bunch of BTC for ETH years ago.


We received some push back for Stacks 1.0 as well! And for similar reasons i.e., you don't want to put a lot of additional data into the Bitcoin blockchain (makes it much harder to scale Bitcoin that way).

This was the primary reason why for Stacks 2.0, a hard design requirement was to make absolutely no changes to Bitcoin and to not put additional data in Bitcoin.

With Stacks thousands of STX transactions result in a single hash on Bitcoin (technically on the order of active miners on Bitcoin), so Stacks transactions automatically settle on Bitcoin every block.


So stacks is a separate network with its own consensus layer where a random miner from the bitcoin main chain is selected to write the next block, have i got that right?

What happens when they write something the rest of the stacks network disagrees with?


Bitcoin miners have no role here. Anyone can sign up to be a Stack-miner by bringing in their own BTC into this network. That amount (in BTC) is distributed to those who have staked their Stack-tokens. A pRNG process (based on VDF or VRF) selects one of these miners at random to create the next block

Source: https://blog.blockstack.org/realizing-web-3-proof-of-transfe...

Edit: typo


Notably, Vitalik was run out on a rail by small blockers (mostly LukeJr) when he was trying to work on smart contracts on BTC back in the day. This is the entire reason he launched Ethereum, and took with him everyone else interested in working on smart contracts.

Smart contracts are neat. Bitcoin is neat. Smart contracts on Bitcoin could have been a thing, but now it's too late. There is almost zero intersection between BTC maximalists and people who think smart contracts on BTC are a good idea.


These are of course multiple well-publicized but zero-fact assertions used as propaganda to trick people into ethereum and other altcoin bags.


It's hard to believe people are still repeating these verifiable lies.


The narratives are designed to be earwormy, and everyone wants to live in a spy novel filled with scary conspiracies, so when they hear it, it slips in the backdoor cognitive holes, and they do only minimal "verification" if any at all, and accept it, and then repeat it. It's also very easy to blame an all-powerful adversary for all your woes—did you lose money trading?

Oh, that was gmax's fault.

Did you get scammed?

Oh, that was blockstream's fault. If they'd just did X, then the scam wouldn't have happened in the first place.

Did your friend tell you something secretive that "only he knows" and it's "not public knowledge"?

Well obviously the core devs are behind it.

The absurdity is great when the altcoiners are staring at Bitcoin's behemoth economy with jealous eyes amplifying the narratives they sometimes even know are totally false.

More insidious of course are the lies that are false but simple, where the factually verifiable truth is directly contrary but complex, like the foolish lie about gmax stealing credit, or Vitalik asserting that he was planning Ethereum until the core devs blocked him.

It's easy for outsiders to be infected via their usual lines and information feeds. And, of course, Bitcoin has no marketing department, so obviously defence thereof is a long, painstaking process of careful dismantling and debunking over a long period of time.

Thankfully, the actually helpful, intelligent, and ultra-competent people that are the safest to align with are people on whom these kinds of lies are basically completely ineffectual, so we tend to win, in that respect, just by default.


> .. now it's too late.

Perhaps it is too late for replicating existing use cases. However, the general idea of running EVM-like smart contracts secured by Bitcoin PoW (e.g. merge mined sidechains) is still quite attractive


Counterparty eventually adopted the EVM, and yet could not get traction for multiple reasons:

1. Network effects already on Ethereum

2. Bitcoin block time too slow and block size too low

3. Counterparty uses Bitcoin as a data layer, but Bitcoin itself cannot recognize Counterparty transactions, so Bitcoin consensus does not secure Counterparty transactions.


Only if you enjoy all of the negatives of EVM-like smart contracts including chain splits, gas problems, subtle bugs that could drive exchanges to insolvency, mass theft, broken multisig, the list goes on...


I don't enjoy the negatives. We'll move to better alternatives as they become available. Until then.. it's just like democracy or free markets.. no demonstrably superior alternatives yet


First off I recognize and appreciate your username :-)

As such, you should know more than anyone how heated the OP_RETURN drama got, and how ANYONE using the BTC chain for anything other than moving money from point A to point B is a complete non-started and will be unanimously opposed by the core development team.


:-) Yeah. There's some baggage there, but I was still surprised nobody wanted this username.

Core devs may not agree with what some users do with the system (current specs/features).. but as the Ethereum miners showed with increase in block size, core devs' philosophical objections may not matter in the end


Yup. Creator of Counterparty here. It's funny to think that if the Core devs hadn't be so incredibly resistant to people using the Bitcoin blockchain in unexpected ways, Ethereum wouldn't exist in its current form.

See https://twitter.com/vitalikbuterin/status/929804867568373760


Vitalik's claim is a lie. No "OP_RETURN wars" happened. It's a complete fabrication.

See https://twitter.com/notgrubles/status/1187470076833697794


I strongly disagree with the way that Ethereum was launched and the way that it was run---indeed Ethereum was a competitor of Counterparty's, with a polar opposite approach and ethos---but Greg Maxwell is the one that's rewriting history there.


I remember the hostility by certain Core devs to OP_RETURN being used for "ulterior" purposes. I remember the push to reduce the size of OP_RETURN to 40 bytes to sabotage smart contracts.

source: https://www.coindesk.com/developers-battle-bitcoin-block-cha...


Your Coindesk source is wrong, the limit was never lowered.

Here is the commit where it was raised from 40 to 80: https://github.com/bitcoin/bitcoin/pull/5286/commits/a930658...

If you believe if was ever lowered, show me the commit.

The Coindesk articles contains the phrase "OP_RETURN was originally meant to store 80 bytes of extra data in a bitcoin transaction". How do they know what it was originally meant to do? If it meant to do it, why wasn't it in the source?


The first comment in the pull request is: "The maximum size for OP_RETURN outputs used to be 80 bytes, then got changed to 40 bytes to be on the safe side. We have now been running with 40 bytes for about 9 months, and nothing catastrophic happened to the Blockchain, so I am proposing to increase it back to 80 bytes."

The commit that is referenced by this comment is "script: reduce OP_RETURN standard relay bytes to 40" https://github.com/bitcoin/bitcoin/commit/8175c790eb

There you can see that it was originally 80 bytes.


What do you mean by "originally"? It looks like it was introduced as 80 bytes here, so it had only been 80 bytes for a year or so: https://github.com/bitcoin/bitcoin/pull/2738

I recognize the commit where the limit was lowered, though I don't believe it was actually released before being raised again.


Lol are you honestly linking your own twitter as a source


Didn't you see the username? It's clearly not him =P


Sad to ear all that kind of stories, Governance is a real issue of bitcoin, and it is only gone get worst. I am OK with it, you just have to assume nothing will ever change with bitcoin.... ...as long as there is another place for changes happen. If you want change stuff you need governance, take a look at decred.


I don't think there'll be any issue since it's a separate chain and just submitting checkpoints to bitcoin so they can pretend they're a sidechain for marketing hype.


I came here to say that. Here's a super informative thread laying out those events from the perspective of one of the Decred developers.

https://old.reddit.com/r/decred/comments/6wxueo/your_best_pi...

TLDR: Smart contracts on BTC were intentionally strangled because it would necessitate bigger blocks.

At the same time, BTC core devs were gearing up to start their sad push in creating artificial scarcity on a perfectly functional blockchain by reneging on the agreement they made to increase the block size.

They traded their ideals to get rich and all that momentum was lost. Instead of peer to peer cash, we're all left with a thousand useless ponzi schemes and a handful of promising coins that can't work together to actually achieve Satoshi's goal.


At the moment the Bitcoin blockchain size is some 310 gb while the bitcoin cash blockchain, with its larger blocks, is some 180 gb. I just looked it up.

(I think I looked it up the last time I saw this argument too.)

(I also can't easily find it for BSV, the search turned up too many articles about how they're increasing their block size to 2 GB.)


I dont follow. What does the size of either of those blockchains have to do with the discussion?

What point are you making?


At the time there was the argument that larger blocks were bad because they would increase the size of the chain and prevent casual users from storing the whole chain and verifying it themselves.

I think the chain was already too big for casual users at that point!


Oh right. Yeah thats absolutely true.

I always thought the argument that full nodes should be inexpensive to operate made a lot of sense. But keeping blocks small would obviously lead (and clearly did) to transaction costs high enough to price out most people that actually want to use it.

Wait for the lightning network is an insulting reason to kill the p2p cash use case, which in my opinion is the only thing that makes the "store of value" use case work.


I'm not sure I've gotten a clear answer to this before, so someone please help me understand:

I can see how smart contracts might be useful in contracts that involve other assets that are directly connected in the same decentralized context (i.e., other bitcoin transactions or blockchain entities).

However, for anything else in the real world, they always (from what I've seen) require an "oracle" of some kind. True, that can be based on a consensus algorithm involving multiple parties in the real world, but it always ends up requiring trust that those real-world entities are playing by the rules. If we're relying on the good faith of real-world entities, how is a smart contract any better than a legal contract (a human would have to step in as the arbiter in either case)?


Smart contracts are mathematical contracts not legal contracts. They don't even have to be about IRL things. You could interact with a smart contract to, for example, change who can be authenticated to use a smart lock. Or you could have profile information about yourself in a contract, that can be changed.


Cool - glad you brought up the smart lock example. How does that work without trusting (presumably off-chain) software/firmware to honor the change as to who should be able to open the lock? The smart contract might be iron-clad in showing who should have access, but at some point, that has to be interpreted and executed by a real-world entity, human or machine.

In other words, standard contracts work just fine (without any lawyers involved) when everything goes to plan. It's the failure cases that matter, and it's not hard to imagine a compromised lock (or an entire company's locks if they're connected to the internet for access to the blockchain) that no longer respect the smart contract. So you're back to calling your lawyer to help sort out the mess.


That's definitely a good example of where things get tricky, but smart contracts are not a dispute resolution mechanism, they're part of a shared infrastructure.

If you use a smart contract you don't need to maintain any sort of backend at all. Your infrastructure costs are basically zero because they're baked into the cost of using the contract, which is paid on every transaction. You also get interoperability for free without having to build out any sort of API layer.

Smart contracts are not the solution to all problems but I think they have some really interesting use cases.


Your assessment is accurate. Crypto proponents paper over this, but don’t have an answer.

The part they say quietly is that the ledger supersedes the law and legal framework, and that’s clearly not how governments and their legal frameworks work.


They can't be about IRL things because those things cannot be verified in a decentralized manner.


Why not? The smart card and the lock are IRL. The smart contract knows who is allowed to open the lock. The lock can query the current state of the contract to check if the smart card being used on it is allowed to open the lock.

I have heard several stories by now of renters being defrauded by fake landlords. A smart contract could actually help. Decentralized would mean everybody can check who owns a property, not just the owner of some obscure property database.


Until someone secures a court order transferring ownership of a property, at which point the ledger no longer reflects reality. It's an awkward problem for any distributed ledger that wants to track something that isn't intrinsically defined by the ledger itself.


Sure, but that is the "ownership" problem, I was talking about the smart lock problem. Yeah I was talking about ownership - but having to verify that externally does not take away from the smart lock problem. I think the typical fraud went that way: previous renters pretended to be landlords and collected upfront money from prospective new renters. If for example only the actual landlord can grant access to the smart card (or NFC phone), it would be harder for previous renters to pull off that fraud.

Isn't there a public ledger of property ownership? In any case, there could be.

In my country, merely transferring property rights costs a lot of money. I know a friend paid 20k just for officials to make the entry in their book.

Blockchain could easily replace that.

Or the "property officials" could have a key and people could verify with the smart contract that some transfer has been signed by the right key.


There's value in digitizing 90% of the process and relying on as few oracles as possible. Right now your contracts are enforced by fallible, highly paid interpreters (lawyers) executing source code in printed form.


Right now contracts are enforced by lawyers who can interpret code that is not fully specified.

I would guess that hiring a contract developer to create a water-tight contract the computer is capable of understanding would be much more expensive than a lawyer.

This is in a similar vein to the fact that it's more expensive to have programmers create a perfect NLP app to translate something than it is to just hire a translator. Translating english into other languages is not a solved problem. Whether that other language is french or a smart contract does'nt seem that material.

It does seem like it will be much cheaper to make contracts in bitcoin that don't require translating thousand-line-english-documents into a smart contract.

However, you can already do that without a lawyer. If me and you sign a paper saying it's a contract that "I will pay you $200 for an item delivered on date X/Y, and if you're late I pay $20 less per day it's late", that's already legal and enforceable without a lawyer.

Coding that same thing in bitcoin would be harder than writing it on a paper still I think.


I'm sure creating the first spreadsheet application was more expensive than hiring an accountant. But not doing it 1 million times. Someone will make "contracts as a service" and competition will drive down the cost, until it's nearly free (as spreadsheets are today).


I think there may be a difference. Accountants are humans that are trying to be computers.

Smart-contracts are computers trying to be human. Most contracts are flawed and only really matter when things go wrong. I'd rather that a human be there when things go wrong to understand the human intent behind the contract than have a computer which does not know the human intent, but is able to enforce the (likely flawed) computational representation of that intent.


That's a tradeoff left to the contractual parties. The same human process that infers ill-specified intent can be corrupted to not execute that intent. If you want a human bootstrap, you hire a lawyer as an oracle which decides whether to process the contract specified in the blockchain.


Wouldn't that just make those few oracles an increasingly valuable target for manipulation/corruption?


Do you trust Amazon, Google and Microsoft or millions of sysadmins in podunk companies to secure their infrastructure?


> Do you trust Amazon, Google and Microsoft or millions of sysadmins in podunk companies to secure their infrastructure?

Of course not, and when they screw up, we lean on a robust (yet imperfect) legal system to intervene.

One of the advertised features of smart contracts is a reduced dependency on trust, so if they don't actually have that advantage (at least in relation to real-life interactions), then it's hard to say they're any better than traditional legal contracts for those use cases.


Hi! Larry, Founder of New Internet Labs, building in the Stacks ecosystem here.

Your understanding of smart contracts is correct - whenever smart contracts deal with stuff in the physical world you need to have an oracle.

In my experience over past half decade, there's been a lot of misleading information spread by people about smart contracts with schemes like claim to be a good use for smart contracts that suffer from oracle problems. A lot of this has come from naive people that just didn't other stand, but some has been spread by people looking to make others part with their money.

The way I think about smart contracts, is that if you need to trust someone in the real-world, by default you probably don't want or need a smart contract.

That said, there are a subset of such instances where smart contracts that depend on trust in real world entities have proven to be very useful. Wrapped tokens and stablecoins are an example of this - Tether being the most famous.


Tether aka the guys printing their own partially backed coin to enrich themselves with free Bitcoin, single-handedly increasing the Bitcoin volume to the current record heights in the process?

They are just now disclosing their finances to the feds, you might want to change your sales pitch...


For onchain purposes it can just be a matter of convenience, not a panacea or cure all


It is much cheaper to execute a smart contract.


We already have this. It's called WBTC and TBTC. Turns out it's way easier to port Bitcoin to Ethereum than to rebuild Ethereum on Bitcoin.


I'd argue the inverse.

It's easier to build more complex things on top of simpler primitives than vice versa. So a simpler base layer (say TCP/IP for the internet) opens the doors to more complex things on top (say http or JavaScript).

You don't want a Solidity bug (and there are many) to mess with the supply or ownership of Bitcoin. The limited/simple scripting language is there for a reason. It's easy to add complexity and more functionality at Bitcoin base layer: the decision to not do it is the hard (but in my view the right) choice.


I get you have a product to push, but I think we all know that's not true.


> Turns out it's way easier to port Bitcoin to Ethereum than to rebuild Ethereum on Bitcoin.

Technically that might be the case but in the real world you have network effects, inertia, and all kinds of other reason why it might be desirable to go in the other direction.

The ease has to be examined from the perspective of the system as a whole and not just the one component.


Stacks doesn't inherit Bitcoin's network effects except for mining security. No existing Bitcoin wallets or exchanges can make Stacks transactions, while many Ethereum wallets are flexible enough to support arbitrary tokens or smart contracts.


> except for mining security where did you see that? I don't think their security model has any connection with Bitcoin mining. They are not merged-mining with bitcoin


I believe they're using checkpoints similar to the security service that komodo was offering to other chains.


The system selects one of a set of competing miners to produce the next block via a VRF whose state is recorded to Bitcoin OP_RETURNs. There is at most one Stacks block per Bitcoin block, and the probability of winning is proportional to the relative amount of BTC burnt or transferred.

The system's design is well-documented via the SIP process. See https://github.com/stacksgov/sips (you'll want to read SIP-001 and SIP-007 in particular).


Right now the average transaction on the bitcoin chain is almost $15. That's double the cost of the hard drive space to store the entire blockchain (if you really want to).

No sane person would build on top of bitcoin or use anything built on top of bitcoin. It was taken over then redesigned to be a disaster and now it is.


You are exactly right. The Bitcoin Core GitHub repo was hijacked years ago by Greg Maxwell's and Adam Back's Blockstream.

Until more people understand the history of Bitcoin Core (BTC) they will continue to be confused about the high fees and slow confirmation times.

[1] https://medium.com/@johnblocke/r-bitcoin-censorship-revisite...

edit: looks like you are getting downvoted too for telling the truth about Bitcoin Core.


The Bitcoin Core (BTC) market is pushed forward only by fraud (Tether) and lies (censorship of BitcoinTalk and r/Bitcoin).

The Bitcoin Core project was hijacked and socially engineered away from the lead developers many years ago by Adam Back's Blockstream. Today it is a Ponzi scheme designed to push people onto their "second layer" solutions to "solve" the problems they themselves introduced.


Any hard evidence you can point to?


This isn't actually controversial for anyone who got interested in bitcoin before Gavin Andreesan was kicked out and /r/bitcoin was taken over and heavily propagandized.

https://medium.com/@johnblocke/a-brief-and-incomplete-histor...


Evidence that Tether is a fraud [1] and that BitcoinTalk and r/Bitcoin censor[2]? Yes, there is endless evidence of both. Funny that the truth about Bitcoin get downvoted so hard here, I thought HN liked to be objective about Crypto.

[1] https://newrepublic.com/article/160905/tether-cryptocurrency...

[2] https://medium.com/@johnblocke/r-bitcoin-censorship-revisite...


The problem with Ethereum is that if the guys in power do not like what is going on in their blockchain, they fork and rewrite history.


Oh for the love of science, GIVE IT A REST.

ETC exists, if you don’t like ETH go use ETC, the community voted with their wallets, ETH won, give it a bone already


>the community voted with their wallets, ETH won, give it a bone already

Isn't this the exact problem? That the blockchain isn't actually immutable and community will step in to revert transactions?


It happened when Ethereum was less than a year old. The hack exploited a vulnerability that was arguably systemic, since it also existed in a lot of the sample code on ethereum.org.

When Bitcoin was a little more than a year old, it reverted five hours of transactions after a bug exploit.

Both blockchains have matured since then and don't do that anymore. An Ethereum cofounder's company lost over $100M in ETH, and the community refused its requests to restore funds with a fork.


Maybe under very exceptional circumstances, i.e. a systemic network risk. Since the DAO fiasco we've had a number of high profile incidents and the community has rejected stepping in (look at the failure of EIP 999). I'm not sure if there's presently anything on Ethereum, that should it fail, would be as bad as the DAO failure. Maybe MakerDAO?


>Maybe under very exceptional circumstances, i.e. a systemic network risk.

that sounds awfully like the justification for bank bailouts.


I think they meant more system technical risk than financial. as in, a change to prevent bypassing private key checks, or minting quadrillions of BTC / ETH beyond the issuance schedule.


If they didn't go forward with the DAO fork, I'm not sure Ethereum would even exist today.


Blockchain is just the tech to get consensus, consensus built by a community can change and does not have to be immutable.

So no, not a problem unless you are a fundamentalist.


Why bother with an "immutable" ledger then? Why not just have people vote on what the current state of the network?


How do you get people to vote in a way that actually decentralized and trustless? IOW, how do you build consensus about what the total vote count is?


I mean, no? There are two cryptocurrencies, ETH and ETC, and apparently most people think it's fine to revert a transaction for the reason ETH reverted it. The only problem is that people posit "but it's a problem when transactions are reverted, and, look, ETH reverts transactions!", which assumes the problem even though the assumption doesn't really seem to hold.


>The only problem is that people posit "but it's a problem when transactions are reverted, and, look, ETH reverts transactions!", which assumes the problem even though the assumption doesn't really seem to hold.

But if all we cared about is the "right" thing to be done at the end, why bother with smart contracts? Why not use the courts?


I'm not the right person to ask, as I don't believe that there's a way to somehow make software bug-free enough to deal with huge amounts of money for an indefinite amount of time. However, it seems that enough people think that "do the right thing automatically unless someone steals millions, in which case revert it" is a good compromise.


Smart contracts are defense in depth on top of the courts. Neither is perfectly foolproof.


If you want to move fast and break things, choose ETH.

If you want to move slow and never break things, choose ETC.


One of the best features of cryptocurrency is that other people cannot simply vote to take your money away.


Well the true genius of Eth was making choosing the fork the default option. So no, there isn't evidence that the community intended to accept the fork.


The default option was chosen by community vote. http://v1.carbonvote.com/


I think there is no point in "giving it a rest".

If there is a decision to be made between two specific blockchains, it is important to point out that one of them is not trustworthy.


All blockchains are secured by trust in the developers. Proof of work is merely a way to buy their token from a power company. All of the problems with have with online contention, will manifest in blockchain for this reason.


You have pretty selective memory: https://coincodex.com/article/3669/the-184-billion-btc-bug-t...

Fundamentally blockchains are about consensus, they have a mechanism to obtain consensus programatically but this programatic consensus can always be overriden if the participants decided to run a different version of the software. To be noted that the guys "in power" are the miners, the developers can only put forward a new version of the rules but the miners decide what they want to run.


So this assumes there is pent-up demand to use BTC as part of smart contracts that is not yet met by WBTC on Ethereum. I don't see anything that would validate that assumption.


Especially since everything else is on Ethereum anyway. Since this is just a layer 2 solution, you might as well treat Ethereum as a layer 2 for Bitcoin.


99% of Bitcoin remains passively outside of smart contracts. Only about 5B on Ethereum. This can be a fairly large market and we're in early days. More use cases don't need to take anything away from Ethereum!


Maybe that's because 99% is purely held to speculate on the price going up?


In the following order of nuance, the 99% of Bitcoiners:

Don’t know about this

Don’t like the idea of any other distributed ledger attracting capital away from Bitcoin purchases

Don’t know the Ethereum platform is different than any other “altcoin”

Don’t like Ethereum based on valid or fictional criticism

Don’t like WBTC

Don’t like renBTC in its current state

Know about all of this, don't mind it, are not interested in complex transactions, are not interested in turning their bitcoin into an interest bearing asset

The growth to the 1% has been pretty good and fast! Billions of $ of BTC on this stuff over just the last two quarters. Isn’t that how every startup pitch starts? “If we just get 1% of this market ....”


As someone with only a cursory knowledge of wbtc and renbtc, what are the issues that people see with it?


WBTC is essentially custodial. A couple partners hold some multisig keys on all Bitcoin that is deposited to be minted on Ethereum as WBTC. It is mainly BitGo, Kyber Network and Republic Protocol (Ren, the same people behind renBTC). WBTC requires KYC with BitGo to mint and redeem. Centralized, custodial, a few distributed key holders. Feature complete, so its not changing. Institutions like that actually, so it is pretty popular.

renBTC is by Republic Protocol, through their main product RenVM. RenVM allows holders of the REN token to stake 100,000 REN to create a "Darknode", which process all the minting, burning and storage of assets that go between chains. renBTC is Bitcoin to erc20 Ethereum. There are various other assets the Darknode holders process and earn. The amount Darknode holders earn in dollars has been increasing around 20% per month. The issues with RenVM and renBTC is that is actually hasn't reached that state. The darknodes do earn, but the current state does not use the darknodes for the decentralized storage of assets, instead, the Ren team has 12 keys stored around the world and requires collusion between the people on the Ren team to compromise. Now, some people call this is criticism, but this is still better than exchange cold storage which people already trust with billions of dollars of assets. For example, Gemini Exchange (Winklevoss Twins) brag about how their cold storage is 3 keys stored around the globe. lol, only three. People's concern is that while in this current state, the Ren protocol's geographically distributed team can be compromised by a government. Doubtful because nobody in one country has all the keys, and they are quickly speeding towards upgrading away to putting all processing on the darknodes. Anyway, for earning fees as a darknode its current state is quite unique, for users it is a stopgap solution (and not unique enough for BTC on Ethereum) as their bridge simply has more assets and doesn't require KYC or impose any limitations. Both the current and future iteration is using MPC cryptography for security. And again, their team is part of the mastermind behind WBTC. Darknode holders evangelize renAssets and get them into various other DeFi projects, which causes more people to want to mint and burn RenAssets, mostly renBTC so they can earn interest on their bitcoin. As you can see by this thread, many times renBTC is not mentioned at all. But it is the second largest Bitcoin on Ethereum. RenVM is not limited to minting assets onto Ethereum, they have or will be rolling out bridges to other chains as well, to Darknode holders delight.

there are competitors to renBTC such as tBTC, which aims to chisel at just the trustless BTC hegemony and not much else. Its growing decently.


99.9%

even the defi community will admit that 85%? of the "lending" that's taking place is to make crypto people more money lol


Use of WBTC requires you to trust an intermediary to hold your BTC, not exactly the same as native BTC smart contracts.


Native smart contracts would be cool, but Stacks is not native smart contracts. It's a separate blockchain that integrates with the Bitcoin blockchain.

In other words, you are trusting the Stacks blockchain to custody your bitcoins, just like with TBTC or RENBTC or any of the other decentralized Bitcoin bridges.

From their site:

> Like Bitcoin, Stacks is a layer-1 blockchain. Proof of Transfer connects it to Bitcoin with a 1:1 block ratio.


That still feels better than trusting another blockchain (ETH) and a custodian.


Personally, I'd rather trust an established blockchain plus a decentralized custodian system than trust a fledgling blockchain.


Take a look into https://badger.finance/ which is the next generation of this.


What about the fact that the core ethereum team revealed that they’d reverse a smartcontract with a hard fork when members of the core team make an expensive mistake in one while bitcoin has no such culture?


This is a very broad and general sentiment. Do you have the source where they talk about this, so that things can be put into context?


This is canon and dates to the original DAO. A quick google on DAO crisis should give you a bunch of reading material.

Compare that to the time Binance lost $500M in BTC and contemplated doing a chain revert because it would be way cheaper than $500M but didn't because it would break the illusion that BTC tx are irreversible.

BTC tx are reversible, it's just going to become prohibitively expensive for almost anyone to do soon.


That is rather misleading to use as an example... It's widely regarded as a one time thing that was agreed upon partly because the system (and testing tools) were so new at the time.

Bitcoin had a bug that was required an organized chain reorg back when it was early as well, but it's not regarded as fatal to putting trust in the chain now (search for "bitcoin value overflow bug", was kinda interesting)

More recently, Parity, one of the main developers of one the Ethereum clients, had millions locked up due to mistake in their smart contract code. They complained loudly, tried to get another roll back, and finally gave up... The overwhelming concensus was that Ethereum is no longer alpha grade, there will be no take backs ever again.


To be clear, I wasn't asserting that Eth was less valuable as a result of the DAO reorg (quite the contrary actually). I was merely pointing out that a reorg occurred.

Thank you for the education on the bitcoin reorg, I didn't actually know that and agree that it's orthogonal to the trust narrative now.

My broad point was that the trust is not in the code, it's in the community and their policies.


> the trust is not in the code, it's in the community and their policies

I can heartily agree with that.

That's why I think having the "layer 0" social consensus of a network aim for maximum clarity, so participants have as few points where there's three potential for surprise disagreement later.

Ethereum is very strongly "no abnormal state changes" starting with the Parity issue. I think there have been a few more similar cases of contract bugs, some even involving client devs, and any suggestion of a new fork has met with strong opposition from all ends of the community.

Another thing I think is useful for a blockchain is to have multiple independent clients... It helps prevent devs from having outsize voice in discussion (though the users and the node runners are always the final vote).

I think working out the meta structure of how to work these social level contracts is definitely something the whole cryptocurrency industry needs to work on.


Moving bitcoins to Stacks is easy, since Stacks reads the Bitcoin chain. But how do you move them from Stacks back to the Bitcoin main chain? Since Bitcoin clients aren't aware of Stacks, it's difficult to see how that would work without trusting someone to issue the correct transaction.

I looked over the Stacks site and didn't see a clear answer to this question.


Muneeb here, Stacks co-founder. Great question. You are right that Clarity smart contracts have direct visibility into Bitcoin, so you can write a contract that has logic triggered by pure Bitcoin transactions.

Moving Bitcoin to Stacks is a bit more complicated and there are several ways:

a) Wrapped assets. Tokensoft + Anchorage (custodian) have a solution that they're calling xBTC where a "wrapped Bitcoin" is issued on the Stacks chain. Such wrapped assets exist on other chains like Ethereum as well with one main difference that xBTC is secured by Bitcoin itself.

b) There are more decentralized solutions similar to Keep network, where threshold signatures can be used to move the assets by a group of nodes.

c) The most decentralized way of doing this is by locking your BTC directly on BTC chain, using Clarity to monitor funds, and then having Clarity trigger release of funds on Bitcoin chain. This requires Clarity logic to trigger Bitcoin state changes. This is theoretically possible but at R&D stage currently.


Bitcoin to Stacks is supposed to be the easy part...

The question was about how you move Stacks to Bitcoin.

I take from this handwaving answer that it isn't actually possible.

Or let's rephrase the question in Bitcoin terms: While the BTC are locked up on the Bitcoin blockchain, which key is necessary to unlock them? Surely one controlled by Blockstack, no?


You'd need a STX-collateralized relay service that would trade your xBTC for real BTC. The collateral would be burnt over time if the service misbehaved, such as by not doing outstanding trades in a timely manner. The collateral itself would live in a Clarity contact so it could validate proofs that the service sent BTC to xBTC sellers.


There sure is a lot of different stuff named "xBTC"....


Thanks for joining this thread.

What exactly do you mean by "xBTC is secured by Bitcoin itself?"

Do you mean that Stacks writes out its own block hashes to the Bitcoin blockchain, or something?


> Do you mean that Stacks writes out its own block hashes to the Bitcoin blockchain, or something?

Yes; the entire history of attempts of mining Stacks blocks, as well as the entire history cryptographic sortitions that select Stacks blocks (including forks), is written to the Bitcoin chain. See SIP-001 for details: https://github.com/stacksgov/sips/blob/main/sips/sip-001/sip...


> c)

Is this fine with p2sh?


You have to trust the Stacks blockchain to be able to send the money back to Bitcoin.


What kind of actual real world use-cases has ethereum's programmable "contracts" enabled? It's been out there for a while yet I fail to see where it made an impact.


DeFi is where it's really taking off. The things we were promised in 2017 are finally starting to come around. I recommend looking at Synthetix https://www.synthetix.io/. They're doing some really cool stuff with synthetic assets.


That, and also many projects rebranded and also pivoted!

Most of them are interoperable with each other instead of trying to be unique and original, which has sparked something analogous to the Industrial Revolution over the last year.

For anyone else passing by, on the technical side, this is because of the "composability" concept coming to fruition in early 2020, the idea that outputs from one team's smart contracts can be used as the inputs for a different team's smart contracts.


I agree it's hard, outside of finance, to find interesting use cases. One use case that I personally enjoy was the use of smart contracts to enable the building of decentralized ISPs[0].

[0]: https://althea.net/


* decentralized DNS (ENS) which supports IPFS

* privacy technology (tornado cash, AZTEC)

* DeFi (MakerDAO, Uniswap, Compound, Augur, etc)


One of the most exciting upcoming topics on the Avalanche (sorry, not Ethereum) ecosystem is ILOs (Initial Litigation Offering). Initial Litigation Offering is a blockchain-enabled token that would give investors access to a portion of payouts from lawsuits.

https://www.coinspeaker.com/first-ilo-launches-avalanche/

I think we'll see many more of these in the future.


Maybe next they can expand into Initial Narco Offerings, Initial Human Trafficking Offerings, and eventually Initial Genocide Offerings.


There is decentralised finance (defi). One example of application is lending your money (in stablecoin or token format) in a lending protocol of your choice. You can expect a very good yield compared to traditional finance. Aave and Compound are the most famous. This is one type of the many financial applications developed on Ethereum's smart contracts.


Typically when I see that said, its impossible to tell if someone genuinely has no idea or if they have a comprehensive view but move the goal post of “use case” for arbitrary reasons

Do you want to be inspired and be part of that ecosystem, or do you want to drone on about how you could do any example use case some other irrelevant way that nobody can interact with


Third party temporary reading for medical datas. For instance any kind of temporary access for something you need to keep private most of the time might be achieve through smart contracts.


Game assets/virtual trading cards


On a first skim it looks like a bespoke blockchain that commits its state to the bitcoin blockchain to ensure finality. Seems kind of neat, but I wouldn't call it "smart contracts on bitcoin".


Layer 2 seems to be the logical way forward - network fees have gotten ridiculous on the Bitcoin blockchain, and reducing the frequency with which you need to settle there would be a big win. On top of all the added functionality of smart contracts, of course.


Please, don't forget, Bitcoin Core (BTC) was hijacked years ago by corporate interests and purposefully crippled with high fees.

From day one Bitcoin was designed to have low or no fees, it is only because Blockstream was able to wrestle control of the GitHub repo and stop the block size increase arbitrarily that high fees exists.

Bitcoin Cash (BCH) long ago took over the "Bitcoin" project as designed by Satoshi Nakamoto and described in his White Paper. Bitcoin Core (BTC) is a broken system designed to enrich developers of "Second Layer" solutions like this.

BTC has failed completely as Peer-to-Peer Digital Cash and today is push only by charlatans and scammers.


>From day one Bitcoin was designed to have low or no fees

How are miners supposed to be compensated, given that the block reward halves every few years?

>because Blockstream was able to wrestle control of the GitHub repo

Can you rebut these counter-claims made by one of the Core devs? https://news.ycombinator.com/item?id=25566420

>is a broken system designed to enrich developers of "Second Layer" solutions like this.

How are those developers being enriched? Lightning is free and open source.


> How are miners supposed to be compensated, given that the block reward halves every few years?

A solved problem by Satoshi. The block reward covers miners expenses for the next 100 years or so, THEN, once the block size is large enough and transactions are in the millions, a fee of a few cents per transaction replaces the block reward.

> Can you rebut these counter-claims made by one of the Core devs?

Yes, easily. This article [1] shows what I am saying, Core devs are funded by Blockstream. [2] Greg Maxwell (nullc) is, "a very dangerous individual whose [actions] speak for themselves". Just read about his past, he is a master social engineer and manipulator.

[1] https://www.theblockcrypto.com/linked/60250/bitcoin-developm...

[2] https://www.reddit.com/r/btc/comments/74se80/wikipedia_admin...

> How are those developers being enriched? Lightning is free and open source.

Lightning does not work. It is a centralized "solution" to a decentralized problem. Sure, anyone can make a central database, hold Bitcoin and trade them, that is just an exchange, that is what Lightning is. What Blockstream is selling is not Lightning, their product is called Liquid.


>Yes, easily. This article [1] shows what I am saying, Core devs are funded by Blockstream.

You clearly didn't read the linked comment because the article doesn't have anything to do with the arguments presented.

>Lightning does not work. It is a centralized "solution" to a decentralized problem. Sure, anyone can make a central database, hold Bitcoin and trade them, that is just an exchange, that is what Lightning is.

How is lightning centralized? You can transact with anyone you want, and you maintain a "tab" with them, which can ultimately be settled up on the blockchain. You can also route payments to anyone else on the network.

>What Blockstream is selling is not Lightning, their product is called Liquid.

Okay, how are they monetizing it?


> The block reward covers miners expenses for the next 100 years or so

No, it does not. It becomes insignificant in just a few decades (getting 32x smaller every 20 years). So a constant backlog of high fee paying transaction is important to long term security [1].

[1] https://bitcointalk.org/index.php?topic=5306354.0


Yeah, in about 70 years, the block subsidy for the entire year will only be 0.01373184 BTC. I highly doubt that would be enough to guard almost 21 million BTC from double spend attacks. That's the equivalent of spending $70,000/year to guard all the gold that's ever been mined.


>he is a master social engineer and manipulator.

Lol, I think we all just learned everything we need to know about your POV.


lol.

https://taaalk.co/t/bitcoin-maxima-other-crypto-things

Transactions need to be expensive, like the guy you were replying to said. It is beyond obvious.


Please, don't forget, Bitcoin Cash (BCH) was hijacked years ago by Ver who purposefully used misleading marketing.

Bitcoin SV (BSV) long ago took over the "Bitcoin" project as designed by Satoshi Nakamoto and described in his White Paper.


The smart contracts part comes with Clarity lang: https://clarity-lang.org/

Clarity contracts have direct visibility into Bitcoin state and can write logic against that.


How useful is it to have a read-only glass window into Bitcoin that your smart contracts can look through?

The only practical application I can think of is atomic swaps, which can be accomplished any number of other, easier ways.


It means that Clarity smart contracts always have all the data they need to validate Bitcoin transactions. Unlike wBTC and friends, there's no need to copy header hashes from Bitcoin into the Stacks chain. By extension, this means there's no need to worry about catastrophic corner cases, such as the copied data being missing or invalid, the copied data not being mined in the canonical fork, or the copied data corresponding to a minority Bitcoin fork.


Interesting. If you don't mind, what's an example of a practical application where it would be useful to validate a bitcoin transaction without the ability for a smart contract to custody it?

Just asking because, again, the value proposition in practical terms is a little unclear to me.


Well, the intended use-case is to make it so the act of transferring BTC to a particular address will cause xBTC tokens to be minted in a Clarity contract by the principal that sent the transaction. From there, you can move the xBTC tokens around in Stacks.

This would be paired with a STX-collateralized service that would ultimately let you trade your xBTC back for BTC. The service would put STX up as collateral, which would be depleted if the service quality degrades. The Clarity contract for the collateral would track the service's xBTC to BTC transfers, and would allow the service to post the BTC transactions it sends as proof of good service quality (thereby staving off depletion).

Other ideas come to mind:

* Proof of (attempted) mining a STX block. A Blockstack app could use a Clarity contract to determine if a user was also a miner, and offer them in-app perks for helping to secure the network.

* Backwards-compatibility with BNS 1.0. Stacks 1.0 implemented a naming service (BNS) on Bitcoin, and Clarity's access to Bitcoin state can be leveraged to allow users to prove that they are OGs -- i.e. that they registered a BNS name before Stacks 2.0 went live (or did something specific with it, like updated it to have a particular owner or have a particular content hash).

* Proof of payment to a particular address. Many organizations, including open-source projects, take BTC for donations. A Clarity contract could be written to identify Stacks users who donated to a particular organization earlier.

* Proof of payment channel. You could demonstrate to a Clarity contract that you have opened a payment channel with a particular amount to a particular address, and post collateral that will be slashed if your payment channel closed before a particular Bitcoin block height.


Curious to understand how the peg integrates with Bitcoin's UTXO model. For instance, Matic [1] uses a construction of the Plasma framework [2] so that the peg can operate bidirectionally.

[1] https://docs.matic.network/docs/contribute/matic-architectur...

[2] http://plasma.io/


I've moved off the ideological train and hopped on the "can the market bear it" train.

The market can bear committing states to the bitcoin blockchain, and there hasn't been a standardized way to do that. I would therefore call it smart contracts on bitcoin.


Contrary to the headline this appear to be a separate blockchain that is merely linked to the Bitcoin blockchain. See https://www.stacks.co/technology


The Clarity smart contracts have direct visibility into Bitcoin state and developers can write logic around it. I do not think the headline implies you are changing Bitcoin to do this (don't think at this point anyone can change Bitcoin in any significant way).


I'm building Uniswap on Bitcoin Cash. Feel free to check out: https://devpost.com/software/swapcash

Same can also be potentially done on Bitcoin (BTC) with BIP-Tapscript.


So it's a sidechain that ocassionally checks in it's state to bitcoin's main chain? And you can lock up BTC on the mainchain to use it on the sidechain?


The design can be thought of similar to a side chain but it's not really a side chain. It uses a new type of consensus, called Proof of Transfer (PoX). Stacks miners have visibility into both the Bitcoin chain and the Stacks chain. Leader election happens on Bitcoin and winning leader writes blocks on the Stacks chain. Details: https://blockstack.org/pox.pdf


In essence, yes, it's a sidechain.

From their site:

> Like Bitcoin, Stacks is a layer-1 blockchain. Proof of Transfer connects it to Bitcoin with a 1:1 block ratio.


Not really. The key difference is the degree of involvement Bitcoin miners have in Stacks mining. In side-chains, Bitcoin miners would need to opt-in to mining the side-chain and validate its blocks. In Stacks, Bitcoin miners only need to include the Stacks miners' block-commitment transactions into Bitcoin blocks. Since block-commitment transactions look like normal BTC transactions, no Bitcoin miner involvement is necessary beyond what they're already doing.

The full protocol description can be found in https://github.com/stacksgov/sips (see SIP-001 and SIP-007 in particular).


How much does it cost to interact with it? On an Ethereum smart contract if I wanna purchase a NFT that costs $5 the transaction cost can be between $1 or $100.


Off-tangent, but Immutable, the makers of Gods Unchained, is coming out with ImmutableX for trading NFTs on Ethereum at fees of less than a cent:

https://www.immutable.com/

This uses StarkWare's new Turing Complete programming language for generating STARK proofs (which are succinct zero knowledge proofs that have a trustless setup).


Clarity, at least on paper, sounds way nicer than Solidity. We'll see how it ends.


Check out Vyper if you haven't already. It's a newer alternative to Solidity that removes a lot of Solidity's cruft while still targeting the EVM.


This is not on Bitcoin, but a seperate network with its own token (STX) that is secured by "Proof of Transfer" - see https://www.stacks.co/

Also, it could, in theory, be attached to Ethereum too, and probably more trivial to do. These networks come with their own security guarantees, trade-offs & governance pitfalls, but unfortunately do not mention these on their home page of their shiny professionally designed website.

I also don't see a future for these things on Bitcoin, because as soon as bitcoin block rewards diminish, the miners would need to be paid from transaction fees. However, for the miners to be profitable, the transaction fees would need to increase an order of a magnitude - making solutions such as these potentially expensive and infeasible.

There were a few projects like this in the past, one from memory was called Counterparty. Not sure what happened to that. I guess the 10 minute block times and high fees might have been the culprit.

Conclusion: Anybody promoting this is just trying to sell their bag of STX tokens.


People tried to gain influence over the Bitcoin network in the past and they never succeded. Its much like the power of the Queen in United Kingdom. Theoretically she could overthrown the government, but in practice that will never happen.

Several Bitcoin mining pools tried to attack the network in the past, but the majority of their hashpower vanished and new hashpower appeared to protect the network.

The fact that Bitcoin was able to sustain security for 12 years makes it so valuable (especially because the incentive to take over is worth so much (market cap of $0.7T).

Ethereum's new PoS might be better in the future, however we are still many years away from properly verifing that. However I don't think it is possible to theoretically design a system that is secure and cheap to sustain at the same time. I believe security comes from expensivness (miners energy waste and slow transactions).


Who here things blockchain as a planet wide computing system will take over the world ?

I had a feeling that this would be the actual shift in use of computing. Unlike the e-commerce, cloud .. which are structurally similar to the previous world.

I'm not preaching for blockchains, it was just a feeling that it could be an actual paradigm shift.


I firmly believe this. It is taking the digitization of the world to the last economic layer: governance and law.

But I also believe we are very very early, and it will take maybe 30 years to develop to start massively transforming industries.


> governance and law.

from the very few I know, I didn't see governance and law in blockchain projects. What I perceived is a never ending shared network of operations that can basically replace companies.


The conceptual model is of the governance being in the consensus layer, which operates independently of other political systems, and the law being in the programmatic contracts the blockchain executes.

But yes, there are other ways it can be conceived, and yours seems valid.


How is consensus secured for the Stacks blockchain? Is it proof-of-work? How many nodes are there?

What is the root of trust of Stacks? Does it have auto-update? If I take over your domain, can I take all Stacks?

How can I independently verify how many mainnet coins have been locked as Stacks? How do I run a testnet node?


> How is consensus secured for the Stacks blockchain? Is it proof-of-work?

This is all described in SIP-001 (https://github.com/stacksgov/sips/blob/main/sips/sip-001/sip...).

> How many nodes are there?

Here's a sample: http://seed-0.mainnet.stacks.co:20443/v2/neighbors

> What is the root of trust of Stacks? Does it have auto-update? If I take over your domain, can I take all Stacks?

Root of trust is the history of cryptographic sortitions in the Bitcoin chain (again, see SIP-001). The chain can soft-fork to upgrade -- a direct and desirable consequence of Clarity being a decidable programming language. If you want to attack the chain, you'll need to mine a longer Stacks chain (or attack Bitcoin).

> How can I independently verify how many mainnet coins have been locked as Stacks? How do I run a testnet node?

See docs.blockstack.org


Putting lipstick on a pig. Ethereum exists for a reason.


Bitcoiners are already using RSK for DeFi. It's compatible with Ethereum but uses BTC as native currency. There are several DeFi applications already very popular, such as Money on Chain, Soveryn and rskswap. More than 600 BTCs are locked in DeFi.


Honestly, I like the idea, although I'd prefer a pure L2 for security rather than a sidechain, which is what this appears to be. Unfortunately, I don't think this is a tech problem. How do you get the devs to move en masse from Ethereum back to BTC? The network effects are just so enormous, it feels like a catastrophic failure needs to happen to Eth at this point.

I'll check it out and play around, will never say never. I'm just generally skeptical of sidechains because why can't Eth just be a sidechain to BTC, or various incarnations of the same end like atomic swaps, BTC collateralization, etc?


Why not using this VC money to support Ethereum? They already do that and much more.



> Blockstack enables users to use arbitrary storage backends like Dropbox, Amazon, Google as “dumb drives”. Only pointers to the storage backends are stored with Blockstack and encrypted/signed data is kept at storage providers.

I stopped reading after that.


Why? That is the thing that excites me the most. Though it isn't thightly locked with the whole STX-side of things which isn't as interesting to me.

Only needing some "dumb" storage media to store your application data and "cloud" files unlocks suddenly a user-centric way for everyone to store data. It also unlocks real competition on the infrastructure layer.

You don't make your own generator and make your own power, -- you don't buy power from say Dell because it needs "Dell electricity". Data should be like this too, ability to be owned and controlled purely by the user (as in you have solar panels + battery) or what most people would do: delegate the work to a power provider.

Ofc not real competition in the "power provider" case since there's physical stuff happening, but for data storage (and batch/"offline" computation and event/webhook handling) a user will be able to set up their own raspberry pi or just use say Amazon to store the encrypted data. :)

I find it fits 100% in to the world I'd want to live in. ^_^


Just a look through the docs this all reads much better than ethereum. For give me as I am still new to the rapid new things happening in this space.

What's is the ballpark transaction cost?

Also, I was curious what made it difficult to have smart contracts in bitcoin in the first place? I wasn't quite sure why others were not simply having done smart contracts like ethereum and hope to be better educated the solution here. thanks!


Good question!

Bitcoin has limited scripting language (Bitcoin script) for security reasons. Having a general smart contract language could open up a larger attack surface area for Bitcoin.

The transaction costs will be low initially as they're a function of network traffic. The main thing here is to decouple scaling of transaction (as miroblocks on Stacks chain) from the scalability of Bitcoin (and Bitcoin is hard/impossible to change).


The Clarity language spec of these contracts is very interesting; seems like a very easy spec to keep in your head compared with Solidity.

https://clarity-lang.org


Compared to Solidity, yes. But compared to Vyper, the other big Ethereum language (and also a decidable language), I don't personally see any advantage. I could be wrong, though.


Please, enough with Bitcoin. It's an environmental disaster.


> Please, enough with Bitcoin. It's an environmental disaster.

Thank you very much for your deep, original, well thought-out and never-heard-before contribution to the conversation.


It’s evil and it sucks


It's only economical to mine in areas with significant excess power, mostly around dams, but also wind farms and regions powered by geothermal. If anything, mining subsidizes green energy projects, and drives interest in cheaper and more efficient energy production, as well as more efficient semiconductor technologies.


Subsidize? I think it's the opposite. Mining parasitizes on the cheapness of electric power.


That's just how markets work right? The important thing is that these power networks are getting utilized, and that money can be reinvested in building out more green energy projects. This is a net win for everyone involved.


How markets work is if you use more of a thing, productive resources that were destined to be shut down or only used as spare capacity like coal plants stay open. China wasn't reluctant to invest in or not expecting to get a ROI from new power stations before 'miners' moved in.


I really don't think that's true except in pockets of the usa or europe with free markets (the power part)


Not at all. Also very much true in China. Miners are largely concentrated around the Sichuan area, which is also well known for their massive investments in hydroelectric power.


So essentially it's wasted as heat instead of being used to replace carbon sourced sources


So is the internet and computers and cars.


Is this a side-chain with independent EVM and also mineable? I need a simple and clear explanation of what stack 2.0 is?


Edit 3: See my nested child comment. My understanding (from a 2010 conversation with a friend who was deep in btc) was that there was a time where bitcoin scripting could cause transactions to appear onchain that would look valid to a novice but would not actually perform the actions described such that a scam could be perpetrated. I have not done the work to validate these claims. I stand by my comments on Eth and Satoshi Dice.

The crazy thing is: bitcoin was ethereum.

The community killed scripting because it was antithetical to the thing that makes money in BTC: trust. The constant flow of n00bs coming in who got their transactions reversed by OP codes and said "BUT I THOUGHT BITCOIN TRANSACTIONS WERE IRREVERSIBLE!!?!?!!?!?!1111" was eroding trust in the ecosystem.

Really, I think the beginning of bitcoin jumping the shark was Satoshi Dice: https://www.coindesk.com/company/satoshidice.

Anyways, Bitcoin off-chain scripting won't replace Eth anymore than any other off-chain scripting system will replace Eth. If this kills Eth it will be because people don't want on-chain scripting, not because people want off-chain scripting on bitcoin (ergo, the meta problem is that on-chain scripting doesn't scale in every sense of the word scale; fees, tx speed, finality, etc).

Caveat emptor: it's entirely possible this company could work or take off. In crypto, sometimes truth is stranger than fiction.

Edit: Just to be extra clear, the problems with ethereum, to me at least, aren't actually on-chain scaling; that feels solvable. What feels unsolvable to me is two things: 1) turing completeness and 2) compilation malleability (if the compiler/machine can change but the code can't, guess what, old code's behavior becomes less predictable over time... computing systems with longevity gain minimal entropy over time).

Edit 2: The only rational way I can make sense of turing completeness and compilation malleability as features is if the ecosystem is engineering ecological behavior in, that is to say: old programs should become less valuable unless they accurately predicted the future. Maybe that's rational?


> The community killed scripting because it was antithetical to the thing that makes money in BTC: trust. The constant flow of n00bs coming in who got their transactions reversed by OP codes and said "BUT I THOUGHT BITCOIN TRANSACTIONS WERE IRREVERSIBLE!!?!?!!?!?!1111" was eroding trust in the ecosystem.

I never heard of all of this having happened. To my knowledge Bitcoin's scripting language was not trimmed, it was in fact extended over the years by various BIPs [1].

What's your source for these statements?

[1] https://github.com/bitcoin/bips


I agree that OP is confusing / conflating a bunch of different things.

But to clarify that one bit (I think?) they're talking about -- the code is OP_RETURN. Originally it could return larger amounts of arbitrary data, which was used to effectively store external data on-chain. It was later reduced down to only allow 40 bytes, which would be enough for a hash, but not enough to store larger amounts of state.

This was what Vitalik Buterin and others were using for things like scripting and colored coins, and Vitalik cited (concerns that devs were threatening to constrain it / remove it as a major reason he started Ethereum.

---

Vitalik about OP_RETURN (wish I had link w/ more context) - https://twitter.com/vitalikbuterin/status/929808394487320577


He has no idea what he is talking about.


I talked to a friend in 2010 who claimed that some opcodes could cause transactions to appear as valid on the chain but not actually result in the movement of funds to the targeted address. I realize now that I have not done the work to validate those claims beyond that conversation and will retract my statement until I speak to him.


I think you or your friend might be conflating malleability, which was a UX issue in 2013 that caused people to be confused about whether a tx was confirmed or not, with the disabling of a handful of script opcodes in 2010 for security reasons (they had buggy implementations and were the cause of a severe vulnerability).

Edit for detail: In 2010 the "worst bug in bitcoin's history" was discovered, which let anybody spend ANY output on the chain, due to an obscure feature of the bitcoin scripting system allowing the signature script to simply "return true" before the actual script is executed. This was when OP_RETURN's semantics were changed to unconditionally fail the script if ever encountered rather than the short-circuiting behavior implied by its name and present in early versions. A quick emergency audit was simultaneously done and ALL opcodes that were unused at the time and moderately complex to review were "disabled" as a precaution.

It's not clear that the developers understood at the time that they would not be able to re-enable those opcodes for existing scripts without a hard-fork. The distinguishing between soft-forks and hard-forks were still being worked out back then. So large parts of script were in fact removed, but it was done as part of an emergency bug-fix and the permanent disabling may not have even been intentional.

The disabled opcodes weren't really that important to smart contracts though, at least not without additional primitives that bitcoin never had. There are various proposals to add these features in to segwit script or the upcoming taproot extension.


I knew the international cabal of functional programmers was up to something


This is written in Rust, see https://github.com/blockstack


what problem does smart contracts solve? hint: none.

F.

https://standardcrypto.wordpress.com/2020/04/30/a16z-struggl...


[flagged]


why no ?

Its a bad idea for the following reasons :

- Bitcoin has an artificially constrained overly small blocksize, which effectively prevents holding more data on its blockchain [ maybe BCH or another variant with a larger blocksize would work better ]

- We already have other blockchains, such as ETH, with active and working smart contract languages and tools : we need standardization

- The constrained blocksize on Bitcoin drives a high-fee market, meaning affordable smart contracts wont happen on Bitcoin

- its a massive carbon sink, and we should solve that problem before further burdening Bitcoin itself [ we burn vast amounts of electricity to solve the hash - effectively a lottery with expectation of winning proportional in Joules of electricity burnt - we need a more energy efficient form of statistically provably fair distributed lottery ]

- the long / slow block compute time of ~10 minutes means a poor user experience [ ETH is closer to ~15sec

tl;dr - ETH is already established and is a much better platform [ faster cheaper, more mature ] for smart contracts... and Bitcoin itself is burdened with a small block making this untenable.


Why?

Still have not seen a use case for crypto currencies that is honest, legal, and not a waste. A lot of naivety and scamming as far as I can tell.

I am completely stumped as to why anybody who has programmed a computer and experienced how hard it is to get them right would think smart contracts are a better idea than plain old legal ones.

I am not saying that the current arrangements around private property, money, law, and power are good. I just do not see crypto currencies disrupting them. Nor smart contracts.

So, why?


Its crazy how the conversation changes, it felt like many of the people on Hacker News were anti-bitcoin, but now that the price is nice, I'm seeing it on the first page all the time.


Many people (many of the same people, even) on HN are still anti-bitcoin, and conversely its been on the first page quite a bit when the price was less nice than it is now.

This is because HN is diverse, and it can have large factions boosting something while other large factions are negative on it.


I guess everyone as a price, even on HN :)




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: