Bitcoin Forum
April 27, 2024, 02:38:49 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 [3]  All
  Print  
Author Topic: Drivechain critiques by gmaxwell revisited, maybe you changed your mind?  (Read 984 times)
BTCapsule
Member
**
Offline Offline

Activity: 72
Merit: 78


View Profile
December 13, 2023, 08:53:41 PM
Merited by NotATether (2)
 #41

There's a spreadsheet containing some quotes, with links, from people who are probably "Friends of Drivechain". Three years later from the creation of the topic, what's everyone's updated opinions about BIP-300 now that Ordinals are starting to become an inconvenience for Bitcoin users who simply want to use the blockchain for financial transactions?

I want BIP300. If Bitcoin is going to destroy the banks and become the world’s money, it must have the properties of cash. Fast, cheap, and private. I don’t care what BlackRock or Michael Saylor wants.

Lightning is broken, and never had what it takes to scale Bitcoin anyway. There’s no reason to be concerned about "shitcoins on Bitcoin" because we already have monkee jpegs on L1. If anything in the future could possibly be worse, then we should already have the ability to throw it on a sidechain.

Miners don’t even need to run a sidechain node. Even if they did, it wouldn’t matter. Nobody has to keep an entire history of the L2 blockchain. Every peg-out is like a new genesis block, because L1 has confirmed that everything is valid to that point.
1714228729
Hero Member
*
Offline Offline

Posts: 1714228729

View Profile Personal Message (Offline)

Ignore
1714228729
Reply with quote  #2

1714228729
Report to moderator
1714228729
Hero Member
*
Offline Offline

Posts: 1714228729

View Profile Personal Message (Offline)

Ignore
1714228729
Reply with quote  #2

1714228729
Report to moderator
1714228729
Hero Member
*
Offline Offline

Posts: 1714228729

View Profile Personal Message (Offline)

Ignore
1714228729
Reply with quote  #2

1714228729
Report to moderator
If you see garbage posts (off-topic, trolling, spam, no point, etc.), use the "report to moderator" links. All reports are investigated, though you will rarely be contacted about your reports.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714228729
Hero Member
*
Offline Offline

Posts: 1714228729

View Profile Personal Message (Offline)

Ignore
1714228729
Reply with quote  #2

1714228729
Report to moderator
1714228729
Hero Member
*
Offline Offline

Posts: 1714228729

View Profile Personal Message (Offline)

Ignore
1714228729
Reply with quote  #2

1714228729
Report to moderator
garlonicon
Hero Member
*****
Offline Offline

Activity: 800
Merit: 1932


View Profile
December 14, 2023, 06:39:29 AM
 #42

Quote
But who would merge-mine a chain where you get zero revenue from merge-mining?
There is never "zero revenue", because you are still paid. Every transaction has a fee. Mainchain transaction, LN transaction, or even sidechain transaction. Those transactions for peg-ins, transfers on the sidechain, and peg-outs will have a fee. Of course, it could be zero if you want, but nothing stops those miners for confirming those things.

The fee of the sidechain miners, is simply the fee that comes from batching: if someone will do some transactions, that will pay 0.01 BTC, then the fee for the user will be the same. But it will be possible to batch things, and collect fees from batching transactions, in a similar way how LN nodes collect their routing fees.

Also, if you read how Drivechain is implemented, then you note there are two kinds of fees: L1 fees, and L2 fees. Here, it will be similar.

Quote
but would that be enough to prevent 51% attacks?
It depends on the computing power. If you will have a bunch of CPU miners, sitting on a particular sidechain, then of course they would collect single satoshis, and of course the Proof of Work coverage will be quite low. Which means, if you have Lightning Network, then you have penalty transactions, and absolutely none Proof of Work protection (lightning transactions are simply zero-confirmation transactions, as long as they are not broadcasted). Here, you will have the same level of protection as in the Lightning Network, but also with Proof of Work coverage, and a public watchtower, where every honest node will send penalty transactions when needed.

Quote
I don't believe these fees can be high
It depends on the traffic, and on the Proof of Work coverage. I expect it could be on a similar level, like in LN, or maybe somewhat higher, because in sidechains, you can send your coins to anyone, without creating additional on-chain transaction, if your coins are already in the sidechain.

Quote
How do you achieve this? How can this script look like?
The mainchain should be blind, when it comes to everything that is happening on the sidechain. If you want to just test things, you should be able to do a self-transfer, or even no-transfer-at-all, and check, how it works. For that reason, every Script should be allowed, no matter what it contains, and then it is up to the users to define the conditions.

Quote
Don't we need covenants or some other opcodes Script does currently not provide, to really create a blocking/unblocking mechanism on Bitcoin which ensures that we can't do the above mentioned attack?
If they are needed, they could be implemented on a sidechain, because that part will not require any consensus changes, and will work as well.

Quote
How exactly can homomorphic encryption help here?
Because then, the sidechain can act like a global watchtower. If you have LN closing channel transactions, or penalty transactions, you just keep them on your node, but the drawback is, that your node should then be online, 24/7. However, if you encrypt things first, and then post them in encrypted form to some P2P network, then honest nodes could observe the mainchain 24/7, and if they notice a transaction, that will match, they will decrypt the penalty transaction you posted before, and act as a global watchtower. Also, in the same way, they will block any double-spending attempt on that sidechain.

Quote
Can you create a sort of "covenant" with it?
You can perform any computation you want, according to the ways it was "encrypted". Which means, if for example some public key is exposed, then you can create a multisig out of it. Or if some Schnorr signature is exposed, then you can bring the missing part, and join those signatures. Or you can do other tricks, for example prove that you solved puzzle number 66, without revealing the public key, and letting everyone break it before reaching the first confirmation. And yes, I guess making covenants is also possible, but I didn't explore the details yet.

Quote
How do you exactly block the coins on Bitcoin, before you "move to the sidechain", to be later able to release them exactly to the person/address who pegs-out BTC on the sidechain?
You don't block the coins. You inform people, that you own the coins, and then they can decide, if they want to join your Script, and if the proof you provided is sufficient. For example, if you have already existing Lightning Network channel, then you should not close it, and then open "sidechain peg-in". You should simply show people: "here are my coins, here is my signature, here is my unlocking Script, can you accept that?". And guess what: some scripts are already acceptable. And also, some scripts are acceptable, if you want to just test things.

Also, sometimes you don't need to move coins. Sometimes you want to only test something. Then, what do you need? Not that much: you need to inform people, that you own some coins (even on P2PK), then you can do your testing, and then you can move your coins back on-chain, for example because you want to send them somewhere. And then, everything will be batched to a single on-chain transaction, and the destination would be the outcome of batching everything you did in the middle. Isn't it beautiful? Testing without producing new coins, out of thin air? Posting for example Ordinals on the sidechain, and sharing it with the network, without bloating the mainnet? Creating your own assets or tokens, and preserving the ownership, without pushing all of that to the mainnet? I think it is worth at least trying, and I think allowing any Script is needed, because those use cases, where coins are negligible, should be cheap on sidechain, and expensive on mainchain.

Quote
I believe you and @vjudeu are talking about a similar sidechain model, but I can't find any information about it. Are there any whitepapers/links?
Not yet, but as you noticed, we talk to each other, and we created some small, private test network, and some of our posts just reflect the results of our testing. Of course, things are not yet ready to be shared publicly, but I think they are good enough to be discussed. And also, we need some feedback to fix some bugs, before we release all of that publicly. We don't want to flood the mainnet, or to harm it in any other way, and we know, that if we release something, then there is no "undo" button (as you can read in my signature).

Quote
Is there any real-world example for that concept?
Not yet, but testing sounds promising. Of course, NameCoin used Merged Mining, but there are some flaws, and our implementation is different. But still, there are some bugs to be fixed, and some extreme cases are hard to fix, so we will see, what to include in the first version.

Quote
My impression is that this isn't an easy task and may be even be impossible if both metachain and pegged chain (Bitcoin) are decentralized, because it could allow attacks on several of the weaker chains happen at once to harm the metachain or steal coins.
You won't attack metachain that easily, because it would blindly follow the heaviest chain of Proof of Work. Which means, you can produce invalid headers, and the sidechain will trace that, and react accordingly. Because if you look at BCH or other altcoins, then you can notice, that one of their mistakes, was related to replay protection, and difficulty adjustments.

In case of 51% attack (or even 99% attack), the current network simply ignores invalid blocks, even if their Proof of Work is enormous. And I think it is a mistake. It should be noted, that "hey, the attack is ongoing", and the network should react accordingly. Which means, that invalid headers should still be notarized, and the value of the honest network should be relative to the total Proof of Work, produced by honest nodes and attackers combined. Because if it is not, then it is like pretending that there is no attack, which is a bad approach.
d5000
Legendary
*
Offline Offline

Activity: 3892
Merit: 6115


Decentralization Maximalist


View Profile
December 14, 2023, 06:53:44 AM
 #43

@garlonicon: I had deleted my post because I actually found some interesting information about one of the topics you mentioned and wanted to re-write it to not bore you with similar arguments as in my discussion with vjudeu Smiley.

As you were fast and already quoted my post before I deleted, I re-post my original post you cited from, here for reference (other interested people please exchange my post with garlonicons') Grin

I'll reply once I read the mentioned documents.



It is just all about deploying existing Drivechain implementation on a different chain, that will initially have zero coins. Nothing else is really needed, because Proof of Work can be imported through Merged Mining (and Proof of Stake can be directly pegged here and now, just by sending coins to the addresses, owned by validators).
But who would merge-mine a chain where you get zero revenue from merge-mining? I guess there could be some altruist merge-mining ("Sidechain/Metachain is good for Bitcoin, so we should mine it") and maybe you can also charge some small fees for peg-ins and peg-outs, but would that be enough to prevent 51% attacks? I don't believe these fees can be high, otherwise only seldom people would use the peg mechanism and instead use atomic swaps or centralized/P2P exchanges.

The only needed thing is to move coins on both chains simultaneously.[...]
This "very specific set of requirements" is just defined by the output Script.
How do you achieve this? How can this script look like? Don't we need covenants or some other opcodes Script does currently not provide, to really create a blocking/unblocking mechanism on Bitcoin which ensures that we can't do the above mentioned attack? How exactly can homomorphic encryption help here? Can you create a sort of "covenant" with it?

My specific problem is: How do you exactly block the coins on Bitcoin, before you "move to the sidechain", to be later able to release them exactly to the person/address who pegs-out BTC on the sidechain? I still fail to understand which kind of script you could use. I know only the following methods:

- Drivechain, as described by Paul Sztorc. Needs more opcodes on Bitcoin.
- Dynamic multisig federations where simultanity is enforced by consensus on the sidechain (Nomic, Stacks). A subset of the strongest sidechain validators can enter the federation and thus move coins on the Bitcoin chain to those addresses who perform a peg-out on the sidechain to BTC. If they misbehave, they are not only excluded from the federation but also penalized on the sidechain. That's not completely bulletproof but may work well enough.
- Rollups, where part of the info is stored on-chain, so the whole transaction chain can be "reconstructed" if needed, but uses less bytes and thus can reduce tx weight/fees.

The goal of course is to prevent attacks where someone transfers coins from BTC to the side/metachain, buys things on the sidechain, and once he received the goods (or fiat/coins) moves the "blocked" coins on the mainchain. This could even be made in Nomic by colluding misbehaving federation members. They would be penalized but maybe the sidechain has enough value to be able to make a profit stealing coins.

I believe you are talking about a similar sidechain model like @vjudeu above, but I can't find any information about that concept. Are there any whitepapers/links?

Sidechain can be pushed forward, by collecting commitments from other chains. Which means, the difficulty of the sidechain, will be equal to the combined difficulty of all chains in existence (they may be sorted by hash function, or in any other way).
Is there any real-world example for that concept? My impression is that this isn't an easy task and may be even be impossible if both metachain and pegged chain (Bitcoin) are decentralized, because it could allow attacks on several of the weaker chains happen at once to harm the metachain or steal coins.

Of course in the semi-centralized altcoin world there are models claiming they work this way (Komodo ecosystem, for example) but they're very likely only pegged together because all chains have the same set of colluding validators, or because this applies to the "commitment collectors" (in models like Komodo's dPoW).

Also, because this chain would produce no coins, it could be possible to "go back to zero" on a regular basis. Which means, that Initial Blockchain Download will not be a big deal, because coins can be pegged out, finalized on each chain, and we can start over, when the metachain will be too big. So, it would act like a trustless batching of the history, that would have to otherwise land on each individual chain.
That could work, but I can imagine a growing attack risk when a metachain (or sidechain) is losing security because its EOL is near and miners may abandon it gradually.
However, a similar model with "constantly renewing" sidechains could also work if the metachain contains an own altcoin, which could make the process safer because these coins (and the incentives for consensus their validation provides) would continue to exist. They could be simply swapped to a new chain, i.e. the new chain being a hardfork of the old one, and then "forgetting" the old transactions once it is secure enough. Or with a mini-blockchain scheme, like Cryptonite or Kaspa.


█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
NotATether
Legendary
*
Offline Offline

Activity: 1582
Merit: 6688


bitcoincleanup.com / bitmixlist.org


View Profile WWW
December 14, 2023, 07:03:46 AM
 #44

I want BIP300. If Bitcoin is going to destroy the banks and become the world’s money, it must have the properties of cash. Fast, cheap, and private. I don’t care what BlackRock or Michael Saylor wants.

Lightning is broken, and never had what it takes to scale Bitcoin anyway. There’s no reason to be concerned about "shitcoins on Bitcoin" because we already have monkee jpegs on L1. If anything in the future could possibly be worse, then we should already have the ability to throw it on a sidechain.

Miners don’t even need to run a sidechain node. Even if they did, it wouldn’t matter. Nobody has to keep an entire history of the L2 blockchain. Every peg-out is like a new genesis block, because L1 has confirmed that everything is valid to that point.

All valid points.

Although it has come to the point where most changes nowadays can only be done through Core, which itself has a narrow development team.

It should be possible to implement a drivechain without necessitating a protocol change or soft fork. Actually I just did a google search and have seen that its already possible since the block templates and structures are more or less the same. The only thing that needs to be done is skip verification of transactions inside merged-mined blocks.

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
Pages: « 1 2 [3]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!