-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
98 additions
and
16 deletions.
There are no files selected for viewing
22 changes: 22 additions & 0 deletions
22
static/delvingbitcoin/Oct_2024/3430_OP-PAIRCOMMIT-as-a-candidate-for-addition-to-LNhance.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<?xml version='1.0' encoding='UTF-8'?> | ||
<feed xmlns="http://www.w3.org/2005/Atom"> | ||
<id>1</id> | ||
<title>OP_PAIRCOMMIT as a candidate for addition to LNhance</title> | ||
<updated>2024-10-29T02:21:31.301605+00:00</updated> | ||
<author> | ||
<name>ajtowns 2024-10-28 11:16:51.953000+00:00</name> | ||
</author> | ||
<generator uri="https://lkiesow.github.io/python-feedgen" version="0.9.0">python-feedgen</generator> | ||
<entry> | ||
<id>1</id> | ||
<title>OP_PAIRCOMMIT as a candidate for addition to LNhance</title> | ||
<updated>2024-10-29T02:21:31.301636+00:00</updated> | ||
<link href="https://delvingbitcoin.org/t/op-paircommit-as-a-candidate-for-addition-to-lnhance/1216/8" rel="alternate"/> | ||
<summary>The discussion focuses on optimizing the use of SHA256 iterations for LN-Symmetry, highlighting that minimizing these iterations is not seen as crucial by some. It is pointed out that the computational difference in hashing varying byte sizes is minor compared to the operations involved in checking signatures. A proposed method for constructing a hash involves a sequence of operations starting with balance and CTV hash inputs, followed by multiple SHA256 hashes and concatenations. This method accommodates a 7-byte balance commitment combined with a 32-byte CTV hash, yielding a preimage size of 55 bytes which fits within a single SHA256 block. | ||
|
||
The concern raised revolves around LN-Symmetry in conjunction with CTV (CHECKTEMPLATEVERIFY), particularly regarding the potential for length redistribution attacks due to the fixed 32-byte template requirement of CTV. This stipulation could inadvertently facilitate upgradeability issues since CTV acts as a no-operation (NOP) for non-32-byte templates, a feature designed for future-proofing. To mitigate these concerns while still supporting the goal of minimal hashing and ensuring compatibility with potential CTV upgrades, an intricate method involving various operations is suggested. This method ensures that only specific preimage sizes are processed, thereby preventing the aforementioned length redistribution attacks. | ||
|
||
Further, to accommodate the uncertain nature of future CTV upgradeability without compromising security, an elaborate construction is recommended. This includes a series of duplications, verifications, and conditional checks before finalizing the SHA256 hash. The suggestion also mentions a potential update to the BIP (Bitcoin Improvement Proposal) that could streamline this process by eliminating certain steps if a zero-byte hash results in a CTV error, indicating a more efficient approach to handling such cryptographic operations and maintaining system integrity amidst upgradeability considerations.</summary> | ||
<published>2024-10-28T11:16:51.953000+00:00</published> | ||
</entry> | ||
</feed> |
22 changes: 22 additions & 0 deletions
22
static/delvingbitcoin/Oct_2024/3431_OP-PAIRCOMMIT-as-a-candidate-for-addition-to-LNhance.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<?xml version='1.0' encoding='UTF-8'?> | ||
<feed xmlns="http://www.w3.org/2005/Atom"> | ||
<id>1</id> | ||
<title>OP_PAIRCOMMIT as a candidate for addition to LNhance</title> | ||
<updated>2024-10-29T02:21:18.163060+00:00</updated> | ||
<author> | ||
<name>moonsettler 2024-10-28 12:05:19.886000+00:00</name> | ||
</author> | ||
<generator uri="https://lkiesow.github.io/python-feedgen" version="0.9.0">python-feedgen</generator> | ||
<entry> | ||
<id>1</id> | ||
<title>OP_PAIRCOMMIT as a candidate for addition to LNhance</title> | ||
<updated>2024-10-29T02:21:18.163096+00:00</updated> | ||
<link href="https://delvingbitcoin.org/t/op-paircommit-as-a-candidate-for-addition-to-lnhance/1216/9" rel="alternate"/> | ||
<summary>In the ongoing discussion surrounding Bitcoin Improvement Proposals (BIPs), the consideration of having a CheckTemplateVerify (CTV) error if the hash is 0 bytes was brought up as a potential method to eliminate the need for the `DUP VERIFY` step. This suggestion has been acknowledged positively, reinforcing the notion that there seems to be no practical justification for allowing a 0 size argument within CTV operations. Such an update could streamline processes by simplifying the verification steps required. | ||
|
||
Additionally, attention was drawn to an issue regarding the PC code on a specific branch, which has since been addressed and resolved. For those interested in the technical details or contributing further to this discussion, the corrected code can be reviewed at [this GitHub pull request](https://github.com/lnhance/bitcoin/pull/6). This fix highlights the dynamic and collaborative nature of development within the Bitcoin ecosystem, where community contributions lead to continuous improvements and refinements. | ||
|
||
A noteworthy point of discussion also emerged regarding the serialization of `valtype` to `HashWriter` in the Bitcoin codebase, which was mentioned as being unexpectedly complex. This aspect underscores the intricate details developers must navigate when working with or enhancing Bitcoin's underlying technology, showcasing the depth of thought and consideration that goes into each component of its design and implementation.</summary> | ||
<published>2024-10-28T12:05:19.886000+00:00</published> | ||
</entry> | ||
</feed> |
30 changes: 30 additions & 0 deletions
30
static/delvingbitcoin/Oct_2024/3432_Libbitcoin-for-Core-people.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
<?xml version='1.0' encoding='UTF-8'?> | ||
<feed xmlns="http://www.w3.org/2005/Atom"> | ||
<id>0</id> | ||
<title>Libbitcoin for Core people</title> | ||
<updated>2024-10-29T02:22:16.171018+00:00</updated> | ||
<author> | ||
<name>AntoineP 2024-10-28 19:09:55.723000+00:00</name> | ||
</author> | ||
<generator uri="https://lkiesow.github.io/python-feedgen" version="0.9.0">python-feedgen</generator> | ||
<entry> | ||
<id>0</id> | ||
<title>Libbitcoin for Core people</title> | ||
<updated>2024-10-29T02:22:16.171050+00:00</updated> | ||
<link href="https://delvingbitcoin.org/t/libbitcoin-for-core-people/1222" rel="alternate"/> | ||
<summary>Eric Voskuil recently highlighted a comparison showing Libbitcoin's Initial Block Download (IBD) performance significantly surpassing that of Bitcoin Core, achieving speeds up to 15 times faster when using the `-assumevalid` option. This revelation stems from distinctive operational methodologies between the two systems, particularly in how Libbitcoin orchestrates its processes and database management in contrast to Bitcoin Core. Libbitcoin employs an event-based system that initiates multiple asynchronous tasks through [Boost ASIO](https://www.boost.org/doc/libs/1_86_0/doc/html/boost_asio/overview/core/async.html), a framework facilitating concurrent operations which is pivotal for its enhanced performance. | ||
|
||
Libbitcoin’s database structure is conceptually relational, though it allows for abstraction and the use of various backends. This setup entails distinct tables for headers, transactions, transaction inputs, and outputs, alongside indices linking confirmations to headers and transactions to both headers and their spending transactions. Such a design aids in efficiently breaking down block validation into steps necessitating either strict, partial, or no sequencing, thereby optimizing validation checks. | ||
|
||
Block validation within Libbitcoin is dissected into tasks with varied sequencing needs. Crucially, blocks are downloaded and initial checks that don't require sequence—like block size or `nLockTime`—are executed immediately. The system concurrently processes transactions, performing script checks and other validations that only need partial ordering. A dedicated thread then verifies the existence and unspent status of inputs across a range of validated blocks, marking transactions as confirmed upon success. This parallel processing of download, validation, and confirmability stages significantly contributes to the platform's expedited IBD capability. | ||
|
||
Moreover, Libbitcoin employs strategies similar to Bitcoin Core's `-assumevalid` feature, allowing the omission of certain transaction validations to mitigate potential threats. Reorganization is managed by simply removing transactions from the relevant index, highlighting the system's capacity for straightforward adjustments to blockchain changes. While pruning is technically feasible through deletion of data for spent outputs, it currently remains unimplemented and not a priority, reflecting Eric Voskuil's stance on the feature's importance. | ||
|
||
The transaction table in Libbitcoin not only accommodates confirmed transactions but also unconfirmed ones, which can arise from peer announcements or reorganizations. Future implementations will consider minimum fee rates for transactions and their conflict graphs, aligning closely with Bitcoin Core's approach to fee handling. On the networking front, Libbitcoin defaults to connecting with a hundred outbound peers, a number intended to become dynamic post-IBD to optimize resource utilization. Peer selection and retention are based on handshake speed and response rates to block requests, incorporating measures to exclude slow or stalled connections. | ||
|
||
Despite these advancements, it's notable that Libbitcoin hasn’t fully implemented DoS protection beyond conceptual rate limiting strategies. Furthermore, comparisons between Core and Libbitcoin must account for Libbitcoin's use of an outdated libsecp version and lack of native SHA256 acceleration, factors that could influence performance benchmarks. | ||
|
||
In clarifying terminology, the document distinguishes between terms used similarly by Libbitcoin and Bitcoin Core but with nuanced differences, such as "milestone" versus `-assumevalid`, emphasizing the unique aspects of Libbitcoin’s architecture and operation. This detailed exposition, enriched by Voskuil’s insights, underscores Libbitcoin's innovative approach to blockchain management and its implications for efficiency and scalability within the cryptocurrency domain.</summary> | ||
<published>2024-10-28T19:09:55.723000+00:00</published> | ||
</entry> | ||
</feed> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters