Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement get-compact-range using RFC 6962 methods #18

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

pav-kv
Copy link
Contributor

@pav-kv pav-kv commented Apr 1, 2022

This is a proof of concept change demonstrating that it is possible to
obtain arbitrary compact ranges from a Merkle tree log that restricts
itself only to endpoints represented in RFC 6962, in constant time
interaction complexity.

Specifically, it is possible to obtain comact range [begin, end) by
calling "get consistency proof" endpoints <= 2 times for carefully
crafted tree sizes. In a few cases where it is impossible to get certain
hashes, this approach falls back to calling the "get entries" endpoint 1
time to obtain between 1-3 entries and reconstruct the compact range.

Overall, the interaction with the log is limited by 2 calls, and each
call is limited in size.

@pav-kv pav-kv force-pushed the get_compact_range branch 2 times, most recently from 6f8b72c to 3d6ac0c Compare April 25, 2022 13:42
This is a proof of concept change demonstrating that it is possible to
obtain arbitrary compact ranges from a Merkle tree log that restricts
itself only to endpoints represented in RFC 6962, in constant time
interaction complexity.

Specifically, it is possible to obtain comact range [begin, end) by
calling "get consistency proof" endpoints <= 2 times for carefully
crafted tree sizes. In a few cases where it is impossible to get certain
hashes, this approach falls back to calling the "get entries" endpoint 1
time to obtain between 1-3 entries and reconstruct the compact range.

Overall, the interaction with the log is limited by 2 calls, and each
call is limited in size.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant