Bitcoin Forum
November 19, 2024, 03:33:37 AM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 »  All
  Print  
Author Topic: POSm (Proof of similarity, доказательство сходства)  (Read 688 times)
imhoneer (OP)
Legendary
*
Offline Offline

Activity: 2744
Merit: 1588



View Profile
December 04, 2020, 10:57:13 AM
Last edit: April 16, 2022, 05:46:39 PM by imhoneer
Merited by Julien_Olynpic (20)
 #1

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

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

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


В общем придумал, как мне кажется довольно необычный алгоритм консенсуса, который является POS, но работает, как POW.

Я его назвал POSm (Proof of similarity, доказательство сходства).

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

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

И так есть хеш:
3D8293BD4DA72B5437F9B4810B991870145AD443686CF2DDD7B6C16E4F3A4655

В этом консенсусе может учавствовать любой адрес, на котором есть хоть какая-то сумма денег.

Пусть у нас находятся следующие адреса, содержащие любое количество денег на них:

3D8293BD4DA72B5437F9B481E85605A82F82AE07D25F57818AEF65E2243AB5D1
3D8293BD4DA72B54B2284D6B0F3C1368A74D57B1A5A390C8E84540751FB5E51C
3D8293BD4DAA1E21366E4638ED6CC90C8F2702E340B1D9AD0E7FAA0D17BE5D9
3D82936A648A463A27D20E28B1674B68A7CAB351FFCE01A88A00F84A84824505
3D989C378E86086DC3FD6E528D4ED4D7B31B68E6DF3C5D787451E935DECA3020
3082B0DCBF7B2BA5CB6BC4CAABE6A157B1FA3B862FC21C33DB51CEA53B176E06

Все эти хеши у которых есть совпадения, называются майнинговыми хешами. И так вы видите, что у этих адресов есть совпадения с нашим хешем. Для первого адреса совпадение равно 24, для второго 16, для третьего 11, для четвертого 6, для пятого 2 и для шестого 1.

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

У каждого блока есть сумма числа совпадений. Условно, если блок создал только первый адрес с 24 совпадениями, то сумма числа совпадений всего блока будет только 24. Если же к этому блоку добавил свои транзакции второй адрес с 16 совпадений, то сумма числа совпадений увеличивается до 40. В реальности же используется шестнадцатеричная сумма, в дальнейшем Вы увидите почему и как это работает.


Структура блока и его лимиты.

В самом блоке мы вводим лимиты на количество майнинговых хешей. Их может быть только до 16 каждого порядка.

Как пример, в блоке могут быть максимально:

- 16 майнинговых хешей с 1 совпадением.

- 16 майнинговых хешей с 2 совпадением.

- 16 майнинговых хешей с 3 совпадением.

...
- 16 майнинговых хешей с 64 совпадением (64 это количество всех символом в хэше sha3_256).


Таким образом в блок может поместиться теоретический максимум 16*64=1024 майнинговых хеша (каждый такой хеш можно считать отдельным майнером, который имеет право смайнить свой подблок). Однако это не достижимый максимум, сейчас у биткоина может быть до 20 совпадений за 10 минут.

Это если хотите упорядочивание.

И так представьте у нас в сети есть всего 100000 хешей. Пусть на них всех расположена какая-то сумма денег, дающая право майнить. Для создания текущего блока сейчас актуальны только 6.25% (это 1/16) майнинг-хеша (данное число варьируется возле этого значения) от всего этого количества.

Всего 100000 хешей.
Из них для создания идеального текущего блока задействовано:
- Количество майнеров 5865 по 1 совпадений.
- Количество майнеров 338 по 2 совпадений.
- Количество майнеров 24 по 3 совпадений.
- Количество майнеров 2 по 4 совпадений.
Общее количество задействованных майнеров равно 6229, что составляет 6.22% от общего количества хешей.
Общая сумма совпадений для данного идеального блока равна 6621.

И так посмотрите внимательно, на то, что я выделил жирным.

Там, где у нас будет 4 совпадения с хешем, то таких майнеров будет всего 2. У них нет конкуренции вообще, так как теоретический максимум в блоке это 16, а здесь всего 2. Таким образом подблоки от данных майнеров будут во всех версиях форков текущего блока.

А теперь обратите внимание на количество майнеров только с 1 совпадением, их там 5865. В блок может максимально влезть только 16. Значит начнется плодиться огромное количество форков.

Как же бороться с этим огромным количеством форков.

А очень просто, надо считать шестнадцатеричную сумму всего блока и там, где эта сумма больше, тот блок и приоритетнее.

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

Блок1:
1 хеш с 3 совпадениями
1 хеш с 2 совпадениями
074171aa91173bc50bed9e83d8712b6d1615ec99f5bc4cea7e551dcb698594c3
0fb21e4d8afd3cf7459de7e419025d69990759f33d38dbe6f009c260b6b40fc9

Блок2:
1 хеш с 3 совпадениями
1 хеш с 2 совпадениями
0a65290fea13aba62e02f7612ae83dfca6dd0f8884c53a50c10ea6b0f75d157a
0f397cafea91906cf8d74cad84feb2a5d36cb3edef6f202de7356f298144aaf1

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

Тут мы применим следующую хитрость. Мы превратим их в дробные шестнадцатеричные числа, а целое число будет определяться по количеству совпадений, в данном случае у нас у всех этих хешей только 1 совпадение, поэтому получим следующие шестнадцатеричные дробные числа.

Блок1:
0.74171aa91173bc50bed9e83d8712b6d1615ec99f5bc4cea7e551dcb698594c3
0.fb21e4d8afd3cf7459de7e419025d69990759f33d38dbe6f009c260b6b40fc9

Блок2:
0.a65290fea13aba62e02f7612ae83dfca6dd0f8884c53a50c10ea6b0f75d157a
0.f397cafea91906cf8d74cad84feb2a5d36cb3edef6f202de7356f298144aaf1

Видите мы у всех хешей первый символ, сделали целым числом (в нашем случае это ноль), а остальное вынесли в дробную часть.

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

Сложение для Блока1:
0.74171aa91173bc50bed9e83d8712b6d1615ec99f5bc4cea7e551dcb698594c3 + 0.fb21e4d8afd3cf7459de7e419025d69990759f33d38dbe6f009c260b6b40fc9 = 1.6F38FF81C1478BC518B8667F17388D6AF1D468D32F528D16E5EE02C2039A48C

Сложение для Блока2:
0.a65290fea13aba62e02f7612ae83dfca6dd0f8884c53a50c10ea6b0f75d157a + 0.f397cafea91906cf8d74cad84feb2a5d36cb3edef6f202de7356f298144aaf1 = 1.99EA5BFD4A53C1326DA440EAFE6F0A27A49C37674345A7EA84415DA78A1C06B

И так если посмотреть, то получилось, что у Блока2 сумма вышла больше, чем у Блока1. Значит, теперь все ноды при выборе текущего блока будут отдавать приоритет версии Блока2, а Блок1 станет не актуальным.

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



Формирование меток времени у блока.

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

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

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

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

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

Каждый майнер, что присоединяет свой подблок и формирует текущий блок, считает, что его подблок последний, а потому всему текущему блоку присваивает и время своего подблока.


Виды майнинга.

Теперь давайте разберем сам майнинг, он здесь 2-х видов: пассивный и активный.

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

Теперь про активный майнинг. Основная суть активного майнинга это вставить свой подблок в конец блока и тем самым создать конечную версию текущего блока или сразу своим подблоком создать блок. В обоих этих случаях речь идет о контроле хеша создаваемого блока. Этот контроль нужен для того, чтобы на вновь создаваемом блоке уже иметь преимущество по совпадению у своего майнинг хеша. Скажем благодаря вычислениям по подбору хеша, Вы подобрали хеш блока таким образом, что при строительстве следующего блока имеете уже хеш скажем с 15-20 совпадениями и к нему начинают присоединяться другие майнящие хеши.

Активный майнинг делится на 2 вида: синергетический и эгоистичный.

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

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


Регулирование минимальной суммы блока для его создания.

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

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

Оно будет работать следующим образом. Вначале набирается статистика из 10 и более блоков и анализируется среднее время создания каждого блока.

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

- Если среднее время создания блока меньше 3 минут, то минимальная сумма блока увеличивается на 10%.

- Если среднее время создания блока больше 3 минут, то минимальная сумма блока уменьшается на 10%.

Теперь сама сеть сможет полностью регулировать и адаптироваться под изменяющиеся условия сети.



А теперь давайте посмотрим, как мой алгоритм соответствует схожести в работе с алгоритмом POW:

- Сложность. В нашем случае это минимальная сумма, которую должен набрать текущий блок, чтобы можно было строить следующий блок. Данная сумма, как и в POW адаптивна и пересчитывается на каждом блоке, где при высокой скорости она на каждом блоке увеличивается на 10%, а при медленной скорости, наоборот уменьшается на 10%.

- Выбор цеопочки блоков с максимальной сложностью у POW, а у меня же это выбор цепочки блоков с максимальной суммой блоков.

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



         ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄      
        █  █▀▀▀▀▀▀▀█  █        
       ▄▀▀▀▀▄     ▄▀▀▀▀▄      
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█ ▄▀▀▀▀▀▀▀▀▀ ▄▄▄▄▄ ▀▀▀▀▀▀▀▀▀▀ █
█ ▀        ▄▀ ▄ ▄ ▀▄          █
█▄▄▄      █   █▀█   █      ▄▄▄█
 █  ▀▀▀▄▄▄█   █▀▀▄  █▄▄▄▀▀▀  █
 █        █   █▄▄█  █        █
 █         ▀▄ ▀ ▀ ▄▀         █
 █           ▀▀▀▀▀         █ █
 █ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀ █
 ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀
    ▀▀                   ▀▀  



Arbitrum Balance
/



             ▄▄████▄▄
         ▄▄████████████▄▄
      ▄██████████ █████████▄
█▀█▄▄▄███████████ █▀█▀██████
▀▀▀         ▀████      ▀████
▀▀▀▀▀▀▀▀█▀▀▄    █ ████  ████
     ▄▄▄ ▀▄ ▀▀▀▀█        ███
     █▄█   ▀▀▀▀▀█ █████  ███
▄▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█       ▄██
   ▄▄▄     ▄█████ █▄█▄████
   █▄█▀▀▀▀███████ ██████▀
            ▀████████▀▀
              ▀▀██▀▀

           


imhoneer investment fund
/


   ▄▄███████████████▄▄
 ▄█████████████████████▄
▄██████████████▀▀███████▄
████████████▀▀    ███████
█████████▀▀   ▄   ███████
██████▀▀     █    ███████
████▀       █     ███████
█████▄▄   ▄█      ███████
████████ ██▄      ███████
▀████████ ▀▄███▄▄███████▀
 ▀█████████████████████▀
   ▀▀███████████████▀▀


Telegram-канал @imho_idea
Mightywill
Copper Member
Newbie
*
Offline Offline

Activity: 90
Merit: 0


View Profile
December 14, 2020, 02:54:27 PM
 #2

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

а если одна та же транзакция попала в разные блоки потому что они одновремнно были созданы 2мя разынми узлами?
imhoneer (OP)
Legendary
*
Offline Offline

Activity: 2744
Merit: 1588



View Profile
December 16, 2020, 10:23:29 AM
 #3

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

а если одна та же транзакция попала в разные блоки потому что они одновремнно были созданы 2мя разынми узлами?

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

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

Вот примерно как это происходит. Первый стейкер создает примерно такой блок:

[дата и время]
транзакция 1
транзакция 2
...
транзакция 10
[хеш из суммы (хеш предыдущего уже созданного блока + хеш текущих данных)]
[адрес создателя блока 1]
[подпись адреса создателя блока 1]

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

Если же такой скажем более точнее подблок приходит к другому стейкеру, который может включать транзакции, то происходит следующее:

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

Потом к полученному подблоку добавляется подблок от текущего стейкера:

[дата и время]
транзакция 1
транзакция 2
...
транзакция 10
[хеш из суммы адрес создателя подблока 1 (хеш предыдущего уже созданного блока + хеш текущих данных)]
[адрес создателя блока 1]
[подпись адреса создателя блока 1]

ДОБАВЛЯЕТСЯ

[дата и время]
транзакция 1
...
транзакция 5
[хеш из суммы (хеш из суммы адрес создателя подблока 1 + хеш текущих данных)]
[адрес создателя блока 2]
[подпись адреса создателя блока 2]


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

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




         ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄      
        █  █▀▀▀▀▀▀▀█  █        
       ▄▀▀▀▀▄     ▄▀▀▀▀▄      
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█ ▄▀▀▀▀▀▀▀▀▀ ▄▄▄▄▄ ▀▀▀▀▀▀▀▀▀▀ █
█ ▀        ▄▀ ▄ ▄ ▀▄          █
█▄▄▄      █   █▀█   █      ▄▄▄█
 █  ▀▀▀▄▄▄█   █▀▀▄  █▄▄▄▀▀▀  █
 █        █   █▄▄█  █        █
 █         ▀▄ ▀ ▀ ▄▀         █
 █           ▀▀▀▀▀         █ █
 █ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀ █
 ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀
    ▀▀                   ▀▀  



Arbitrum Balance
/



             ▄▄████▄▄
         ▄▄████████████▄▄
      ▄██████████ █████████▄
█▀█▄▄▄███████████ █▀█▀██████
▀▀▀         ▀████      ▀████
▀▀▀▀▀▀▀▀█▀▀▄    █ ████  ████
     ▄▄▄ ▀▄ ▀▀▀▀█        ███
     █▄█   ▀▀▀▀▀█ █████  ███
▄▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█       ▄██
   ▄▄▄     ▄█████ █▄█▄████
   █▄█▀▀▀▀███████ ██████▀
            ▀████████▀▀
              ▀▀██▀▀

           


imhoneer investment fund
/


   ▄▄███████████████▄▄
 ▄█████████████████████▄
▄██████████████▀▀███████▄
████████████▀▀    ███████
█████████▀▀   ▄   ███████
██████▀▀     █    ███████
████▀       █     ███████
█████▄▄   ▄█      ███████
████████ ██▄      ███████
▀████████ ▀▄███▄▄███████▀
 ▀█████████████████████▀
   ▀▀███████████████▀▀


Telegram-канал @imho_idea
imhoneer (OP)
Legendary
*
Offline Offline

Activity: 2744
Merit: 1588



View Profile
December 23, 2021, 11:46:01 AM
 #4

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

Из предыдущего описания:

Quote

И так есть хеш:
3D8293BD4DA72B5437F9B4810B991870145AD443686CF2DDD7B6C16E4F3A4655

В этом консенсусе может учавствовать любой адрес, на котором есть хоть какая-то сумма денег.

Пусть у нас находятся следующие адреса, содержащие любое количество денег на них:

3D8293BD4DA72B5437F9B481E85605A82F82AE07D25F57818AEF65E2243AB5D1
3D8293BD4DA72B54B2284D6B0F3C1368A74D57B1A5A390C8E84540751FB5E51C
3D8293BD4DAA1E21366E4638ED6CC90C8F2702E340B1D9AD0E7FAA0D17BE5D9
3D82936A648A463A27D20E28B1674B68A7CAB351FFCE01A88A00F84A84824505
3D989C378E86086DC3FD6E528D4ED4D7B31B68E6DF3C5D787451E935DECA3020
3082B0DCBF7B2BA5CB6BC4CAABE6A157B1FA3B862FC21C33DB51CEA53B176E06

И так вы видите, что у этих адресов есть совпадения с нашим хешем. Для первого адреса совпадение равно 24, для второго 16, для третьего 11, для четвертого 6, для пятого 2 и для шестого 1.

Тут видно, что идет ранжирование от наибольшего совпадения к наименьшему, но не учтён момент, когда у майнеров одинаковые совпадения, скажем:

Quote
Хеш:
3D8293BD4DA72B5437F9B4810B991870145AD443686CF2DDD7B6C16E4F3A4655

Два майнера:
3D989C378E86086DC3FD6E528D4ED4D7B31B68E6DF3C5D787451E935DECA3020
3DF82B0DCBF7B2BA5CB6BC4CAABE6A157B1FA3B862FC21C33DB51CEA53B176E0

В POSm нужно сделать ранжирование только по майнерам, особенно тех у кого есть одинаковое совпадение, надо сделать дополнительное ранжирование между такими майнерами.

А именно смотреть на символы которые совпали (выделено красным цветом) и смотреть на следующий символ от хеша блока, что у майнеров (выделено синим цветом и подчеркнуто). И майнер с большим символом, будет иметь больший приоритет. Если и он будет иметь совпадение, то по такому же алгоритму сравнивать майнеров на следующим символе и так пока не будет разницы.

Таким образом в нашем ранжировании, майнер с синим символом F будет приоритетнее, чем майнер с синим символом 9. И они поменяются местами при построении подблоков текущего блока:

Quote
Приоритет в строительстве подблоков текущего блока раньше.
Хеш:
3D8293BD4DA72B5437F9B4810B991870145AD443686CF2DDD7B6C16E4F3A4655

3D8293BD4DA72B5437F9B481E85605A82F82AE07D25F57818AEF65E2243AB5D1
3D8293BD4DA72B54B2284D6B0F3C1368A74D57B1A5A390C8E84540751FB5E51C
3D8293BD4DAA1E21366E4638ED6CC90C8F2702E340B1D9AD0E7FAA0D17BE5D9
3D82936A648A463A27D20E28B1674B68A7CAB351FFCE01A88A00F84A84824505
3D989C378E86086DC3FD6E528D4ED4D7B31B68E6DF3C5D787451E935DECA3020  Майнер1
3DF82B0DCBF7B2BA5CB6BC4CAABE6A157B1FA3B862FC21C33DB51CEA53B176E0 Майнер2
3082B0DCBF7B2BA5CB6BC4CAABE6A157B1FA3B862FC21C33DB51CEA53B176E06


Приоритет в строительстве подблоков текущего блока стал.
Хеш:
3D8293BD4DA72B5437F9B4810B991870145AD443686CF2DDD7B6C16E4F3A4655

3D8293BD4DA72B5437F9B481E85605A82F82AE07D25F57818AEF65E2243AB5D1
3D8293BD4DA72B54B2284D6B0F3C1368A74D57B1A5A390C8E84540751FB5E51C
3D8293BD4DAA1E21366E4638ED6CC90C8F2702E340B1D9AD0E7FAA0D17BE5D9
3D82936A648A463A27D20E28B1674B68A7CAB351FFCE01A88A00F84A84824505
3DF82B0DCBF7B2BA5CB6BC4CAABE6A157B1FA3B862FC21C33DB51CEA53B176E0 Майнер2
3D989C378E86086DC3FD6E528D4ED4D7B31B68E6DF3C5D787451E935DECA3020  Майнер1
3082B0DCBF7B2BA5CB6BC4CAABE6A157B1FA3B862FC21C33DB51CEA53B176E06


Таким образом, майнеры должны составиться по приоритету и более высокое место в строительстве блока займет Майнер2 и разместит там свои транзакции, а Майнер1 будет его ниже уже со своими транзакциями.



         ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄      
        █  █▀▀▀▀▀▀▀█  █        
       ▄▀▀▀▀▄     ▄▀▀▀▀▄      
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█ ▄▀▀▀▀▀▀▀▀▀ ▄▄▄▄▄ ▀▀▀▀▀▀▀▀▀▀ █
█ ▀        ▄▀ ▄ ▄ ▀▄          █
█▄▄▄      █   █▀█   █      ▄▄▄█
 █  ▀▀▀▄▄▄█   █▀▀▄  █▄▄▄▀▀▀  █
 █        █   █▄▄█  █        █
 █         ▀▄ ▀ ▀ ▄▀         █
 █           ▀▀▀▀▀         █ █
 █ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀ █
 ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀
    ▀▀                   ▀▀  



Arbitrum Balance
/



             ▄▄████▄▄
         ▄▄████████████▄▄
      ▄██████████ █████████▄
█▀█▄▄▄███████████ █▀█▀██████
▀▀▀         ▀████      ▀████
▀▀▀▀▀▀▀▀█▀▀▄    █ ████  ████
     ▄▄▄ ▀▄ ▀▀▀▀█        ███
     █▄█   ▀▀▀▀▀█ █████  ███
▄▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█       ▄██
   ▄▄▄     ▄█████ █▄█▄████
   █▄█▀▀▀▀███████ ██████▀
            ▀████████▀▀
              ▀▀██▀▀

           


imhoneer investment fund
/


   ▄▄███████████████▄▄
 ▄█████████████████████▄
▄██████████████▀▀███████▄
████████████▀▀    ███████
█████████▀▀   ▄   ███████
██████▀▀     █    ███████
████▀       █     ███████
█████▄▄   ▄█      ███████
████████ ██▄      ███████
▀████████ ▀▄███▄▄███████▀
 ▀█████████████████████▀
   ▀▀███████████████▀▀


Telegram-канал @imho_idea
Boristhecat
Hero Member
*****
Offline Offline

Activity: 756
Merit: 629



View Profile
December 23, 2021, 05:50:10 PM
 #5

А не будет ли эта система потреблять космические вычислительные мощности?
Допустим, есть мемпул, содержащий 100к транзакций.

1. Сначала система должна проранжировать все адреса относительно последнего хеша - трата ресурсов и времени.
 а. Кто будет проводить ранжирование в сети, где все узлы равны (а какие-то могут быть вредоносными)?
 б. Какие вычислительные мощности это займет если адресов, допустим, 200 миллионов?

2. Допустим, у нас нереальный, с точки зрения математики, результат, и у нас получилось, для проведения имеющихся 100к транзакций, 5000 адресов (20 транзакций на адрес).

Первый адрес выбирает 20 транзакций из 100к -> второй адрес получает информацию от 1-го, чтобы выбрать свои 20 транзакций -> ... -> 5000-й адрес подтверждает последние 20-ть транзакций без выбора. Это уже огромное количество действий, причем с обменом информации - опять трата вычислительных ресурсов и времени.

Если взять реальный результат, то на 200 миллионов адресов, повезет если будет пара совпадений на 6 цифр из адреса с цифрами из хеша. Среднее количество совпадений будет еще меньше. Допустим 3 (опять оптимистичная оценка). Получится что все операции выше надо будет провести с 33 333 адресов.

Предположу, что для создания одного такого блока уйдет точно не 10 минут и даже не час.

И я не увидел системы консенсуса - что система будет делать если в ней окажутся адреса которые будут майнить ложную информацию?
echogomodrill
Full Member
***
Offline Offline

Activity: 1498
Merit: 133


View Profile
December 24, 2021, 08:24:51 AM
 #6

считаю, что блоки с транзакциями это тупиковый путь, слишком много будет потреблять хранилища и будет органичивать по тпс
imhoneer (OP)
Legendary
*
Offline Offline

Activity: 2744
Merit: 1588



View Profile
December 24, 2021, 03:06:48 PM
 #7


А не будет ли эта система потреблять космические вычислительные мощности?
Допустим, есть мемпул, содержащий 100к транзакций.

1. Сначала система должна проранжировать все адреса относительно последнего хеша - трата ресурсов и времени.
 а. Кто будет проводить ранжирование в сети, где все узлы равны (а какие-то могут быть вредоносными)?
 б. Какие вычислительные мощности это займет если адресов, допустим, 200 миллионов?

2. Допустим, у нас нереальный, с точки зрения математики, результат, и у нас получилось, для проведения имеющихся 100к транзакций, 5000 адресов (20 транзакций на адрес).

Первый адрес выбирает 20 транзакций из 100к -> второй адрес получает информацию от 1-го, чтобы выбрать свои 20 транзакций -> ... -> 5000-й адрес подтверждает последние 20-ть транзакций без выбора. Это уже огромное количество действий, причем с обменом информации - опять трата вычислительных ресурсов и времени.

Если взять реальный результат, то на 200 миллионов адресов, повезет если будет пара совпадений на 6 цифр из адреса с цифрами из хеша. Среднее количество совпадений будет еще меньше. Допустим 3 (опять оптимистичная оценка). Получится что все операции выше надо будет провести с 33 333 адресов.

Предположу, что для создания одного такого блока уйдет точно не 10 минут и даже не час.

И я не увидел системы консенсуса - что система будет делать если в ней окажутся адреса которые будут майнить ложную информацию?



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

Господа считаю Вы немного не правильно понимаете мою идею.

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

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

Quote
Хеш предыдущего блока:3D8293BD8
========================================================================================
Майнер1:3D8F82B0D
Timestamp:2021-12-24T23:50:58.75

Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/2.56/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.24/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
========================================================================================
Майнер2:3DF82B0D
Timestamp:2021-12-24T23:53:58.75

Транзакция: хеш_адреса_отправителя/8.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/3.56/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
========================================================================================
Майнер3:3082B0D
Timestamp:2021-12-24T23:54:58.75

Транзакция: хеш_адреса_отправителя/9.02/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя

И так никакая система ничего не считает. Условно, как в Биткоине, вся сеть получает со временем хеш предыдущего блока, допустим это хеш из примера выше 3D8293BD8.

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

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

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

Где-то ещё находится майнер3, он также вначале рассылал свой блок с одним совпадением, потом он получил, подблок майнера2 и соединил его со своим блоком, в итоге сложность соединенных подблоков была 3. Потом к нему пришел подблок от майнера1, где была сумма совпадений 3 сразу и если он добавит свой подблок, то получит сумму совпадений своего и майнера1 подблоков в количестве 4.

Теперь же нашему майнеру3, приходят 2 подблока в одном блоке, где есть майнер1 и майнер2, сумма совпадений там 5. Если он добавит к этому подблоку свой подблок, то получит сумму совпадений 6.

И на текущий момент, для создания общего текущего блока из подблоков разных майнеров это максимальная сумма совпадений у всей сети, которая была создана 3 адресами.


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

Лучше подумайте вот о чем, если данный алгоритм будет реально рабочим, то можно вернуть "золотые времена Сатоши" и майнить на простых устройствах постоянно. Это будет по-настоящему народно и децентрализовано. Асик фермы и пулы станут ненужны.

Поэтому и предлагаю давайте поищем вместе слабые места у этого алгоритма консенсуса.



         ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄      
        █  █▀▀▀▀▀▀▀█  █        
       ▄▀▀▀▀▄     ▄▀▀▀▀▄      
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█ ▄▀▀▀▀▀▀▀▀▀ ▄▄▄▄▄ ▀▀▀▀▀▀▀▀▀▀ █
█ ▀        ▄▀ ▄ ▄ ▀▄          █
█▄▄▄      █   █▀█   █      ▄▄▄█
 █  ▀▀▀▄▄▄█   █▀▀▄  █▄▄▄▀▀▀  █
 █        █   █▄▄█  █        █
 █         ▀▄ ▀ ▀ ▄▀         █
 █           ▀▀▀▀▀         █ █
 █ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀ █
 ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀
    ▀▀                   ▀▀  



Arbitrum Balance
/



             ▄▄████▄▄
         ▄▄████████████▄▄
      ▄██████████ █████████▄
█▀█▄▄▄███████████ █▀█▀██████
▀▀▀         ▀████      ▀████
▀▀▀▀▀▀▀▀█▀▀▄    █ ████  ████
     ▄▄▄ ▀▄ ▀▀▀▀█        ███
     █▄█   ▀▀▀▀▀█ █████  ███
▄▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█       ▄██
   ▄▄▄     ▄█████ █▄█▄████
   █▄█▀▀▀▀███████ ██████▀
            ▀████████▀▀
              ▀▀██▀▀

           


imhoneer investment fund
/


   ▄▄███████████████▄▄
 ▄█████████████████████▄
▄██████████████▀▀███████▄
████████████▀▀    ███████
█████████▀▀   ▄   ███████
██████▀▀     █    ███████
████▀       █     ███████
█████▄▄   ▄█      ███████
████████ ██▄      ███████
▀████████ ▀▄███▄▄███████▀
 ▀█████████████████████▀
   ▀▀███████████████▀▀


Telegram-канал @imho_idea
witcher_sense
Legendary
*
Offline Offline

Activity: 2450
Merit: 4415


🔐BitcoinMessage.Tools🔑


View Profile WWW
December 24, 2021, 03:26:08 PM
 #8

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

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

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

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
Boristhecat
Hero Member
*****
Offline Offline

Activity: 756
Merit: 629



View Profile
December 24, 2021, 03:31:21 PM
 #9

-skip-
Господа сейчас самое главное понять насколько надежен данный алгоритм при функционировании, а экономия место в блокчейне и прочем, это уже попозже.

Лучше подумайте вот о чем, если данный алгоритм будет реально рабочим, то можно вернуть "золотые времена Сатоши" и майнить на простых устройствах постоянно. Это будет по-настоящему народно и децентрализовано. Асик фермы и пулы станут ненужны.

Поэтому и предлагаю давайте поищем вместе слабые места у этого алгоритма консенсуса.

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

С учетом количества вычислений (и количества пересылок информации между участниками сети для завершения одного лишь блока) для работы такой системы как раз понадобятся мощные вычислительные устройства и широкополосный интернет каждому участнику сети.
imhoneer (OP)
Legendary
*
Offline Offline

Activity: 2744
Merit: 1588



View Profile
December 25, 2021, 08:38:58 AM
Last edit: December 25, 2021, 01:05:21 PM by imhoneer
 #10

И так давайте разбираться. Как Вы сказали:

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

Пусть сейчас у нас тот же хеш из примера:
Quote
Хеш предыдущего блока:3D8293BD8


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

Назовем этого майнера Майнер1. Тогда вот примерно его подблок:

Quote
Хеш предыдущего блока:3D8293BD8
========================================================================================
Майнер1:3D8293BD8
Timestamp:2021-12-24T23:50:58.75

Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/2.56/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.24/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/2.56/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.24/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/2.56/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.24/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
========================================================================================

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

Соседние ноды принимает этот подблок, проверяют его, если всё правильно, то рассылают дальше.

Но у пользователей полно разных адресов, а значит у кого-то находится адрес, совпадающий только на 8 символов из 9, или 1 из 9. То он тоже имеет право создавать свой подблок, объединяя с подблоком Майнера1. Назовем его Майнер2 и у него 7 совпадений из 9.
Вот как пример:
Quote
Хеш предыдущего блока:3D8293BD8
========================================================================================
Майнер1:3D8293BD8
Timestamp:2021-12-24T23:50:58.75

Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/2.56/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.24/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/2.56/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.24/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/2.56/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.24/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
========================================================================================
Майнер2:3D8293BF7
Timestamp:2021-12-24T23:52:58.75

Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/2.56/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.24/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/2.56/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.24/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
========================================================================================

Сейчас сумма совпадений данного составного блока равна 16: 9 совпадений у Майнера1 и 7 совпадений у Майнера2.

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

Допустим нашелся ещё один Майнер3, у которого только 4 совпадения, он создает свой подблок и добавляет его к нашему текущему составному блоку:

Quote
Хеш предыдущего блока:3D8293BD8
========================================================================================
Майнер1:3D8293BD8
Timestamp:2021-12-24T23:50:58.75

Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/2.56/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.24/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/2.56/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.24/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/2.56/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.24/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
========================================================================================
Майнер2:3D8293BF7
Timestamp:2021-12-24T23:52:58.75

Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/2.56/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.24/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/2.56/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.24/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
========================================================================================
Майнер2:3D82F793B
Timestamp:2021-12-24T23:53:58.75

Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/2.56/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.24/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
========================================================================================

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

Теперь насчет заинтересованности в передаче только своих транзакций, такое желание вполне может быть, только есть одно но, а именно Вам достаточно иметь хотя бы 16 счетов с первыми символами от 0 до F, как Вы закрываете полностью диапазон совпадений. У Вас всегда будет, как минимум 1 совпадение. Другое дело, что сможете ли уложится во времени, для создания своего подблока. Так как после создания подблока с максимальным совпадением от его времени создания идет отчет 5 минут и потом уже подблоки не принимаются во включение в блок.

Это сеть, где учавствуют все. Хочешь, чтобы было сделано хорошо, сделай всё сам. Совпадение по хешам лишает какого либо преимущества, как при обычном майнинге, за счет того, что создание блока идет с участием разных майнеров и такой блок получается составной, а выбор майнеров для участия является случайным, так как нельзя контролировать полностью сам процесс создания текущего блока, даже сетью майнеров, так как всегда найдется участник со своим подблоком.




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

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

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

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




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

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

Сейчас мы обсуждаем идею такого алгоритма консенсуса и чтобы не было сложно для понимания идем от самых простых и понятных вещей.

Основы алгоритма содержатся в следующих положениях:

1. Блок состоит из подблоков, которые формируеются по принципу: к подблоку с самым большим числом совпадений прикрепляются подблоки с меньшим числом совпадений.

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

P. S. Весь ответ Вам уже не влез, отвечу в следу&#



         ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄      
        █  █▀▀▀▀▀▀▀█  █        
       ▄▀▀▀▀▄     ▄▀▀▀▀▄      
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█ ▄▀▀▀▀▀▀▀▀▀ ▄▄▄▄▄ ▀▀▀▀▀▀▀▀▀▀ █
█ ▀        ▄▀ ▄ ▄ ▀▄          █
█▄▄▄      █   █▀█   █      ▄▄▄█
 █  ▀▀▀▄▄▄█   █▀▀▄  █▄▄▄▀▀▀  █
 █        █   █▄▄█  █        █
 █         ▀▄ ▀ ▀ ▄▀         █
 █           ▀▀▀▀▀         █ █
 █ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀ █
 ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀
    ▀▀                   ▀▀  



Arbitrum Balance
/



             ▄▄████▄▄
         ▄▄████████████▄▄
      ▄██████████ █████████▄
█▀█▄▄▄███████████ █▀█▀██████
▀▀▀         ▀████      ▀████
▀▀▀▀▀▀▀▀█▀▀▄    █ ████  ████
     ▄▄▄ ▀▄ ▀▀▀▀█        ███
     █▄█   ▀▀▀▀▀█ █████  ███
▄▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█       ▄██
   ▄▄▄     ▄█████ █▄█▄████
   █▄█▀▀▀▀███████ ██████▀
            ▀████████▀▀
              ▀▀██▀▀

           


imhoneer investment fund
/


   ▄▄███████████████▄▄
 ▄█████████████████████▄
▄██████████████▀▀███████▄
████████████▀▀    ███████
█████████▀▀   ▄   ███████
██████▀▀     █    ███████
████▀       █     ███████
█████▄▄   ▄█      ███████
████████ ██▄      ███████
▀████████ ▀▄███▄▄███████▀
 ▀█████████████████████▀
   ▀▀███████████████▀▀


Telegram-канал @imho_idea
imhoneer (OP)
Legendary
*
Offline Offline

Activity: 2744
Merit: 1588



View Profile
December 26, 2021, 09:20:58 AM
 #11

И так продолжим, а то вчера не поместился полностью текст.



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

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

Сейчас мы обсуждаем идею такого алгоритма консенсуса и чтобы не было сложно для понимания идем от самых простых и понятных вещей.

Основы алгоритма содержатся в следующих положениях:

1. Блок состоит из подблоков, которые формируеются по принципу: к подблоку с самым большим числом совпадений прикрепляются подблоки с меньшим числом совпадений.

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

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

4. Если у ноды 2 разных текущих блока с подблоками и одинаковая сумма совпадений, то пересылает оба этих блока.

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

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

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



         ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄      
        █  █▀▀▀▀▀▀▀█  █        
       ▄▀▀▀▀▄     ▄▀▀▀▀▄      
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█ ▄▀▀▀▀▀▀▀▀▀ ▄▄▄▄▄ ▀▀▀▀▀▀▀▀▀▀ █
█ ▀        ▄▀ ▄ ▄ ▀▄          █
█▄▄▄      █   █▀█   █      ▄▄▄█
 █  ▀▀▀▄▄▄█   █▀▀▄  █▄▄▄▀▀▀  █
 █        █   █▄▄█  █        █
 █         ▀▄ ▀ ▀ ▄▀         █
 █           ▀▀▀▀▀         █ █
 █ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀ █
 ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀
    ▀▀                   ▀▀  



Arbitrum Balance
/



             ▄▄████▄▄
         ▄▄████████████▄▄
      ▄██████████ █████████▄
█▀█▄▄▄███████████ █▀█▀██████
▀▀▀         ▀████      ▀████
▀▀▀▀▀▀▀▀█▀▀▄    █ ████  ████
     ▄▄▄ ▀▄ ▀▀▀▀█        ███
     █▄█   ▀▀▀▀▀█ █████  ███
▄▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█       ▄██
   ▄▄▄     ▄█████ █▄█▄████
   █▄█▀▀▀▀███████ ██████▀
            ▀████████▀▀
              ▀▀██▀▀

           


imhoneer investment fund
/


   ▄▄███████████████▄▄
 ▄█████████████████████▄
▄██████████████▀▀███████▄
████████████▀▀    ███████
█████████▀▀   ▄   ███████
██████▀▀     █    ███████
████▀       █     ███████
█████▄▄   ▄█      ███████
████████ ██▄      ███████
▀████████ ▀▄███▄▄███████▀
 ▀█████████████████████▀
   ▀▀███████████████▀▀


Telegram-канал @imho_idea
witcher_sense
Legendary
*
Offline Offline

Activity: 2450
Merit: 4415


🔐BitcoinMessage.Tools🔑


View Profile WWW
December 26, 2021, 01:04:04 PM
 #12

У Вас всегда будет, как минимум 1 совпадение. Другое дело, что сможете ли уложится во времени, для создания своего подблока. Так как после создания подблока с максимальным совпадением от его времени создания идет отчет 5 минут и потом уже подблоки не принимаются во включение в блок.
Оставим пока вопрос о том, что в таком блокчейне переводы средств будут совершаться из "неправильных" экономических соображений, то есть исключительно ради увеличения шанса получить прибыль с майнинга, а не ради соверешения каки-то других взаимовыгодных обменов. Если вкратце, переводы будут в основном совершаться самому себе, что не есть хорошо в принципе. Но меня больше интересует вопрос про ваши "5 минут". Кто будет считать это время и как?

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
imhoneer (OP)
Legendary
*
Offline Offline

Activity: 2744
Merit: 1588



View Profile
December 26, 2021, 03:03:07 PM
 #13


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

Чтобы ответить на ваш последний вопрос, то приложу вначале пример блока, который уже был:

Quote
Хеш предыдущего блока:3D8293BD8
========================================================================================
Майнер1:3D8293BD8
Timestamp:2021-12-24T23:50:58.75

Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
...
Транзакция: хеш_адреса_отправителя/1.24/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
========================================================================================
Майнер2:3D8293BF7
Timestamp:2021-12-24T23:52:58.75

Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
...
Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
========================================================================================
Майнер3:3D82F793B
Timestamp:2021-12-24T23:53:58.75

Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя

Транзакция: хеш_адреса_отправителя/1.20/хеш_адреса_получателя/хеш_транзакции/подпись_отправителя
========================================================================================

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

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

У Майнера1 самое большое число совпадений, его время может быть любое, но не меньше, чем у последнего подблока предыдущего блока.

Хочу напомнить, что не так давно у биткоина вместо положенных 10 минут было создание блока через 1-2 часа.

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

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

Допустим данный Майнер1 с 9 совпадениями решил задержать сильно блок. Ну остальные майнеры ждать не станут, а сразу пихают всем соседним нодам свои подблоки и объединяют с другими.

И так может получится, что есть подблок Майнера1 с 9 совпадениями, а есть другая версия блока с 4 подблоками с 10 совпадениями, там 5 минут уже прошло и началось строительство нового блока, а наш Майнер1 решивший наказать сеть остался не у дел.


Теперь поговорим о якобы выгодности только своих транзакций. Во первых это хорошо, ещё Сатоши завещал, чтобы все транзакции шли только на новые неиспользованные счета. А здесь деньги будут не только на новые счета идти, но и равномерно распределяться до минимальных величин для майнинга. А не концентрироваться в огромных суммах на 1-2 счетах.

Но я иду немного к другой идеи, посмотрите на схему:

1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 11 1 1 1 1
1 1 1 1 1 1 1 1 1 1

Условно это блокчейн, состоящий из аккаунтов на котором есть только 1 единица, нет дробей и нет других величин. Цифры зеленым это ваши деньги, о том что это ваши деньги знаете только Вы. В таком блокчейне никто не знает сколько всего у Вас денег.

Чтобы кому-то перевести деньги, допустим 2 единицы, Вам надо с двух своих счетов перевести на другие два счета деньги.

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

Именно слабые его стороны, я и пытаюсь выяснить.



         ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄      
        █  █▀▀▀▀▀▀▀█  █        
       ▄▀▀▀▀▄     ▄▀▀▀▀▄      
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█ ▄▀▀▀▀▀▀▀▀▀ ▄▄▄▄▄ ▀▀▀▀▀▀▀▀▀▀ █
█ ▀        ▄▀ ▄ ▄ ▀▄          █
█▄▄▄      █   █▀█   █      ▄▄▄█
 █  ▀▀▀▄▄▄█   █▀▀▄  █▄▄▄▀▀▀  █
 █        █   █▄▄█  █        █
 █         ▀▄ ▀ ▀ ▄▀         █
 █           ▀▀▀▀▀         █ █
 █ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀ █
 ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀
    ▀▀                   ▀▀  



Arbitrum Balance
/



             ▄▄████▄▄
         ▄▄████████████▄▄
      ▄██████████ █████████▄
█▀█▄▄▄███████████ █▀█▀██████
▀▀▀         ▀████      ▀████
▀▀▀▀▀▀▀▀█▀▀▄    █ ████  ████
     ▄▄▄ ▀▄ ▀▀▀▀█        ███
     █▄█   ▀▀▀▀▀█ █████  ███
▄▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█       ▄██
   ▄▄▄     ▄█████ █▄█▄████
   █▄█▀▀▀▀███████ ██████▀
            ▀████████▀▀
              ▀▀██▀▀

           


imhoneer investment fund
/


   ▄▄███████████████▄▄
 ▄█████████████████████▄
▄██████████████▀▀███████▄
████████████▀▀    ███████
█████████▀▀   ▄   ███████
██████▀▀     █    ███████
████▀       █     ███████
█████▄▄   ▄█      ███████
████████ ██▄      ███████
▀████████ ▀▄███▄▄███████▀
 ▀█████████████████████▀
   ▀▀███████████████▀▀


Telegram-канал @imho_idea
witcher_sense
Legendary
*
Offline Offline

Activity: 2450
Merit: 4415


🔐BitcoinMessage.Tools🔑


View Profile WWW
December 27, 2021, 03:27:21 AM
 #14

Чтобы ответить на ваш последний вопрос, то приложу вначале пример блока, который уже был:
Прошу Вас обратить внимание на время создания подблока у каждого майнера (я выделил жирным).

Так вот у подблоков есть простое правило: ноды могут принять любой подблок, только со временем создания не больше 5 минут от подблока с самых большим числом совпадений.  
Так что такое время создания подблока и кто его регистрирует? Кто будет отсчитывать пять минут от времени создания блока и каким образом? Почему я задаю эти вопросы - если ваш блокчейн каким-то магическим образом привязан к реальному времени, то зачем вам вообще консенсус? Просто отсортируйте транзакции по времени и отбрасывайте те, которые тратят теже UTXO, но позже. Почему Сатоши до такого не додумался? Вторая проблема с привязкой следующая: ноды распределены географически и кто-то всегда будет иметь преимущество, потому что раньше увидит блок-кандидат. Если в сети будет сильный майнер в одной точке мира, то майнеры из другой точки мира не будут успевать майнить из-за задержки. Но это мелочь по сравнению с предыдущей проблемой. В общем, проблема с привязкой ко времени по-моему очевидна или я чего-то не понимаю.

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
imhoneer (OP)
Legendary
*
Offline Offline

Activity: 2744
Merit: 1588



View Profile
December 27, 2021, 04:36:50 PM
 #15


Так что такое время создания подблока и кто его регистрирует? Кто будет отсчитывать пять минут от времени создания блока и каким образом? Почему я задаю эти вопросы - если ваш блокчейн каким-то магическим образом привязан к реальному времени, то зачем вам вообще консенсус? Просто отсортируйте транзакции по времени и отбрасывайте те, которые тратят теже UTXO, но позже. Почему Сатоши до такого не додумался? Вторая проблема с привязкой следующая: ноды распределены географически и кто-то всегда будет иметь преимущество, потому что раньше увидит блок-кандидат. Если в сети будет сильный майнер в одной точке мира, то майнеры из другой точки мира не будут успевать майнить из-за задержки. Но это мелочь по сравнению с предыдущей проблемой. В общем, проблема с привязкой ко времени по-моему очевидна или я чего-то не понимаю.

И так давайте расмотрим пример со временем.

Допустим сейчас время последнего поблока предыдущего блока номер 20 равно 15:00.

Сейчас начинаем майнить текущий блок номер 21. Его время у любого майнера не может быть раньше, чем 15:00.

Сейчас основное время, скажем 15:10. Время у всех майнеров будет в формате UTC.

Пусть у нас в сети находится 4 майнера:

- Майнер1 имеет 7 совпадений и создает подблок с времнем 15:30. Соседние ноды не принимают данный подблок, так как у большинства время примерно в диапазоне 15:07-15:12. Поэтому данный майнер принимает решение наказать сеть и не рассылать больше свой подблок.

- Майнер2 имеет 6 совпадений. Это честный майнер, он ставить текущее время, скажем 15:08 и рассылает соседним нодам.

- Майнер3 имеет 3 совпадения. Это майнер обманщик, он свое время специально делает очень маленьким 15:01. Соседние ноды пересылают данный подблок, но честные майнеры не могут уже присоединить свой подблок к его подблоку. Так как у честных майнеров время примерно 15:07-15:12.

-Майнер4 имеет 2 совпадение. Данный майнер тоже выпускал свой подблок со временем 15:08 и рассылал соседним нодам. Но сейчас ему пришел блок от честного Майнера 2, он видит время создания его подблока 15:08. Майнер4 видит, что сейчас у него время 15:12 и он укладывается в диапазон от этого подблока Майнера2 с 6 совпадениями. Поэтому он принимает решение и присоединяет свой подблок с 2 совпадениями к подблоку от Майнера2.

В итоге Майнер4 создает блок 21 с общим числом совпадений равным 8, состоящий из 2 подблоков:

1. От Манера2 с 6 совпадениями и временем создания 15:08.
2. От Майнера4 с 2 совпадениями и временем создания 15:12.

А на счет разных географических местонахождений. Ну так и в биткоине есть это время, там оно 10 минут, в лайткоине это 2.5 минут. И ноды нормально рассылают хеши от предыдущих блоков для майнеров.

Поэтому это не будет помехой.



         ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄      
        █  █▀▀▀▀▀▀▀█  █        
       ▄▀▀▀▀▄     ▄▀▀▀▀▄      
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█ ▄▀▀▀▀▀▀▀▀▀ ▄▄▄▄▄ ▀▀▀▀▀▀▀▀▀▀ █
█ ▀        ▄▀ ▄ ▄ ▀▄          █
█▄▄▄      █   █▀█   █      ▄▄▄█
 █  ▀▀▀▄▄▄█   █▀▀▄  █▄▄▄▀▀▀  █
 █        █   █▄▄█  █        █
 █         ▀▄ ▀ ▀ ▄▀         █
 █           ▀▀▀▀▀         █ █
 █ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀ █
 ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀
    ▀▀                   ▀▀  



Arbitrum Balance
/



             ▄▄████▄▄
         ▄▄████████████▄▄
      ▄██████████ █████████▄
█▀█▄▄▄███████████ █▀█▀██████
▀▀▀         ▀████      ▀████
▀▀▀▀▀▀▀▀█▀▀▄    █ ████  ████
     ▄▄▄ ▀▄ ▀▀▀▀█        ███
     █▄█   ▀▀▀▀▀█ █████  ███
▄▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█       ▄██
   ▄▄▄     ▄█████ █▄█▄████
   █▄█▀▀▀▀███████ ██████▀
            ▀████████▀▀
              ▀▀██▀▀

           


imhoneer investment fund
/


   ▄▄███████████████▄▄
 ▄█████████████████████▄
▄██████████████▀▀███████▄
████████████▀▀    ███████
█████████▀▀   ▄   ███████
██████▀▀     █    ███████
████▀       █     ███████
█████▄▄   ▄█      ███████
████████ ██▄      ███████
▀████████ ▀▄███▄▄███████▀
 ▀█████████████████████▀
   ▀▀███████████████▀▀


Telegram-канал @imho_idea
witcher_sense
Legendary
*
Offline Offline

Activity: 2450
Merit: 4415


🔐BitcoinMessage.Tools🔑


View Profile WWW
December 28, 2021, 07:43:39 AM
 #16

<…>
Кажется, я начинаю понимать вашу идею, но некоторые моменты все равно остаются неясными, в частности я не увидел четко сформулированных правил консенсуса, которые должны проверять все ноды в сети. Только один раз что-то похожее на правило промелькнуло типа "метка времени в следующем блоке должна быть больше чем в предыдущем".

Концепт привязки к меткам времени кажется интересным и я нашел, что-то похожее здесь: Доказательство активности с ограниченным доверием. Это алгоритм консенсуса похожий на Proof-of-Work, только в качестве nonce используется текущая метка времени (UNIX). То есть майнеры создают блоки с транзакциями, а дальше ищут решение задачки для blockhash+timestamp. Все как в PoW только есть четкая зависимость от времени, уменьшенная сложность и отсутствие награды в токенах. Даже предусмотрена защита от атаки 51% в виде создания контрольных точек.

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

Например, следующий сценарий: я запускаю ноду со своей собственной историей транзакций, где вся награда достается мне. Метки времени все верные и в последнем блоке стоит текущее время. Далее я отправляю свою версию соседним нодам. Что будет в этом случае? Они отбросят мою версию, учитывая что правил никаких она не нарушает? Если не отбросят, то получится что несколько конфликтующих между собой версий будут свободно гулять по сети и ноды перестанут синхронизироваться. Каков механизм защиты от подобной атаки?

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
imhoneer (OP)
Legendary
*
Offline Offline

Activity: 2744
Merit: 1588



View Profile
December 28, 2021, 11:29:58 AM
 #17


Кажется, я начинаю понимать вашу идею, но некоторые моменты все равно остаются неясными, в частности я не увидел четко сформулированных правил консенсуса, которые должны проверять все ноды в сети. Только один раз что-то похожее на правило промелькнуло типа "метка времени в следующем блоке должна быть больше чем в предыдущем".
Возможно я плохо сформулировал, но принципы данного алгоритма консенсуса, я приводил:
Quote
Основы алгоритма содержатся в следующих положениях:

1. Блок состоит из подблоков, которые формируеются по принципу: к подблоку с самым большим числом совпадений прикрепляются подблоки с меньшим числом совпадений.

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

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

4. Если у ноды 2 разных текущих блока с подблоками и одинаковая сумма совпадений, то пересылает оба этих блока.

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

Основная фильтрация майнеров в подблоках идет по приоритету числа совпадений:

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

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




Концепт привязки к меткам времени кажется интересным и я нашел, что-то похожее здесь: Доказательство активности с ограниченным доверием. Это алгоритм консенсуса похожий на Proof-of-Work, только в качестве nonce используется текущая метка времени (UNIX). То есть майнеры создают блоки с транзакциями, а дальше ищут решение задачки для blockhash+timestamp. Все как в PoW только есть четкая зависимость от времени, уменьшенная сложность и отсутствие награды в токенах. Даже предусмотрена защита от атаки 51% в виде создания контрольных точек.
Там совершенно другая логика используется, так как база там построена на алгоритме доказательства активности Proof of Activity, но некоторое сходство есть, там это достаточно важная часть для майнинга, а у меня скорее индикативная, так как повторюсь, что ранжирование майнеров идет по количеству совпадений. И время 5 минут, от первого подблока с максимальным числом совпадений, служит скорее ориентиром, но не является сильно критичным.



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

Например, следующий сценарий: я запускаю ноду со своей собственной историей транзакций, где вся награда достается мне. Метки времени все верные и в последнем блоке стоит текущее время. Далее я отправляю свою версию соседним нодам. Что будет в этом случае? Они отбросят мою версию, учитывая что правил никаких она не нарушает? Если не отбросят, то получится что несколько конфликтующих между собой версий будут свободно гулять по сети и ноды перестанут синхронизироваться. Каков механизм защиты от подобной атаки?

А это самая важная часть. Может ли так быть, как Вы описали, конечно может, никто майнеров не ограничивает. Единственное пожалуй правило, которое надо добавить, что участие в майниге на текущем блоке могут только принять те аккаунты, которые получили деньги от 10 и более блоков назад. Некий аналог стейкинга с блокировкой, как в классическом POS. Так это вымывает сильно ресурсы у нападавшего, для строительства своей альтернативной цепочки блоков.

А теперь, я бы хотел поделиться кодом на Python, который моделирует и считает количества всех возможных майнеров в зависимости от количества всех хешей в блокчейне. И так вот сам код, который можно вставить на online-python и посмотреть результат:
Code:
import hashlib

result=[]
a=input("Введите начальный текст для создания эталонного хеша: ")
hash_etalon=hashlib.sha3_256(a.encode()).hexdigest()
len_hash=len(hash_etalon)
kolvo_hash=int(input("Введите количество хешей: "))
hash_sravnen=hashlib.sha3_256(hash_etalon.encode()).hexdigest()
for i in range(kolvo_hash):
    if hash_sravnen[0]==hash_etalon[0]:
        z=0
        ct=0
        for x in hash_etalon:
            if x!=hash_sravnen[z]:
                break
            ct=ct+1
            z=z+1
        result.append(ct)  
    #print(hash_sravnen)
    hash_sravnen=hashlib.sha3_256(hash_sravnen.encode()).hexdigest()
#print(result)
#print(f"Эталонный хеш {hash_etalon}")
print("="*38)
z=0
ct=0
sum=0
mine=0
print(f"В сети находится всего {kolvo_hash} хешей.")
print()
print("Из них для создания идеального текущего блока задействовано:")
for n in range(len_hash+1):
    ss=result.count(n)
    if ss>0:
        print(f"- Количество майнеров {ss} по {n} совпадений.")
        mine=mine+ss
        sum=sum+ss*n
mine_procent=float(mine/kolvo_hash*10000)
mine_procent=int(mine_procent)/100
print()
print(f"Общее количество задействованных майнеров равно {mine}, что составляет {mine_procent}% от общего количества хешей.")
print(f"Общая сумма совпадений для данного идеального блока равна {sum}.")
print("="*38)

Меня интересовал и ваш вопрос, а также вопросы, типа монополии мощности, как у POW в биткоине, когда кто-то захватывает более 51%.

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

И Вы увидите число, они варьируется, но примерно всегда постоянно, а именно только 6.25% от общего количества хешей в системе могут майнить.

Более того посмотрите на результаты, практически при количестве хешей в системе скажем до 10000, то там максимум у майнеров 3 совпадения и их примерно, такое распределение, для 100,000.00 хешей:
Quote
Из них для создания идеального текущего блока задействовано:
- Количество майнеров 5865 по 1 совпадений.
- Количество майнеров 338 по 2 совпадений.
- Количество майнеров 24 по 3 совпадений.
- Количество майнеров 2 по 4 совпадений.
Общее количество задействованных майнеров равно 6229, что составляет 6.22% от общего количества хешей.
Общая сумма совпадений для данного идеального блока равна 6621.

Для 1,000,000 хешей уже:
Quote
Из них для создания идеального текущего блока задействовано:
- Количество майнеров 58651 по 1 совпадений.
- Количество майнеров 3704 по 2 совпадений.
- Количество майнеров 211 по 3 совпадений.
- Количество майнеров 10 по 4 совпадений.

Общее количество задействованных майнеров равно 62576, что составляет 6.25% от общего количества хешей.
Общая сумма совпадений для данного идеального блока равна 66732.

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



         ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄      
        █  █▀▀▀▀▀▀▀█  █        
       ▄▀▀▀▀▄     ▄▀▀▀▀▄      
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█ ▄▀▀▀▀▀▀▀▀▀ ▄▄▄▄▄ ▀▀▀▀▀▀▀▀▀▀ █
█ ▀        ▄▀ ▄ ▄ ▀▄          █
█▄▄▄      █   █▀█   █      ▄▄▄█
 █  ▀▀▀▄▄▄█   █▀▀▄  █▄▄▄▀▀▀  █
 █        █   █▄▄█  █        █
 █         ▀▄ ▀ ▀ ▄▀         █
 █           ▀▀▀▀▀         █ █
 █ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀ █
 ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀
    ▀▀                   ▀▀  



Arbitrum Balance
/



             ▄▄████▄▄
         ▄▄████████████▄▄
      ▄██████████ █████████▄
█▀█▄▄▄███████████ █▀█▀██████
▀▀▀         ▀████      ▀████
▀▀▀▀▀▀▀▀█▀▀▄    █ ████  ████
     ▄▄▄ ▀▄ ▀▀▀▀█        ███
     █▄█   ▀▀▀▀▀█ █████  ███
▄▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█       ▄██
   ▄▄▄     ▄█████ █▄█▄████
   █▄█▀▀▀▀███████ ██████▀
            ▀████████▀▀
              ▀▀██▀▀

           


imhoneer investment fund
/


   ▄▄███████████████▄▄
 ▄█████████████████████▄
▄██████████████▀▀███████▄
████████████▀▀    ███████
█████████▀▀   ▄   ███████
██████▀▀     █    ███████
████▀       █     ███████
█████▄▄   ▄█      ███████
████████ ██▄      ███████
▀████████ ▀▄███▄▄███████▀
 ▀█████████████████████▀
   ▀▀███████████████▀▀


Telegram-канал @imho_idea
echogomodrill
Full Member
***
Offline Offline

Activity: 1498
Merit: 133


View Profile
December 29, 2021, 08:56:49 AM
Last edit: December 29, 2021, 01:12:47 PM by echogomodrill
 #18

а можно написать простейший прототип блокчейна, чтобы с ним поиграться? а то прочитал и не слишком понял, про адреса и хеши
imhoneer (OP)
Legendary
*
Offline Offline

Activity: 2744
Merit: 1588



View Profile
December 29, 2021, 12:45:25 PM
 #19


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


Вчера между мной и одним из форумчан в Телеграме состоялась очень плодотворная беседа относительно моей идеи данного алгоритма. Хотел бы ему за это выразить свою благодарность.

Эволюция алгоритма и поиск динамического баланса.


После этого разговора, некоторые вещи я пересмотрел и стал понимать сам алгоритм и его потенциал ещё глубже. А потому этими мыслями хочу поделиться с вами.

Дело в том, что данный алгоритм имеет очень тесную связь с алгоритмом POW, я бы даже сказал его брат.

Давайте представим себе сеть только с честными майнерами. Расчеты в предыдущем моем посте показывают, что на 1,000,000 хешей максимально идет 4 совпадения:

Quote
Для 1,000,000 хешей уже:

Из них для создания идеального текущего блока задействовано:
- Количество майнеров 58651 по 1 совпадений.
- Количество майнеров 3704 по 2 совпадений.
- Количество майнеров 211 по 3 совпадений.
- Количество майнеров 10 по 4 совпадений.

Общее количество задействованных майнеров равно 62576, что составляет 6.25% от общего количества хешей.
Общая сумма совпадений для данного идеального блока равна 66732.

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

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

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

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

В результате получается, что нечестный майнер потратил 1 час, чтобы получить 40 совпадений для текущего блока, но благодаря тому, что присоединилась ещё куча майнеров (ограничение времени нет), то теперь сумма совпадений этого блока выросла с 40 до 100.
Теперь для перезаписывания уже этого блока нашему нечестному майнеру надо тратить времени в 2 раза больше, а именно 2 часа.
Потом для следующего уже 4 часа и так далее. Вы видите здесь прямую аналогию с POW, как и там,  здесь также растет мощность вычислений для совпадений.

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

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

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

А вот честным майнерам такая мощность не нужна, так как они просто присоединяются к тому у кого большее число совпадений (аналогия с биткоином). И это очень напоминает майниг-пул.


Теперь о вознаграждении за создание блоков. В такой системе нет комиссий вообще. Есть только деньги за создание блока и пусть это будет 1% от суммы всех денег пересылаемых в этом блоке.

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

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



         ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄      
        █  █▀▀▀▀▀▀▀█  █        
       ▄▀▀▀▀▄     ▄▀▀▀▀▄      
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█ ▄▀▀▀▀▀▀▀▀▀ ▄▄▄▄▄ ▀▀▀▀▀▀▀▀▀▀ █
█ ▀        ▄▀ ▄ ▄ ▀▄          █
█▄▄▄      █   █▀█   █      ▄▄▄█
 █  ▀▀▀▄▄▄█   █▀▀▄  █▄▄▄▀▀▀  █
 █        █   █▄▄█  █        █
 █         ▀▄ ▀ ▀ ▄▀         █
 █           ▀▀▀▀▀         █ █
 █ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀ █
 ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀
    ▀▀                   ▀▀  



Arbitrum Balance
/



             ▄▄████▄▄
         ▄▄████████████▄▄
      ▄██████████ █████████▄
█▀█▄▄▄███████████ █▀█▀██████
▀▀▀         ▀████      ▀████
▀▀▀▀▀▀▀▀█▀▀▄    █ ████  ████
     ▄▄▄ ▀▄ ▀▀▀▀█        ███
     █▄█   ▀▀▀▀▀█ █████  ███
▄▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█       ▄██
   ▄▄▄     ▄█████ █▄█▄████
   █▄█▀▀▀▀███████ ██████▀
            ▀████████▀▀
              ▀▀██▀▀

           


imhoneer investment fund
/


   ▄▄███████████████▄▄
 ▄█████████████████████▄
▄██████████████▀▀███████▄
████████████▀▀    ███████
█████████▀▀   ▄   ███████
██████▀▀     █    ███████
████▀       █     ███████
█████▄▄   ▄█      ███████
████████ ██▄      ███████
▀████████ ▀▄███▄▄███████▀
 ▀█████████████████████▀
   ▀▀███████████████▀▀


Telegram-канал @imho_idea
imhoneer (OP)
Legendary
*
Offline Offline

Activity: 2744
Merit: 1588



View Profile
December 30, 2021, 08:52:09 PM
 #20


а можно написать простейший прототип блокчейна, чтобы с ним поиграться? а то прочитал и не слишком понял, про дареса и хеши
Прототип блокчейна я не написал, а вот имитатор майнинга сделал. Можно перейти на online-python и посмотреть результат:

Code:
import hashlib

hash_prev_block=input("Введите хэш sha3_256 предыдущего блока (как пример 67b176705b46206614219f47a05aee7ae6a3edbe850bbbe214c536b989aea4d2): ")
print()
hash_mainera=input("Введите свой хэш sha3_256 для майнинга текущего блока (как пример ed4bc853dce1a3f7afd74fd20a81219cd36d60f8b241fc33dcbe5ebc9381e2f9): ")
print()
kolvo_sovpad=int(input("Введите количество совпадений для своего подблока (будем майнить пока его не получим): "))

nonce=0
str_nonce=""
hash_perezapisivaemogo_bloka=""
hash_nashego_podbloca=""
hash_perezapisivaemogo_bloka=""

while nonce>-1:
    if hash_perezapisivaemogo_bloka[:kolvo_sovpad]==hash_mainera[:kolvo_sovpad]:
        break
    nonce=nonce+1
    str_nonce=str(nonce)
    hash_nashego_podbloca=hashlib.sha3_256(str_nonce.encode()).hexdigest()
    obedinenie=hash_prev_block+hash_nashego_podbloca
    hash_perezapisivaemogo_bloka=hashlib.sha3_256(obedinenie.encode()).hexdigest()
    
print()
print("="*38)
print(f"И так мы к предыдущему блоку с хешем {hash_prev_block} добавили подблок с 1 транзакцией.")
print(f"Наш подблок имеет хеш {hash_nashego_podbloca}.")
print(f"Теперь объединяем хеши предыдущего блока и нашего подблока и хешируем это.")
print(f"Хеш измененного предыдушего блока становится {hash_perezapisivaemogo_bloka}.")  
print(f"Он обеспечивает нас сразу числом совпадений равное {kolvo_sovpad}.")
print(f"Для создания подблока текущего блока на адресе майнинга равном {hash_mainera}.")
print(f"На это потребовалось {nonce} попыток.")

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


Теперь давайте разберем сам майнинг, он здесь 2-х видов: пассивный и активный.

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

Активный майнинг делится на 2 вида: синергетический и эгоистичный.

Активный синергетический майнинг - это как в моем имитаторе, вы просто присоединяете свой подблок к концу предыдущего блока или заменяете последнего майнера с одним совпадением. Главное, что основную часть майнеров вы не убираете из предыдущего блока и даете им заработать.

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



         ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄      
        █  █▀▀▀▀▀▀▀█  █        
       ▄▀▀▀▀▄     ▄▀▀▀▀▄      
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█ ▄▀▀▀▀▀▀▀▀▀ ▄▄▄▄▄ ▀▀▀▀▀▀▀▀▀▀ █
█ ▀        ▄▀ ▄ ▄ ▀▄          █
█▄▄▄      █   █▀█   █      ▄▄▄█
 █  ▀▀▀▄▄▄█   █▀▀▄  █▄▄▄▀▀▀  █
 █        █   █▄▄█  █        █
 █         ▀▄ ▀ ▀ ▄▀         █
 █           ▀▀▀▀▀         █ █
 █ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀ █
 ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀
    ▀▀                   ▀▀  



Arbitrum Balance
/



             ▄▄████▄▄
         ▄▄████████████▄▄
      ▄██████████ █████████▄
█▀█▄▄▄███████████ █▀█▀██████
▀▀▀         ▀████      ▀████
▀▀▀▀▀▀▀▀█▀▀▄    █ ████  ████
     ▄▄▄ ▀▄ ▀▀▀▀█        ███
     █▄█   ▀▀▀▀▀█ █████  ███
▄▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█       ▄██
   ▄▄▄     ▄█████ █▄█▄████
   █▄█▀▀▀▀███████ ██████▀
            ▀████████▀▀
              ▀▀██▀▀

           


imhoneer investment fund
/


   ▄▄███████████████▄▄
 ▄█████████████████████▄
▄██████████████▀▀███████▄
████████████▀▀    ███████
█████████▀▀   ▄   ███████
██████▀▀     █    ███████
████▀       █     ███████
█████▄▄   ▄█      ███████
████████ ██▄      ███████
▀████████ ▀▄███▄▄███████▀
 ▀█████████████████████▀
   ▀▀███████████████▀▀


Telegram-канал @imho_idea
Pages: [1] 2 3 4 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!