Pages:
Author

Topic: Другой способ проверки PoW блока (Read 1213 times)

full member
Activity: 252
Merit: 103
ты главное сделай упор на расход оперативки, чтобы не меньше четырёх гигов кушало
newbie
Activity: 13
Merit: 0
там очень короткое время (90 секунд) и тебя отпустит уже через пять сообщений, так что не парься. Ответь, как понял Wink


Понял хорошо! Smiley

А вот прописать описанный способ проверки оказывается капец как сложно Sad. Особенно сложно коэффициенты и основания подбирать так, чтобы параметры примерно одинаковую силу имели и чтобы в равновесии держали друг друга. Тем более, в моем проекте этих параметров не 4, а 10, некоторые из них строковые, некоторые целочисленные, некоторые с плавающей запятой. Но я думаю, если после меня кому то понадобится, то он это сделает проще и быстрее, используя имеющиеся исходники.
full member
Activity: 252
Merit: 103
там очень короткое время (90 секунд) и тебя отпустит уже через пять сообщений, так что не парься. Ответь, как понял Wink
newbie
Activity: 13
Merit: 0
full member
Activity: 252
Merit: 103
О, круто! Фанаты! Поздравляю!
member
Activity: 77
Merit: 10
CEO cryptopus.co
legendary
Activity: 2744
Merit: 1588

А где можно посмотреть Ваш итоговый вариант (ну или хотя бы прочитать полностью описание того, что получилось)?

Ваше сообщение дошло, я также ответил в личку.

Что касается полного обновления, то пока писать особо ничего не буду, т.к. нет смысла особого. Вот когда сделаю, то распишу все подробно преимущества и прочее, а также выложу исходные коды.

Кроме того,реализация в коде позволит увидеть, как система ведет себя и реагирует на различные факторы, т.к. при разработке идеи такие нюансы могут быть не видны.
newbie
Activity: 13
Merit: 0
С удовольствием посмотрю на ваше решение. Хотя если честно непонятно, почему проведение транзакции обязательно ждать 2 часа, неужели нет способов уменьшить время.


Но видите: у Вас все равно остается проблема, что один пользователь подключается к разным "соседям" и делает двойную трату. И с этим никак не справиться.

А как же блокчейн, он то и защищает от двойных трат. Я сейчас перешел к гибридной модели. У меня в системе реализованы одновременно 2 валюты, одна обычная с моим алгоритмом консенсуса, а также на базе неё есть полностью анонимная валюта.

Теперь используя эту схему и пользуясь блокчейном и нодами обычной валюты, мы получаем следующие плюсы у анонимной:

- скрытие своего IP. Всё что нужно сделать это подменить свой адрес и отправить анонимную транзакцию на одну из нод обычной валюты.

- нет комиссий. В моем случае блокмейкер из обычной валюты, за создание блока кроме комиссий за блок, получает вознаграждение в анонимной валюте. Т.к. в блок обычного блокчейна включаются и обычные и анонимные транзакции.

- все остальные преимущества анонимной валюты, что я описывал в теме https://bitcointalksearch.org/topic/m.20176665

Ответил в личку, но мне bitcointalk напомнил, что я тут дух; а духу не положено обращаться к дедам Smiley. Поэтому не знаю, дошло ли моё сообщение.

На всякий случай, основные моменты, дублирую сюда.

Вот сюда (http://witchcms.xyz/) выложил демоверсию. Там куча ограничений. Более полная (но также еще не доработанная) версия на гитхабе: https://github.com/ilyamain/witch.

Программирую на PHP. Пишу с нуля. В конечном итоге это будет межрегиональная товарная биржа, состоящая из множества интернет-магазинов (и торговых площадок других типов), базирующихся на специальной CMS со встроенным блокчейном. Для частников там будет использоваться анонимная крипта. Из за PHP (который удобен пользователю для развертывания интернет-магазина) и потребовалось сделать такой алгоритм проверки PoW, который нельзя (или бессмысленно) воспроизводить на видеокарте и на асиках.

Про 2-4 часа. Ну это чтобы сеть успела определиться с офранами. В принципе, стандартно, но если делать безопасную транзакцию, чтобы майнеры китайские не перехватили пароль и не подменили транзакцию, то потребуется сначала отправить намерение о совершении транзакции с публичным ключом. Потом дождаться "закрепления блока". И только потом отправлять саму транзакцию. Если время между формированием блоков 20 минут, а максимальная длина ветки офранов - 5 штук (вместе с принятым получается 6 штук), то примерно 4 часа на двухэтапную транзакцию и уйдет.

А где можно посмотреть Ваш итоговый вариант (ну или хотя бы прочитать полностью описание того, что получилось)?
legendary
Activity: 2744
Merit: 1588
С удовольствием посмотрю на ваше решение. Хотя если честно непонятно, почему проведение транзакции обязательно ждать 2 часа, неужели нет способов уменьшить время.


Но видите: у Вас все равно остается проблема, что один пользователь подключается к разным "соседям" и делает двойную трату. И с этим никак не справиться.

А как же блокчейн, он то и защищает от двойных трат. Я сейчас перешел к гибридной модели. У меня в системе реализованы одновременно 2 валюты, одна обычная с моим алгоритмом консенсуса, а также на базе неё есть полностью анонимная валюта.

Теперь используя эту схему и пользуясь блокчейном и нодами обычной валюты, мы получаем следующие плюсы у анонимной:

- скрытие своего IP. Всё что нужно сделать это подменить свой адрес и отправить анонимную транзакцию на одну из нод обычной валюты.

- нет комиссий. В моем случае блокмейкер из обычной валюты, за создание блока кроме комиссий за блок, получает вознаграждение в анонимной валюте. Т.к. в блок обычного блокчейна включаются и обычные и анонимные транзакции.

- все остальные преимущества анонимной валюты, что я описывал в теме https://bitcointalksearch.org/topic/m.20176665
newbie
Activity: 13
Merit: 0

1. Я вообще изначально хотел сделать просто адреса со сменными паролями (чтобы адрес не менялся, а пароль можно было поменять). Но Вы подсказали куда более элегантное решение - передавать все банкнотами.

2. Сейчас в своем проекте делаю что то среднее между Вашим предложением и тем, что у меня было изначально. Только я делаю обычную децентрализованную сеть. С распределенной, как Вы уже сами заметили, есть много нерешаемых вопросов. Например, та же самая транзакция на разные адреса, запущенная с разных концов сети. Может, все-таки стоит вернуться к децентрализованной сети? Она себя вполне успешно показала во множестве альткоинов. Если интересно, могу показать что у меня получается. Может понравится, тогда объединим усилия.

1. Вы не до конца понимаете идею биткоина. Вот смотрите, в биткоине адрес - это хеш публичного ключа, а публичный ключ получается из приватного ключа.

Приватный ключ, должен быть специально создан криптографической библиотекой или софтом. Его также можно создать и из обычной фразы, но тогда ваши деньги там долго не продержаться.

Я это прекрасно понимаю. Это и было "загвоздкой" до тех пор, пока не придумал (с Вашей подсказкой) другой способ. Чувствую, что мы немного не понимаем друг друга. Давайте я на днях выложу демонстрационную версию своих наработок (уже почти готова демонстрационная версия, но я ее буду отправлять не только программистам, но и потенциальным пользователям, поэтому хочу немного подразукрасить, чтобы прилично смотрелась Smiley ). Я думаю, увидев что получилось, Вы меня лучше поймете. Там, конечно, даже до альфа-версии ой-ой-ой как далеко. Но смысл того, как проводятся транзакции уже отчетливо виден. В принципе, все относительно безопасно. Сейчас думаю как можно было бы ускорить транзакции, чтобы на один платеж не уходило по 2-4 часа (вот это у меня сейчас слабое место для критики).

Если Вы сможете сделать такое, как думали оставлять адрес и подбирать другой пароль, то тем самым создатите огромную брешь в системе безопасности.

В свое время я также хотел создать в своей криптовалюте и мозговой кошелек, где нужно просто запомнить фразу или пару фраз. Говорю сразу эту тупиковый путь. Все такие кошельки будут легко ломаться на основе таких фраз.

Там пароль в конечном счете подбирается не человеком, а кошельком (я конечно не могу запретить указывать пароль вручную, но это будет глупо со стороны пользователя). Кошелек может поставить пароль хоть из миллиона символов чистой абракадабры. И человеку это запоминать не нужно. Эти данные хранятся в локальной базе данных или могут быть выгружены на флэшку, электронку и т.п., а потом загружены на другой комп.

Ну, как я уже сказал выше, это немного кажется непонятным, пока не увидите своими глазами. Думаю, уже скоро закончу "разукрашивание". Потом скину сюда ссылку.

2. Хочу пояснить, почему я не хочу классическую децентрализованную и даже классическую распределенную сеть. Эти сети практически похожи, основная идея это иметь возле себя несколько соседей и обмениваться с ними информацией.

Суть в том, что при атаке на сеть, Вас могут изолировать и у вас все соседи будут хакерские боты, сквозь них Вам уже не пробиться.

В моей же сети, даже если большая часть нормальных пользователей резко станет спамерами, то сеть автоматически сожмется до правильных пользователей, т.к. Вы сможете поддерживать связь не только с ботами, но и нормальными пользователями и вот уже с этими нормальными и взаимодействовать.


На текущий момент я работаю над ещё более усовершенствованной версией криптовалюты.

Но видите: у Вас все равно остается проблема, что один пользователь подключается к разным "соседям" и делает двойную трату. И с этим никак не справиться.
legendary
Activity: 2744
Merit: 1588

1. Я вообще изначально хотел сделать просто адреса со сменными паролями (чтобы адрес не менялся, а пароль можно было поменять). Но Вы подсказали куда более элегантное решение - передавать все банкнотами.

2. Сейчас в своем проекте делаю что то среднее между Вашим предложением и тем, что у меня было изначально. Только я делаю обычную децентрализованную сеть. С распределенной, как Вы уже сами заметили, есть много нерешаемых вопросов. Например, та же самая транзакция на разные адреса, запущенная с разных концов сети. Может, все-таки стоит вернуться к децентрализованной сети? Она себя вполне успешно показала во множестве альткоинов. Если интересно, могу показать что у меня получается. Может понравится, тогда объединим усилия.

1. Вы не до конца понимаете идею биткоина. Вот смотрите, в биткоине адрес - это хеш публичного ключа, а публичный ключ получается из приватного ключа.

Приватный ключ, должен быть специально создан криптографической библиотекой или софтом. Его также можно создать и из обычной фразы, но тогда ваши деньги там долго не продержаться.
 
Один человек писал, что он создал приватный ключ из фразы какой-то африканской песни или стиха, все равно подобрали этот пароль, получили приватный ключ и увели деньги.

Если Вы сможете сделать такое, как думали оставлять адрес и подбирать другой пароль, то тем самым создатите огромную брешь в системе безопасности.

В свое время я также хотел создать в своей криптовалюте и мозговой кошелек, где нужно просто запомнить фразу или пару фраз. Говорю сразу эту тупиковый путь. Все такие кошельки будут легко ломаться на основе таких фраз.


2. Хочу пояснить, почему я не хочу классическую децентрализованную и даже классическую распределенную сеть. Эти сети практически похожи, основная идея это иметь возле себя несколько соседей и обмениваться с ними информацией.

Суть в том, что при атаке на сеть, Вас могут изолировать и у вас все соседи будут хакерские боты, сквозь них Вам уже не пробиться.

В моей же сети, даже если большая часть нормальных пользователей резко станет спамерами, то сеть автоматически сожмется до правильных пользователей, т.к. Вы сможете поддерживать связь не только с ботами, но и нормальными пользователями и вот уже с этими нормальными и взаимодействовать.


На текущий момент я работаю над ещё более усовершенствованной версией криптовалюты.
full member
Activity: 252
Merit: 103
Илья, если у тебя всё так легко считается, то в момент, когда в сети накопилось достаточно транзакций, будет одновременно появляться мульён одинаковых посчитанных блоков от всех майнеров сразу с разницей в пару-тройку миллисекунд. Твоя сеть будет занята постоянно проверкой предложенных блоков один за другим, при чем велики шансы того, что их будет много одинаково подходящих, и придётся тупо кидать монетку, чтобы присобачить следующий блок в чейн.

у тебя проверка примерно так же сложна, как и майнинг блока, вернее майнинг так же прост, как и проверка почти. Это приведёт к тому, что куча сил и энергии будет уходить на проверку того, что наприсылали все вокруг.

В Биткоине намайнить правильный хеш довольно сложно и поэтому конкурирующие блоки появляются нечасто, их проверка стоит значительно дешевле самого майнинга.

В твоей сети каждые 1200 секунд будут появляться одинаковые конкурирующие блоки от всех майнеров сети, которые будут всеми остальными проверяться каждый блок.

только вдумайся

я посчитал один блок, потратил единицу энергии, отправил его
мне пришли блоки от соседей, скажем 500 разных майнеров прислали мне по блоку.
я как дурак сижу и трачу 500 единиц энергии на проверку этих блоков

и чем больше у тебя будет майнеров - тем хуже ситуация.
newbie
Activity: 13
Merit: 0
Да, конечно, я понимаю различия Smiley

Я вообще изначально хотел сделать просто адреса со сменными паролями (чтобы адрес не менялся, а пароль можно было поменять). Но Вы подсказали куда более элегантное решение - передавать все банкнотами. Сейчас в своем проекте делаю что то среднее между Вашим предложением и тем, что у меня было изначально. Только я делаю обычную децентрализованную сеть. С распределенной, как Вы уже сами заметили, есть много нерешаемых вопросов. Например, та же самая транзакция на разные адреса, запущенная с разных концов сети. Может, все-таки стоит вернуться к децентрализованной сети? Она себя вполне успешно показала во множестве альткоинов. Если интересно, могу показать что у меня получается. Может понравится, тогда объединим усилия.

Про форки - их будет не больше, чем в привычных криптах. Ну сделает какой-нибудь злоумышленник форк, погоняет по своему форку транзакции, все остальные его проигнорируют и он вернется в основную ветку.

Да и кто говорит, что я убрал сложность? Просто здесь сложность не в том, чтобы посчитать хэш, а в том, чтобы найти наиболее качественные транзакции. Мне кажется, это более важная работа майнера (я майнером в данном контексте упрощенно называю всех участников, которые формируют блоки).
legendary
Activity: 2744
Merit: 1588
Возвращаясь к Вашему проекту. По большому счету добиться анонимности можно намного проще. Для этого вполне достаточно стандартного биткоинового PoW. Но Вы зачем то все усложнили.

Скорее не усложнил, а сделал по другому. Не забывайте, что у меня в сети нет комиссий и нет специализированных майнеров.
legendary
Activity: 2744
Merit: 1588
newbie
Activity: 13
Merit: 0
Возвращаясь к Вашему проекту. По большому счету добиться анонимности можно намного проще. Для этого вполне достаточно стандартного биткоинового PoW. Но Вы зачем то все усложнили.
newbie
Activity: 13
Merit: 0
Уважаемый, сеть биткоин не так проста как описывается во многих текстах.

Дело тут вот в чем, есть алгоритм консенсуса - это ваш переделанный pow. Этот алгоритм поможет вам решать отбор текущих блоков.

Но есть такая вещь как и алгоритм согласования. Т.е. как ваша сеть в комплексе будет решать проблему массового замена блокчейна, бороться с тучами бот-сетей.

Чтобы понять о чем я говорю посмотрите мою тему https://bitcointalksearch.org/topic/2-2025411 и особенно прочитайте вопросы, которые мне задавал человек с ником AlexNeto и мои ответы.

Извиняюсь за долгий ответ. Да, я раньше читал эту Вашу тему. И даже попытался дать совет по ее совершенствованию (что то среднее между тем, что я хочу сделать и то, что хотите сделать Вы). Но почему то Вы хотите настоять именно на распределенном консенсусе. Я же предлагаю в этом смысле не изобретать ничего нового, а сделать привычную децентрализованную сеть. Всё будет работать прекрасно и анонимно. Уговорить Вас мне не удалось Smiley

Для привычной децентрализованной (не распределенной) сети, как мне кажется, вполне подойдет тот алгоритм, который описан в этой теме. Я конечно, могу ошибаться (для этого и выложил, чтобы кто нибудь подсказал слабые стороны, если увидит).


Так даже у моего проекта был обнаружен огромный минус, на том этапе я признал поражение, но потом нашел решение. Разница в том, что у моего проекта сеть знает своих участников и то на том этапе не смогла противостоять тонкому саботажу.

У Вас же сеть классического биткоина и участники не имеют постоянного мониторинга всей сети.

Идея pow именно и держится на дороговизне ресурсов и сложности вычислений, понижая планку входа Вы тем самым облегчаете создание бот-армии, которая будет массово подменять блокчейн и создавать прочие гадости.

Для того, чтобы бот-сеть смогла подменить блокчейн, ей нужно захватить все 4 параметра: ловить больше транзакций, ловить наиболее "дорогие" транзакции, быстрее отсылать блоки, поймать удачу (чтобы хэш получился "красивым"). Если бот сеть не смогла ничего сделать с криптами, у которых только один параметр, то с 4-мя ей будет еще сложнее.

А про консенсус, чтобы задним числом ничего не поменяли - это немного другая (хоть и близкая) тема. Я ее еще не до конца продумал. Когда продумаю - отдельной темой выложу или здесь же напишу.
legendary
Activity: 2744
Merit: 1588
Уважаемый, сеть биткоин не так проста как описывается во многих текстах.

Дело тут вот в чем, есть алгоритм консенсуса - это ваш переделанный pow. Этот алгоритм поможет вам решать отбор текущих блоков.

Но есть такая вещь как и алгоритм согласования. Т.е. как ваша сеть в комплексе будет решать проблему массового замена блокчейна, бороться с тучами бот-сетей.

Чтобы понять о чем я говорю посмотрите мою тему https://bitcointalksearch.org/topic/2-2025411 и особенно прочитайте вопросы, которые мне задавал человек с ником AlexNeto и мои ответы.

Так даже у моего проекта был обнаружен огромный минус, на том этапе я признал поражение, но потом нашел решение. Разница в том, что у моего проекта сеть знает своих участников и то на том этапе не смогла противостоять тонкому саботажу.

У Вас же сеть классического биткоина и участники не имеют постоянного мониторинга всей сети.

Идея pow именно и держится на дороговизне ресурсов и сложности вычислений, понижая планку входа Вы тем самым облегчаете создание бот-армии, которая будет массово подменять блокчейн и создавать прочие гадости.
newbie
Activity: 13
Merit: 0
1) Иллюзия о том, что вычисления по другому, что-то принципиально изменит. Здесь дело всего лишь в цене, будет выгодно появиться оборудование и под ваши вычисления.
Если обратили внимание, тут получается, что сами расчеты не так уж и сложны. Надо 1200-1800 раз посчитать хэш и выбрать наиболее подходящий вариант. Все. Больше ничего. Обычный процессор с ними очень легко справится. Поэтому нет смысла делать какое либо сложное оборудование. Тут в основном задача майнера заключается в поиске транзакций, а не в спецрасчетах. Если кто то сделает спецоборудование для поиска транзакций - ну что же, пусть делает, это очень нужный прибор. Этот прибор не копает хэши "от забора до обеда", а интеллектуально выискивает информацию в сети.


2) Работа с timeshtamp. Поищите в интернете, как люди пробуют решать эту проблему максимум на 5 серверах и какие проблемы с этим, где-то используется векторное время, где-то еще что-то, у вас же сеть состоит более чем из 5000 нод и разбросаны по всей планете.
Тут используется таймштамп не в чистом виде. В расчетах участвует разница между значением в этом блоке и в предыдущем. Скорее всего, дельту при формировании блока будут проставлять задним числом равной 1200. В редких случаях (например, если хэш станет намного привлекательнее), есть смысл поставить цифру 1201, 1202, 1203... но не намного больше.

Почему именно привязка к таймштампу, а не просто к любому целому числу? - чтобы исключить возможность формирования блоков чаще одного раза в 20 минут. Если блок получен проверяющей стороной (например майнером) с числом, которое больше текущего таймштампа, то блок будет отклонен.

Неправильные настройки времени невыгодны самому майнеру, так как неправильно выставленное у него время приведет к неправильному выбору им цепочки блоков, которая впоследствии будет отклонена большинством других майнеров (у которых время выставлено правильно). Поэтому майнеры сами будут следить за тем, чтобы их время соответствовало действительности. Разница в несколько секунд не сыграет существенную роль, так как (как я уже сказал выше), большинство сформированных блоков будут ставить таймштамп немного задним числом (я предполагаю, что будут ставить от 1 до 5 минут назад).


опять майнеры только, а где полные ноды обычных пользователей.
Я же упрощенную схему описал. Все сказанное касается и полных нод и майнинг пулов. Этот алгоритм относится к любому участнику сети, который формирует блок, как бы он не назывался.
legendary
Activity: 2744
Merit: 1588
Quote
Недостатков пока не нашел. Возможно, они есть. Для этого и выкладываю эту тему на форум Smiley

Прямо сходу недостатки видны сразу невооруженным взглядом:

1) Иллюзия о том, что вычисления по другому, что-то принципиально изменит. Здесь дело всего лишь в цене, будет выгодно появиться оборудование и под ваши вычисления.

2) Работа с timeshtamp. Поищите в интернете, как люди пробуют решать эту проблему максимум на 5 серверах и какие проблемы с этим, где-то используется векторное время, где-то еще что-то, у вас же сеть состоит более чем из 5000 нод и разбросаны по всей планете.

3) И последнее
Quote
Майнер принимает этот блок только при соблюдении двух условий
опять майнеры только, а где полные ноды обычных пользователей.
Pages:
Jump to: