Size: a a a

2020 July 07

LL

Lama Lover in Distributed
@mr_tron
скорее всего такого нет потому что если было бы, то его давно бы притащили в криптовалюты вместо меркл-три
Такого нет по простой причине: конечное количество информации не может однозначно определять бесконечное множество :/
источник

@

@mr_tron in Distributed
ну вот да. какие-то такие ощущения
источник

KP

Kirill Pimenov in Distributed
Co. In
Подскажите по дереву Меркла или другому алгоритму позволяющему узнать наличие ключа в цепочке, с фиксированной длиной коренного ключа. Можно ли обновить коренной ключ динамически, не зная всех нод и проверить наличие ключа в цепочке

Как пример:
У Алиса есть два ключа, она высчитывает коренной ключ из них.
Node1Hash + Node2Hash => RootHashAlice
Передает коренной ключ Бобу. Тот добавляет в цепочку свой ключ и формирует новый коренной
RootHashAlice + Node3Hash => RootHashBob
В системе также есть Ева, которая знает только RootHashBob и Node1Hash. И хочет проверить входит ли Node1Hash в цепочку RootHashBob
Это можно сделать на классических деревьях Меркла; для вычисления нового корня не нужно ничего, кроме proof of nonexistence (то есть цепочки из парных частичных хешей по пути до самой близкой к искомой ячейке) ключа в текущем дереве
источник

KP

Kirill Pimenov in Distributed
Дальше просто заменяем один узел, и каскадно обновляем хеши снизу вверх, до корневого (потому что в каждой паре один из двух частичных хешей надо будет обновлять, начиная с хеша от нашего нового элемента)
источник

KP

Kirill Pimenov in Distributed
@mr_tron
скорее всего такого нет потому что если было бы, то его давно бы притащили в криптовалюты вместо меркл-три
А это ровно дерево Меркла и есть (если я правильно понял проблему), и в криптовалютах используется именно оно и именно поэтому.
Никто естественно не перехеширует все элементы ради обновления одного, это было бы O(N²) на обновление вместо O(logN)
источник

@

@mr_tron in Distributed
не очень понятно конечно что хотел спросить автор. я так понял что ему важна проверка существования листа в корне без проверки цепочки
источник

@

@mr_tron in Distributed
тоесть описание вопроса об одном, а пример об другом
источник

KP

Kirill Pimenov in Distributed
@mr_tron
не очень понятно конечно что хотел спросить автор. я так понял что ему важна проверка существования листа в корне без проверки цепочки
Мне показалось, что @co_in достаточно, чтобы узлы не знали всех элементов, а знали постоянно только корень фиксированной длины (и на лету ещё оперировали бы пруфами логарифмической длины, которые им генерирует кто-то другой, и которые после окончания операции можно выбросить).
Это ровно дерево Меркла.

Но я действительно не очень внимательно прочитал
источник

CI

Co. In in Distributed
Пропробую уточнить на еще одном примере

Мне передали хеш цепочки допустим 69bf145f9328e02df695c610006809c944ff0beefa5cf14c3b1ab1680e652bb7. Я не знаю из каких значений он сформировался

Я хочу добавить к цепочке значение Hello, в результате получается другой хеш вроде
7c2aff231d94b5647263e27bfeb447103677e2281bc12d5a533f92946e2dc873

Теперь я скидываю хеш 7c2aff231d94b5647263e27bfeb447103677e2281bc12d5a533f92946e2dc873 в этот чат. И по этому хешу пользователи могу проверить участвовало ли значение Amigo например в его формировании. При этом не зная всех значений участвовавших в формировании хеша
источник

KP

Kirill Pimenov in Distributed
Co. In
Пропробую уточнить на еще одном примере

Мне передали хеш цепочки допустим 69bf145f9328e02df695c610006809c944ff0beefa5cf14c3b1ab1680e652bb7. Я не знаю из каких значений он сформировался

Я хочу добавить к цепочке значение Hello, в результате получается другой хеш вроде
7c2aff231d94b5647263e27bfeb447103677e2281bc12d5a533f92946e2dc873

Теперь я скидываю хеш 7c2aff231d94b5647263e27bfeb447103677e2281bc12d5a533f92946e2dc873 в этот чат. И по этому хешу пользователи могу проверить участвовало ли значение Amigo например в его формировании. При этом не зная всех значений участвовавших в формировании хеша
Тебе нужен пруф того, что hello на данный момент не входит ы цепочку
источник

KP

Kirill Pimenov in Distributed
Его тебе рассчитает кто-то, у кого есть полные данные
источник

KP

Kirill Pimenov in Distributed
Имея этот пруф (2logN хешей) ты сможешь рассчитать новый хеш корня
источник

KP

Kirill Pimenov in Distributed
Всех остальных значений ключа, которые участвовали в изначальном хеша корня, тебе знать не надо
источник

KP

Kirill Pimenov in Distributed
Но кому-то в сети — надо; теорию информации не наебёшь
источник

CI

Co. In in Distributed
Kirill Pimenov
Но кому-то в сети — надо; теорию информации не наебёшь
(((
источник

KP

Kirill Pimenov in Distributed
И ты не можешь, зная только корневой хеш, проверить вхождение произвольного элемента.
Но ты можешь удостовериться, что кто-то другой (у кого есть все ключи, или по крайней мере все ключи на этой ветке дерева) не пиздит тебе, что такой ключ есть
источник

KP

Kirill Pimenov in Distributed
Собственно, все фичи дерева Меркла
источник

YB

Yanis Benson in Distributed
Co. In
Пропробую уточнить на еще одном примере

Мне передали хеш цепочки допустим 69bf145f9328e02df695c610006809c944ff0beefa5cf14c3b1ab1680e652bb7. Я не знаю из каких значений он сформировался

Я хочу добавить к цепочке значение Hello, в результате получается другой хеш вроде
7c2aff231d94b5647263e27bfeb447103677e2281bc12d5a533f92946e2dc873

Теперь я скидываю хеш 7c2aff231d94b5647263e27bfeb447103677e2281bc12d5a533f92946e2dc873 в этот чат. И по этому хешу пользователи могу проверить участвовало ли значение Amigo например в его формировании. При этом не зная всех значений участвовавших в формировании хеша
Мне б такой архиватор
источник

CI

Co. In in Distributed
Kirill Pimenov
И ты не можешь, зная только корневой хеш, проверить вхождение произвольного элемента.
Но ты можешь удостовериться, что кто-то другой (у кого есть все ключи, или по крайней мере все ключи на этой ветке дерева) не пиздит тебе, что такой ключ есть
Ну вот я не сильно понял как я могу удостовериться. К примеру мобильный кошелёк крипты какой-то загружает заголовки блоков, в которых хранится корневой хеш транзакций. Как мобильный кошелёк, может проверить пиздит ли ему полная нода или нет отдавшая этот заголовок, о том что транзакция входит в это дерево? Нужно запросить у полной ноды всю ветку с этой транзакцией. И потом самому пройдясь снизу вверх можно получить пруф. Верно?
источник

@

@mr_tron in Distributed
он в итерактивном режиме запрашивает у полной ноды путь
источник