Search content
Sort by

Showing 11 of 11 results by pifdec
Post
Topic
Board Кодеры
Re: скрипт для сравнения размера блокчейна
by
pifdec
on 01/06/2019, 14:23:45 UTC
Не, ну если ты учишься где-нибудь в духовной семинарии, то прокатит.
Почти) я в гуманитарном университете (рггу), поэтому прокатит. Я когда на предзащите дипломный форк биткоина показал (были изменены иконки, название монеты, сложность майнинга), они были в восторге и уговоривали работу на конкурс отправить ахах. Поэтому тут я не переживаю, хотя это грустно.

Quote
Я в своё время защищал диплом в техническом ВУЗе, где комиссия разбиралась в предметной области не хуже меня и такой подлог бы не прокатил.
По какой теме?
Post
Topic
Board Кодеры
Re: скрипт для сравнения размера блокчейна
by
pifdec
on 01/06/2019, 14:02:58 UTC
Понимаешь, ScriptSig не удаляется, а перемещается в другое место, но всё в пределах той же транзакции

Но я же могу при поднятии полного узла не скачивать witness, ведь свидетели вне блокчейна хранятся? Если что я понимаю что при внедрении segwit старые ScriptSig удаляться не будут из блокчейна (наверное), поэтому точнее будет сказать что суть данного пункта исследования ответить на вопрос, каким бы был размер блокчейна, если бы с самого начала использовался segwit.
Post
Topic
Board Кодеры
Re: скрипт для сравнения размера блокчейна
by
pifdec
on 31/05/2019, 22:09:38 UTC
Пуркуа бы и не па. Но в чём состоит конечный смысл этого исследования?
смысла нет, но я должен убедить комиссию на защите, что таким образом segwit сокращает размер блокчейна.

Во-первых, в поле scriptSig хранится не только лишь подпись транзакций, но ещё и публичный ключ.
Не понял, имеешь ввиду скрипт для блокировки? вроде не обязательно, зачем ему такм хранить если вход содержит ссылку на выход со scryptPubKey

Во-вторых, в SegWit-входах подпись транзакций хранится не в поле scriptSig, а в поле witness.
Сам понимаю бесполезность такого исследования из за данного факта, по хорошему еще размер скрипта из свидетелей доставать, но это сложно для меня
Post
Topic
Board Кодеры
Topic OP
скрипт для сравнения размера блокчейна
by
pifdec
on 31/05/2019, 20:57:23 UTC
для дипломной работы собираюсь оценить как повлияет удаление данных о подписи транзакции на размер текущего блокчейна биткоина, для этого напишу скрипт на питоне (python-bitcoinlib) который
1) пройдется по всем транзакциям и запишет все scryptSig в сериализованном виде
2) посчитает эти подписи из расчета символ hex = 4 бита
3) вычтет из размера блокчейна (bitcoin-cli getblockchaininfo size_on_disk) подсчитанный объем всех подписей
Понимаю, что это будут грубые расчеты, но насколько они будут правдоподобны? есть ли у вас предложения как проще решить поставленную задачу или повысить точность расчетов
Еще интересует как получить актуальный размер блокчейна, так как bitcoin-cli getblockchaininfo size_on_disk видимо возвращает размер папки с блоками, а не размер сериализованных блоков
Post
Topic
Board Кодеры
Re: bitcoin и merkel tree
by
pifdec
on 31/05/2019, 19:54:34 UTC
при хэшировании N транзакций, сложность проверки наличия какой либо транзакции будет двоичный логарифм от N, можно пересчитать только ту часть дерева Меркла которая вам необходима, при другом методе хэширования вам придется пересчитывать весь хэш
Post
Topic
Board Кодеры
Merits 1 from 1 user
Re: Эскроу или мультисиг? 🤷‍♂️
by
pifdec
on 19/05/2019, 22:32:59 UTC
⭐ Merited by klarki (1)
уточните на какой платформе вам нужна реализация?
для эфириума это тривиальная задача, которую реализовывали много раз (распределение поступивших на смарт контракт средств среди инвесторов пропорционально их доле), мультиподписи в таком случае не используются, можно даже реализовать, чтобы любой участник сети мог запускать транзакцию распределения средств накопленных на смарт контракте.
а вот для биткойна не придумал адекватного и автоматизированного решения, только кривые какие то решения приходят в голову и с множеством ограничений
Post
Topic
Board Кодеры
Topic OP
пример сценария с return
by
pifdec
on 19/05/2019, 20:06:05 UTC
пожалуйста, приведите пример, когда может быть полезен сценарий с return.
Я так понял return в сценариях блокировки используется просто для хранения данных в блокчейне, когда это может пригодиться?
Post
Topic
Board Новички
Re: Деревья Меркла
by
pifdec
on 21/02/2019, 02:58:52 UTC
Но все равно интересует какие данные используются для вычисления корня меркала. Я так понимаю для вычисления нужны только транзакции блока для которого вычисляем меркала

1. Дерево меркла вычисляется для транзакций которые будут внутри нового блока.
2. Хэш дерева меркла помещается в заголовок нового блока, за заголовком помещаются транзакции. Туда же, в заголовок, помещается хэш предыдущего заголовка блока.
3. Заголовок блока (и вместе с ним хэш дерева и хэш предыдущего заголовка блока) хэшируется. Если хэш блока удовлетворяет сложности, то блок вместе с хэшем записывается в базу блокчейна.


новый_блок = заголовок_блока + транзакции
заголовок_блока  = версия + хэш_предыдущего_блока + хэш_меркла + время + сложность + nonce
хэш_меркла = хитрый_хэш(транзакции)


спасибо за ответ, это то что нужно!)
Post
Topic
Board Новички
Re: Деревья Меркла
by
pifdec
on 20/02/2019, 13:23:27 UTC
Какие аргументы необходимы для вычисления hashMerkleRoot в хедере блока? Я правильно понимаю, что нам нужны хэши транзакций только одного блока?
То есть hashMerkleRoot блока n+1 никак не связан с hashMerkleRoot  блока n, верно?

Хедер блока хэшируется и этот хэш является частью хэша следующего хедера следующего блока.
Поменяете один байт в транзакции - изменится хэш всех заголовков над этой транзакцией.

это вы про хэш блока (hashPrevBlock), а меня интересует хэш дерева меркла (hashMerkleRoot), который так же содержится в  block header

я понял вас. Но все равно интересует какие данные используются для вычисления корня меркала. Я так понимаю для вычисления нужны только транзакции блока для которого вычисляем меркала
Post
Topic
Board Новички
Re: Деревья Меркла
by
pifdec
on 20/02/2019, 13:13:36 UTC
Какие аргументы необходимы для вычисления hashMerkleRoot в хедере блока? Я правильно понимаю, что нам нужны хэши транзакций только одного блока?
То есть hashMerkleRoot блока n+1 никак не связан с hashMerkleRoot  блока n, верно?

Хедер блока хэшируется и этот хэш является частью хэша следующего хедера следующего блока.
Поменяете один байт в транзакции - изменится хэш всех заголовков над этой транзакцией.

это вы про хэш блока (hashPrevBlock), а меня интересует хэш дерева меркла (hashMerkleRoot), который так же содержится в  block header
Post
Topic
Board Новички
Topic OP
Деревья Меркла
by
pifdec
on 20/02/2019, 01:55:32 UTC
Какие аргументы необходимы для вычисления hashMerkleRoot в хедере блока? Я правильно понимаю, что нам нужны хэши транзакций только одного блока?
То есть hashMerkleRoot блока n+1 никак не связан с hashMerkleRoot  блока n, верно?