Pages:
Author

Topic: TrueCoin <-- правильная монета - page 8. (Read 19792 times)

member
Activity: 112
Merit: 10
с coinAge сложнее. как я понял, это количество_монет*их_возраст (эдакий вариант человеко-часов).
И если с возрастом понятно - это всегда от Х1 до Х2 блоков {дней/часов}
А среднее количество монет прямо пропорционально их объёму вообще. (предложил бытак: среднее число монет в PoS-блоке = supply/2 * (1 / число_блоков_за_60_дней)
Но это глюк симуляторный-то. У нас там либо PoS-монеты в 5 раз быстрее прокручиваются, из-за соотвественно большей скорости блоков, либо заморозка не "простимулирована", и одна сумма может месячную награду хоть 5 раз подряд за 10 минут получить.
Повторюсь, сейчас PoS-часть симулятора - это как банковский вклад с 1% награды, но по факту каждый год на 4% сумма возрастает  Tongue


Вот насчёт хешей, и их железных/CPU реализаций разведу руками. там всё на английском читать надо, а в этом я пас  Roll Eyes
jr. member
Activity: 42
Merit: 1000
Написал англоветку насчет правильной теории
 денег - пока там не совсем та обратная связь коей хотелось бы...
https://bitcointalksearch.org/topic/which-theory-of-money-is-correct-160636
Подождем...

1) Будет симулятор - посчитаем проценты
 в разных вариантах. Для этого он и нужен.

2) А зачем оставлять остаток ? В чем его назначение ?
Я как суперминималист всегда выступаю
 за самые простые решения )
Оно само потом усложняется в процессе
 развития )

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

3) Не, один адрес на человека/семью
 - это не комильфотно.
  Пока все транзы считаются полезными.
  И просто увеличиваем денежную массу.
Но я еще покопаюсь в этих теориях
 немного , вдруг чего нарою...
 
member
Activity: 112
Merit: 10
Итак:

в начале каждого цикла for{
wReward = 0
sReward = 0


но это ещё не всё.
coinAge := rnd.Int63n(89970) + 30
это строка должна зависить от supply.


проверку правильного PoS предлагаю считать так. отключаем PoW прям через год (262980), и смотрим прирост денежной массы годика за 3, не больше
1 -> 2, и 2 -> 3 - везде должно быть меньше 1%, в идеале (0,25%-0,5% всё-таки валюта расчётов, а не сбережений). Но если суммарно с одним PoS прирост больше 1%, мы не PoS расчитываем, а какую-то ерунду.

coinAge := rnd.Int63n(89970) + 30 - показывает 4% между вторым и третьим годом чистого PoS, значит это ерунда  Tongue


upd.
ок, отвлекать не буду, это на самом деле важнее хорошую хэш-функцию найти.
member
Activity: 112
Merit: 10

Это не логическая ошибка - это диверсия Wink
Я хотел посмотреть что будет если выключить PoW.
На самом деле надо симулировать соотношение
 50/50 и формулы надо вывести такие,
 чтобы они САМИ поддерживали это равновесие,
но сначала надо туда встроить из клиента
 его алгоритм изменения трудности (точнее таргет).

Случайность , да можно инициализировать от времени и/или от PID процесса симулятора.
Это я переделаю в след. вариантах.

Я не про то что PoW отключился, а то что инфляция после этого 2,8% осталась. А этого физически быть не должно, если годовое вознаграждение за PoS 1%.
Там же вообще и максимум в 1% получится только если все кошельки включены на генерацию PoS, и ни одной транзакции. Так что при одном PoS 2,8% - это явная ошибка в логике симулятора

P.S. самое неприятное - буквально же 10 строк кода и всё кажется абсолютно правильным, и вот где эта фигня скрылась так и не могу понять  Embarrassed
jr. member
Activity: 42
Merit: 1000
Вот умные люди ругались насчет того как деньги правильно считать :

http://en.wikipedia.org/wiki/Quantity_theory_of_money
На русский перевести никто не сподобился. (

Какая из этих (и др.) теорий верна
и что мы можем извлечь из этих формул ?

Как их применить к нашей особой ситуации ?

Как определить какой процент инфляции ( целевой ) "научно" обоснован для плавного
роста криптоэкономики ?

------------
У кого какие мысли есть ?
 
member
Activity: 112
Merit: 10
Ukigo, как до жирафа только сейчас дошло.
В последней версии симулятора где-то логическая ошибка.
После того как PoW вырубается, и остаётся один PoS, инфляция вообще не может превышать 1% никоим образом. а она почти 3%.

Что-то с PoS-куском начислений неладно.




P.S. rnd := rand.New(rand.NewSource(int64(time.Now().Nanosecond()))) - для разных рандомов при запусках
jr. member
Activity: 42
Merit: 1000
Дробить , да - это не есть хорошо...
PoS, а особенно PoS+PoW штука сложная. Huh

Можно также будет придумать сиcтему с
чистым PoS.
Может нам тут больше повезет ?!
member
Activity: 112
Merit: 10
Может тогда к авторам алгоритмов обратиться? Как вы считаете, каковы перспективы переноса на openCL и т.п.? Или сразу в лоб "каковы по вашему мнению параметны, обеспечивающие наименьшую производительность на GPU)

На  Keccak взглянуть - это же по сути не алгоритм, а шаблон, чуть ли не десяток констант настраиваемых. Да почти наверняка есть комбинации, жутко неудобные для GPU.
legendary
Activity: 3108
Merit: 1359
Чем больше зверствовать, тем большую централизацию ты создашь. Потому что для сложного алгоритма GPU-майнер будет приватным долгое время, как это было в случае LTC. В итоге это приведет к концентрации мощности и эмиссии в руках ограниченного круга лиц.
jr. member
Activity: 42
Merit: 1000
Хотите вынести себе мозг - пожалуйста Smiley

На практике реализован PoS Только в
PPC/NVC.
По-русски про это можне почитать здесь
https://bitcointalksearch.org/topic/novacoin-scrypt-pow-pos-hybrid-114712
биже к онцу ветки Balthazar там многое объясняет.
Там есть ответы на часть ваших вопросов.

Однако нам придется там что-то менять
под задачи для TrueCoin.

Поменять можно многое - для того и нужны опыты.

Или можно почитать канонический текст:
http://ppcoin.org/static/ppcoin-paper.pdf
Он , само собой относится к PPC больше
 и + там уже кое-что поменялось.
Акутальная информация есть в неск. ветках на форуме и размазана среди комментов висходном коде Smiley
-----------
Вот так все весело Smiley
member
Activity: 112
Merit: 10
не нравится мне премайн, тем более огромный такой. но уж если его планировать, то
supply = 2000000.0 и смотреть на все объёмы проценты уже с ним

А может другую акцию какую-нибудь объявить а не раздачу премайна?
Например - неограниченая скупка трушек первый месяц старта: бит-цент, за 500 новых монеток. (ну курс прикинуть, чтоб тру было раза в 2 прибыльнее фармить чем бтц, тем более с нынешним приходом асиков туда - много ли на CPU нафармишь Cheesy, а здесь-то как раз только для CPU майнер и будет, есть куда мощности приложить; и чтоб себя не разорить при этом, но тут думаю за пару месяцев фарма btc одной видюхой можно будет выплатные btc наколотить)
member
Activity: 112
Merit: 10
Премайн в 2млн? это RIP на старте, без вариантов  Undecided

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

по коду:
я в формуле логарифма накосячил, было 10 + 1 * за_каждый порядок_мощности.
если 10 + 10* считать, то правильный коэффициент конечно же var coef = float64(4.3429448190325182765112891891661)

дважды увеличение индекса (block) - это вроде попеременного подсчтёта PoS и PoW блоков ?

а что переменные fees, txFees пытаются подсчитывать?
jr. member
Activity: 42
Merit: 1000
Инфляция "прилагается" ко всей денежной массе,
так как у нас не Биткойн и его не будут придерживать + нам желательно чтоб все койны обращались...
member
Activity: 112
Merit: 10
Ну тогда второй вариант из примера?
награда_блока_за_сложность = 10 + log10(target0·÷target)  = 10 + ln(target0/target) / ln(10) ≃ 10 + 0,43429448190325182765112891891661 * ln(target0/target)
Людям проще объяснить. суммарная мощность  1 Мх/с - награда 10, сложность 10 Мх/с - награда 20, сложность 1Гх/с - награда 40, сложность 1Тх/с - награда 70
(но в реализации к натуральным логарифмам один фиг приводить надо, всё равно код только через них считает, ибо ряды проще)


А с чередованием и соотношением PoS-PoW. Как я понимаю у PoS тоже есть своя сложность? Можно простейшие проверки ввести для PoS-блока, вроде
если текущий последний блок PoW? - повышаем сложность на m, (или в k раз (тут k, нечто вроде 1,00х тогда будет думается))
иначе /* до этого был PoS */ - понижаем сложность на М, (или в K раз).

с этими мощностями, target'ом, сложностью уже крыша едет Smiley
человеческим языком предыдущий абзац - идут PoW-блоки, облегчаем генерацию PoS. Появился PoS - усложняем генерацию последующих. Ну и если скажем облегчение по -1 идёт, а усложнение на +5 (или облегчаем каждый раз на 0,1% а усложняем на 0,5%), то среднее устоявшееся соотношение PoW:PoS = 5:1



Премайн плохую карму проекту создаёт  Embarrassed
А в теории, думаю и блоки пропускать не нужно, и с ручным соло-майнингом без сети возится. Можно же в 0-м блоке прописать какую угодно генерацию на какой нужно адрес, запечатать его в том числе и в коде (чек-поинты же делаются итак) - и уже все остальные будут подтверждать эту транзакцию премайна.


Ух, если со всей темы идеи и предложения запихать в форк - такой полиморфный франкенштейн получился бы  Grin

P.S. Не в курсе, для работы с исходниками биткоина/ppc/nvc что в винде лучше и проще, microsoft visual studio, или intel compiler? (этическая сторона дела, у какой компании воровать продукт не волнует  Angry )
jr. member
Activity: 42
Merit: 1000
например такая цепочка :
 Hash = Skein256(keccak512(Groestl-512(Block_Header)))

Полный детерминизм и нет потерь энтропии.
Но это -только PoW-блоки.

С PoS частью завтра буду разбираться.
Наш PoW дает инфляцию.
А PoS подсистема может оказывать на денежную массу сложное влияние.

И наша задача - все это настроить,
 так чтоб СУММАРНАЯ итоговая "инфляция"
 вышла на PI % в год.

Надеюсь я все объяснил ясно Wink
member
Activity: 112
Merit: 10
Вы про ту кривую, что у них в wReward присутствует math.Pow(wDiff, float64(0.16666666666666666))?

Так нужна ли она вообще здесь? Там как я понимаю предназначение простое - пока система маленькая, PoW-блоки создают "первоначальную" денежную массу системы. Как только система "поднялась" по мощности - PoW-генерация по-факту удушается, и система начинает эмитировать практически только PoS-блоками.


Данный корень n-й степени и логарифм одновременно вообще станно использовать. одной рукой "урезаем" награду на Х, другой тут же добавляем Y.


Опять-таки имхо, системы эмиссии BTC, NVC, PPC идеологически плохи тем, что сильно завышают долю валюты у первопроходцев (тут о сотнях, даже тысячах первых пользователей-человеков идёт речь, а не об авторах если что). Сильно это нестабильности и спекулятивности добавляет. (Оно конечно такой перекос в любой такой валюте будет, пока не придумают как раздать премайн всем людям земли Grin но специально тормозить через X годков/после появления Y пользователей поступление от эмиссии, это уж совсем перебор).
jr. member
Activity: 42
Merit: 1000
То что мы считали - это %% прироста награды на чистом PoW.
На тот случай если PoS+PoW систему с инфляцией изобрести НЕ удастся.

Чистый PoS считается невозможным
(или его надо еще изобретать)

NVC/PPC испольуют PoS+PoW
 это как бы 2-в-1.
Обе подсистемы работают в симбиозе,
 а нам надо симулировать этого кентавра )
Его поведение в целом +
наши инфляционные приколы В ДОВЕСОК.

Из классических PoS есть 2 (еще 1 я уже отбросил Wink ) НЕ реализованные на практике.

ТО есть у нас есть выбор из 3.5 + 1 вариантов.

2) SHA-3 обеспечит высокую случайность результата при любом инпуте.

Осложнять проверку хэша блока будет
 ЛЮБАЯ хаотичность выбора функций в цепочке.

Потому я склоняюсь пока к простой
НЕ ХАОТИЧНОЙ цепочке из трех хэш-функций.
Этого достаточно для удорожания ASIC
 в призводстве.
 
member
Activity: 112
Merit: 10
С процентами ничего не поделаешь. Тут 2 варианта:

Либо эмиссия стабильна в абсолютном значении, и тогда естественно в процентном значении она постоянно уменьшается. (с учётом неизбежного вымывания части денег вследствии отправки на несуществующие адреса, физическом уничтожении файлов кошельков/паролей к ним и т.п.) со временем это означает нулевой прирост денежной массы, и её полную стабилизацию [В NVC|PPC как я понимаю
к этой стабилизации ещё системно ускоряются].
Даже если эмиссия ограничена каким-то коридором. Например 100 база, ±20% (т.е. 80 - 120), то это ничего не меняет. Да, если сначала эмиссия была ближе к минимуму диапазона, а по мере развития приблизится к максимуму, то это отсрочит время выхода на 0% роста, но и только. Отменить его ("стабилизец") наличие этих границ не позволит.

Либо эмиссия стабильна в процентном значении, и тогда в абсолютных величинах она естественно всё время повышается. В адекватной идеальной системе это повышение будет плавным и очень малым, на уровне общего роста. Но оно всё равно будет.
При такой эмиссии (в реальных, популистко/субъективных и т.п. системах) имеет смысл сравнивать только соседние периоды (ну по устоявшемуся порядку - года). Если взять любую, самую стабильно/успешную страну, и начать высчитывать её текущие инфляцию/эмиссию/рост от её показателей 1900 года - мы получим бешенные %. (Хороший пример тот же биг мак. Рост цены почти в 10 раз за полвека. Да был и кризис 70х, и нынешние разгулы кредитования - но это не отменяет факта, что есть и 1000% инфляции на фастфуд за пол века, и развитие экономики (подтасовки безусловно есть, но 50 лет назад несомненно их ввп был всё-таки меньше). Если представить эти 1000% инфляции на продукты в год, а не от точки отсчёта - это экономический коллапс, без вариантов.)


В запасном варианте с логарифмом социализм специфический  Cool
Скажем формула выглядит как 10 базы + 10 за каждый_десяток_сложности (10 + 4,34294482 * ln(max_target/target) монет).
Мощность сети в 10 раз больше первоначальной. Каждый блок оценивается в 10+10=20 монет, за сутки генерируется 20*720=14400 монет.
Я при наличии мощности Х = базовой, получается имею 10% мощностей.
Итого, майню каждый десятый блок, с наградой 20; или в сутки 720 * 0,1 * 20 = 1440 монет
Мощность сети поднялась величины в 100 больше первоначальной. Каждый блок оценивается в 10+20=30 монет, за сутки генерируется уже 30*720=21600
Я при остаюсь со своей Х=базовой, и имею 1% мощности.
В итоге, майню уже лишь каждый сотый блок, но с наградой 30; или в сутки 720 * 0,01 * 30 = 216 монет
Но мощность сети выросла ещё на порядок, и уже в 1000 раз больше первоначальной. Каждый блок оценивается в 10+30=40 монет, за сутки генерируется уже 40*720=28800
Я всё ещё майню на мощностях Х, и имею лишь 0,1% мощности
Майню лишь каждый тысячный блок, но с увеличившейся наградой 40; или в сутки 720 * 0,001 * 40 = 28,8 монет

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


p.s. С++, я совсем чуток знаю. К сожаленью, на "академическом" уровне, лет 15 назад Страуструпа и Буча серьёзно читал/изучал (из практики был доступен только borland c++), а вот после ни одной среды разработчки всерьёз "не щупал" /живу в таких диких краях, где открытие консоли Win+r, cmd, enter воспринимается 99% народом как программирование/. А в реальных проектах, один практик сотню теоретиков за пояс заткнёт
member
Activity: 112
Merit: 10
да точно Target - это то про что я и говорил.

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


К сожаленью, выход от майнинга одинаков не будет

Если кто-то имеет 1Gh/s, а другой 1Mh/s - первый будет получать 99,9% тут уж ничего не поделаешь.

Но от asic'ов изменение хеш-функций конечно должно сработать.
Более того - на этапе становление системы, оно защитит систему и от налётов зловредных GPU-недоумков, гробивших как я понимаю некоторые форки, закидывая туда 50%+ мощностей, и начиная пакостничать. (Ну просто потому что перебиндить адрес в уже существующем майнере, и переписать майнер под новый алгоритм задачи для разного уровня интеллекта)
jr. member
Activity: 42
Merit: 1000
Ну, да, для  такой статической схемы
 достаточно высчитать константы,
 а вот для PoS программулька-калькулятор
 пригодится...

 С вас - вывод формул,
 с меня - кодирование симулятора
 на Go. Идет ?

 Осталась фигня - придумать подходящий PoS Wink
 
 ГСЧ там по-моему лишний.
 Там же детерминизм заложеный в хэшфункциях.
 а вывод ГСЧ (хоть XORь его, хоть склеивай)
 даст в рез. случайный результат.
 
 Также схема хеширования, где порядок
 хэш-функций выбирается случайно может
 создать трудности.
 Когда хэш блока будет проверяться потом
 придется перебирать несколько вариантов.
Pages:
Jump to: