Bruce

22 posts

Bruce banner
Bruce

Bruce

@sinotrinity

Bitcoin builder since 2017. Founder of @op_catlayer #OPCAT

Silicon Valley เข้าร่วม Mart 2024
102 กำลังติดตาม564 ผู้ติดตาม
Bruce
Bruce@sinotrinity·
@TuTuGe123 总结得很好。一个小小的更正:opcat是中本聪自己禁用的,不是基金会
中文
1
0
6
158
Bruce
Bruce@sinotrinity·
Loon@Web3_Loon

首个真正意义上的CAT20应用落地! @dot_swap 上线了 #CAT20 的订单簿交易市场! dotswap.app/i/catMarket 那么CAT20协议和Runes、BRC20这些协议交易上到底有什么不一样呢? 交易原理 Runes、BRC20协议:在挂单过程中,卖家会签署一个部分签名比特币交易(PSBT),这相当于完成了交易的一半。当用户进行购买时,买方会签署PSBT的另一半,两个部分合并成一个完整的签名交易。 CAT20协议:在用户挂单过程中,他们会将CAT代币转移至智能合约地址。该合约设定了代币的解锁单价。只有当卖方确认收到付款,合约才会根据交易金额,将相应数量的CAT代币释放给买家。 CAT20的优势 完全的去中心化。Runes的PSBT是由交易市场保管的,如果MagicEden愿意,它完全可以操控价格,只放出高价的PSBT,自己偷偷把低价的PSBT匹配购买了。之前早期交易就出现过,即便用户提高了挂单价格,订单仍可能以原先的低价成交,因为原始的低价PSBT可能被他人保存并随时可以签名。相比之下,CAT20的所有交易均由智能合约执行,有效杜绝了中间人干预。 自定义购买数量。CAT20支持用户自定义购买数量,面对大额代币订单,买家可以选择购买其中的部分数量。这种灵活性在Runes中是不存在的,Runes要求买家必须一次性购买整个订单。 支持买单。进一步增强了市场的双向流动性。不过目前dotswap还没上线这个功能。

QME
0
0
1
119
Sandshrew
Sandshrew@SandshrewRPC·
6/ It takes less than 30 seconds to provision a custom RPC endpoint. Elevate your projects and join the future of Bitcoin development with @SandshrewRPC. This is just the beginning—welcome to Bitcoin Season 2! sandshrew.io
English
1
1
9
576
Sandshrew
Sandshrew@SandshrewRPC·
Announcing Sandshrew, the Bitcoin RPC for builders 🛠 We believe building on Bitcoin should be as easy as building on any other blockchain. With @SandshrewRPC, we enable developers to unleash the full potential of Bitcoin data without costly barriers to entry.
English
11
27
90
25.1K
RuneMine | Mine Labs
RuneMine | Mine Labs@minelabs_·
𝗔𝗻 𝗜𝗻𝗱𝗲𝘅𝗲𝗿 𝗙𝗼𝗿𝗴𝗲𝗱 𝘁𝗼 𝗙𝗶𝘁 🔸 RuneMine is building the first fully canonical indexer on the Runes Protocol. Built specifically for Runes. Not a retrofit. More than a feature; it's the infrastructure ensuring data integrity and availability on the Runes Protocol.. ▒▒▒▒▓▓▓▓ᴸᴼᴬᴰᴵᴺᴳ▓▓▓▓▒▒▒▒ ▼
English
20
17
66
18.6K
quary.sats
quary.sats@const_quary·
Part 2: Your buys not executing and full-RBF To learn the prerequisites for understanding Part Two, please see Part 1 in the quoted tweet. In part 2, we'll discuss how the actual full-RBF is done. 1. Identifying the transaction in the mempool The first thing you need to do is to spot the transaction you're trying to replace. This can be done in various ways, from grabbing it from the UI of the marketplace to watching for transactions you're trying to replace directly onchain. Once the transaction is spotted, one can hijack the buy. We need to remember that the sole reason for which one cannot execute a PSBT by not involving the marketplace is simply because the marketplaces keep the seller PSBT for themselves. However, once the buy goes through, they need to broadcast it for later block inclusion. That's the window of time in which one can grab the seller PSBT from the mempool. Image 1 is your usual buy transaction Image 2 is the attempt to RBF the initial transaction 2. What one needs from the old transaction An attacker is usually (or always) interested in the input/output pair that contains the seller SIGHASH_SINGLE|ANYONECANPAY PSBT. The rest of the inputs are unusable anyway because the buyer is signing with SIGHASH_ALL (which means that the transaction inputs can't be further modified). The steps for this are quite straightforward (conceptually at least): start from the full transaction, strip away all inputs and outputs except for the input/output pair that is signed by the seller, and start from there. 3. What does the new transaction look like? After getting the transaction and stripping it from all inputs and outputs, aside from the one with the inscription and the seller's payment, one needs to make sure that the inscription arrives in the proper wallet if the RBF is included. To do this, there is a minimum of inputs/outputs that the attacker needs to add: Inputs: - The attacker needs to add the same number of padding utxos as in the initial transaction ( they don't have to contain the same number of sats ) - The attacker needs to add his own payment UTXO (as he still needs to pay the seller) Outputs: - An output with the sum of the pad inputs (for reasons explained in part 1) - an output that will hold the inscription (with the same no. of sats as the seller UTXO) - an output that brings the remaining BTC back to the attacker's wallet (this is important, as if you don't specify this, the remaining #Bitcoin will be spent on fees; which is probably what happens when you see 10BTC spent on fees) - (optional) two new pad utxos for future usage 4. Submission and success rate All right, so the attacker submitted the transaction in the mempool and it's waiting for inclusion. Mission accomplished, right? Wrong! Like every trick that looks like it's generating EASY free money, it doesn't. It needs luck and swift responses. Here's what happens after an attacker replaces a transaction: - Block inclusion: Bitcoin has what's called a RBF flag. By default, the marketplaces set the RBF flag to false (meaning it can't be replaced, in theory). Even if the attacker did the new full-RBF transaction, he is now at the mercy of the mining pool that includes the next block. Around 40% of the blocks include full-RBF transactions. If the next block is mined by one that does, you may get lucky and your RBF may get confirmed. If not, and the initial tx has a high enough fee, it will be the one included. - Competition: Someone fat-fingered an @OrdinalMaxiBiz for 0.05BTC, you just RBFed and you're calculating the profits already. Hold your horses... Such deals already have more actors RBFing your RBF and so on. Image 3 shows what a very good deal looks like in the mempool before it's confirmed. I've seen RBF fees rise to more than 9000sats/vb. The actors generally add 10-20 sats/vb until the block is mined. If your competitors are chaotic and don't understand game theory, then they will add 500sats/vb or more, sending most of the profit to the mining pools that accept RBF. If you don't compete with idiots and you all add 10-20 sats/vb per replacement, then it's a game of chance. All in all, the profits can be good, even though the success rate is probably less than 20% per transaction (given the non-RBF mining pools and the competition). 5. Marketplace fees and the future of RBF buys Using PSBTs, marketplaces have no way of ensuring their commissions onchain. Actors that use full-RBF to replace buys don't have any incentive to include the commission of the marketplace in the transaction (so they obviously don't). This eats a certain percentage of the marketplace profits, and (potentially) creates a bigger future issue: one might build a tool (such as a browser extension) that RBFs your initial buy (even if you are the buyer) to exclude the marketplace fee. What might happen: Given that there's no easy way to treat this issue without invalidating all previous listings, the solution to this is also a more centralized way of handling the buying/selling (more on this in another post), which marketplaces might implement. The other option is that marketplaces simply ignore the % of the fees that they're missing, however, I think this can only be worse in the future so they might be forced to act. 6. "Can I do this? My background is in agriculture and yolo'ing my life savings on BRC-20's" Probably not. You need some serious tooling, some experience with Bitcoin and #Ordinals, and the trained eye of a programmer. If you don't have the attention span to not fat-finger your ordinals, I'm pretty sure you will screw one out of two RBF buys even if you get a specialized one-month training before attempting this. 7. How can I protect myself as an average Joe? The single, best thing you can do is to pick a higher fee for your buys. This will include the transaction in the next block, or even if it doesn't, it will shorten the window in which your buy can be hijacked and give less time for floor fluctuations to make it appealing. 8. Should the mining industry be on top of this? Yes, personally I think this will raise the incentives of accepting full-RBF transactions. Every now and then, you will get 9000sats/vb instead of 50-100 for virtually the same tx. Worth it, I'd say. That's all folks. Follow me and retweet this... or block me if you're into agriculture and yolo'ing life savings (nothing wrong with that btw, I just pointed out that this is not the money-making machine for your profile)
quary.sats tweet mediaquary.sats tweet mediaquary.sats tweet media
quary.sats@const_quary

Part 1: How marketplaces work Part 2: Your buys not executing and full-RBF PART 1 To understand what happens with RBFs and your buys, we first need to understand how the PSBTs from the current marketplaces work. 1. How #Bitcoin and UTXOs work Each Bitcoin transaction contains certain inputs (money in) and certain outputs (money out). When a UTXO (unspent transaction output) gets into a transaction it is considered "spent" and it cannot participate in any future transactions. When I want to send 0.5 Bitcoin from A to B, I might involve 2 utxos in that transaction (let's say 0.3 and 0.4 Bitcoin). I build a transaction with these two utxos as inputs, a 0.5BTC output to wallet B and 0.2BTC ( the change ) back to wallet A. This is how every blockchain involving UTXOs works. 2. The PSBT signed by the seller If you picture every UTXO as a bundle of specific satoshis (according to the FIFO tracking of the #Ordinals theory), then your inscription is in one of these bundles. When you want to sell an asset in a trustless manner, you sign a PSBT with SIGHASH_SINGLE|ANYONECANPAY. What that means is that you agree to involve that UTXO (that contains the asset) in a transaction (as input) if and only if you get an output with the desired amount of BTC back. The SIGHASH_SINGLE means that you sign for a single input/output pair (involve the utxo with the ordinal and receive a utxo with x amount). The ANYONECANPAY part means that the output can be created by any Bitcoin address, as long as it has the desired amount. IMPORTANT!!! SIGHASH_SINGLE|ANYONECANPAY doesn't put any restriction on how the rest of the transaction looks. 3. The PSBT fulfillment process After the seller signs that input/output pair, it sends it privately to the marketplace. Note that at this point, no one other than the marketplace has this signed PSBT. When the buyer decides to go for the trade, the marketplace gets the buyer to sign the other inputs of the transaction ( the full transaction is shown in the image below). Buyer signs the transaction, sends it to the marketplace and the marketplace puts together the full Bitcoin transaction and submits it. Note that the seller's signature isn't made public, not even to the buyer. It is only made available when the marketplace sends the full tx in the mempool. 4. Trade transactions and the reason we need padding utxos To conduct a trade with a single inscription, there are two requirements that need to be satisfied: - Signing with SIGHASH_SINGLE requires the signed input/output pair to be at the same offset in the inputs/outputs order. - Since the tracking of Ordinal Theory is FIFO (first in first out), if the inscription utxo enters the transaction after :1200 sats (as shown in the image below: inoput1 (600) + input2(600), then the inscription UTXO somewhere in the third input after the 1200 sats inserted by the first two inputs), it will also exit the transaction after :1200 sats. In other words, the output that goes to the buyer needs to have the same size as the inscription input and needs to be at the same offset Here's what padding UTXOs do: In order to have the buyer receive the inscription, while still having the input with the inscription at the same index as the output with the payment, we need two random inputs from the buyer on positions 0 and 1, and an output with the sum of these two inputs at index 0, so the output at index 1 can be reserved for the inscription (having the same number of sats as the input with the inscription and going to the buyer). By doing this, we can safely add the third output that pays the seller without worrying that the inscription will go back to the seller or to any other party. Input number 4, or subsequent inputs represent utxos used by the buyer to pay for the whole thing. Outputs 4-7: - pay the marketplace commission (output 4) - create two new padding UTXOs for the buyer (output 5 and 6) so there's no need to "prepare wallet" for future transactions - and return the remaining amount to the buyer (output 7), since the payment utxos usually amount to more sats than needed for the transaction Now that you've understood how the trades work, in PART 2, we'll dive into full-RBF and how it is done by third parties to overwrite your pending buys. If you find this information useful and are eager to know more about hijacking buys, please retweet (and maybe follow me, @const_quary, and turn 🔔 on). It motivates me to write these educational posts. See you soon! 🫡

English
13
24
89
10.1K
quary.sats
quary.sats@const_quary·
Part 1: How marketplaces work Part 2: Your buys not executing and full-RBF PART 1 To understand what happens with RBFs and your buys, we first need to understand how the PSBTs from the current marketplaces work. 1. How #Bitcoin and UTXOs work Each Bitcoin transaction contains certain inputs (money in) and certain outputs (money out). When a UTXO (unspent transaction output) gets into a transaction it is considered "spent" and it cannot participate in any future transactions. When I want to send 0.5 Bitcoin from A to B, I might involve 2 utxos in that transaction (let's say 0.3 and 0.4 Bitcoin). I build a transaction with these two utxos as inputs, a 0.5BTC output to wallet B and 0.2BTC ( the change ) back to wallet A. This is how every blockchain involving UTXOs works. 2. The PSBT signed by the seller If you picture every UTXO as a bundle of specific satoshis (according to the FIFO tracking of the #Ordinals theory), then your inscription is in one of these bundles. When you want to sell an asset in a trustless manner, you sign a PSBT with SIGHASH_SINGLE|ANYONECANPAY. What that means is that you agree to involve that UTXO (that contains the asset) in a transaction (as input) if and only if you get an output with the desired amount of BTC back. The SIGHASH_SINGLE means that you sign for a single input/output pair (involve the utxo with the ordinal and receive a utxo with x amount). The ANYONECANPAY part means that the output can be created by any Bitcoin address, as long as it has the desired amount. IMPORTANT!!! SIGHASH_SINGLE|ANYONECANPAY doesn't put any restriction on how the rest of the transaction looks. 3. The PSBT fulfillment process After the seller signs that input/output pair, it sends it privately to the marketplace. Note that at this point, no one other than the marketplace has this signed PSBT. When the buyer decides to go for the trade, the marketplace gets the buyer to sign the other inputs of the transaction ( the full transaction is shown in the image below). Buyer signs the transaction, sends it to the marketplace and the marketplace puts together the full Bitcoin transaction and submits it. Note that the seller's signature isn't made public, not even to the buyer. It is only made available when the marketplace sends the full tx in the mempool. 4. Trade transactions and the reason we need padding utxos To conduct a trade with a single inscription, there are two requirements that need to be satisfied: - Signing with SIGHASH_SINGLE requires the signed input/output pair to be at the same offset in the inputs/outputs order. - Since the tracking of Ordinal Theory is FIFO (first in first out), if the inscription utxo enters the transaction after :1200 sats (as shown in the image below: inoput1 (600) + input2(600), then the inscription UTXO somewhere in the third input after the 1200 sats inserted by the first two inputs), it will also exit the transaction after :1200 sats. In other words, the output that goes to the buyer needs to have the same size as the inscription input and needs to be at the same offset Here's what padding UTXOs do: In order to have the buyer receive the inscription, while still having the input with the inscription at the same index as the output with the payment, we need two random inputs from the buyer on positions 0 and 1, and an output with the sum of these two inputs at index 0, so the output at index 1 can be reserved for the inscription (having the same number of sats as the input with the inscription and going to the buyer). By doing this, we can safely add the third output that pays the seller without worrying that the inscription will go back to the seller or to any other party. Input number 4, or subsequent inputs represent utxos used by the buyer to pay for the whole thing. Outputs 4-7: - pay the marketplace commission (output 4) - create two new padding UTXOs for the buyer (output 5 and 6) so there's no need to "prepare wallet" for future transactions - and return the remaining amount to the buyer (output 7), since the payment utxos usually amount to more sats than needed for the transaction Now that you've understood how the trades work, in PART 2, we'll dive into full-RBF and how it is done by third parties to overwrite your pending buys. If you find this information useful and are eager to know more about hijacking buys, please retweet (and maybe follow me, @const_quary, and turn 🔔 on). It motivates me to write these educational posts. See you soon! 🫡
quary.sats tweet media
English
40
98
251
31.3K
Peddy
Peddy@peddyxbt·
If you really want to understand HOW Runes work and what happens at Block 840,000, this is a MUST-READ. You'll no longer get confused by token names related to 'runes' as well! Here’s clarification and easy explanations🧵 #Runes #Bitcoin
Peddy tweet media
English
60
103
416
69.9K
Electron Arc-20 (₿itcoin) ⚛️
Electron Arc-20 (₿itcoin) ⚛️@Electron_ARC20·
9/ The final word This new development offers a fungible token standard for Bitcoin, using the smallest unit of satoshi to represent tokens. This makes sure of the value of each token, while also guaranteeing that each is compatible with Bitcoin's existing system. ARC-20 also provides different minting options, including decentralized and direct methods, and introduces a ticker symbol service for easy recognition of tokens, all improving the efficiency of the ecosystem. Atomicals offer an inventive approach to digital asset management on Bitcoin. They enable the creation and management of diverse tokenized assets, broadening Bitcoin's application scope. This innovation demonstrates Bitcoin's adaptability and potential in decentralized finance and digital asset representation. Will ARC-20 play a big part in Bitcoin's journey in 2024. #electron arc20 #Atomicals 🔥
English
6
56
138
1.2K
Electron Arc-20 (₿itcoin) ⚛️
Electron Arc-20 (₿itcoin) ⚛️@Electron_ARC20·
1/ What are ARC-20 and Atomicals? Understanding Bitcoin's blockchain for digital asset management Have you ever questioned what else the Bitcoin blockchain can provide besides a digital currency and ordinals? ARC-20 introduces a fungible token standard to the Bitcoin blockchain, using satoshis — the smallest units of Bitcoin — as the backbone for token representation. This means each ARC-20 token is inherently backed by a satoshi, making sure a baseline value and integrating seamlessly with existing Bitcoin infrastructure. Atomicals, meanwhile, offer a unique approach to digital asset representation on Bitcoin, further expanding the capabilities of this pioneering blockchain. They bring versatility and innovation to digital asset management, showcasing the adaptability of Bitcoin beyond its primary use as a cryptocurrency. What do these developments mean for the future of Bitcoin? Many believe their potential opens new avenues for asset management and tokenization on Bitcoin.
English
40
113
224
4.4K
Binance Research
Binance Research@BinanceResearch·
Atomicals Protocol provides a simple way to organize digital objects on the Bitcoin network. What is it and what makes it special? A quick overview 🧵
English
114
253
540
138.4K
Emin Gün Sirer🔺⚔️
Emin Gün Sirer🔺⚔️@el33th4xor·
What a crock. SM assumes nothing of the topology. It is this particular piece that assumes a fully-connected, 0-latency mesh among miners. This is as physically impossible as Craig's network w/ a consensus protocol that operates faster than speed of light. (1/n) twitter.com/realJohnnyBCH/…
Johnny 💸 ₿itcoin 💸 Cash@realJohnnyBCH

"Craig Wright's "Negative Gamma" and the Curious Lack of Intellectual Curiosity in the Crypto Space" yours.org/content/191f72…

English
5
2
17
0
Dr Robertlee 李波
Dr Robertlee 李波@Robertl83909710·
Join in BSV retards team, As Chief economist of sCrypt, be a Bitcoin builder.
Dr Robertlee 李波 tweet mediaDr Robertlee 李波 tweet media
English
26
15
156
21K
Bruce
Bruce@sinotrinity·
@_electronicCash Ser, I don’t c coffee stain on any of the papers
English
0
0
1
80