Вы не должны скрывать свой клиентский код, потому что он убивает концентрацию блокчейна и самой децентрализованной технологии.
Такие технологии, как биткойн, нерушимы до 51% вычислительной мощности (в случае консервации PoW)исходит от честных узлов.
В тот момент, когда более 51% вычислительной мощности повреждено (вредоносно), бухгалтерская книга не является безопасной.
Как многие максималисты могут предложить, если ваше намерение состоит в том, чтобыСоздайте свой собственный блокчейн, вероятно, вам следует повторно использовать код, который уже написан и считается безопасным, и шаг за шагом добавлять свои функции.
Написание DLT - это не только написание безошибочного кода (который не может быть использован для повреждения всех узлов, как вы указали в вопросе), но также и эффективные механизмы согласования, которые не могут быть использованы.
PoW означает Proof of Work.DLT расшифровывается как технология распределенной книги (которая включает в себя Blockchain, Tangles и т.умные контракты внутри блокчейна (это не язык, используемый для кодирования самой блокчейна, а код, используемый для программ, работающих внутри блокчейна, пример: Ethereum)
Если взять в качестве примера Ethereum, то существуют разные его реализации,geth (golang-ethereum) является наиболее активным.Как я уже говорил, если вы хотите создать свой собственный блокчейн, вероятно, вам следует повторно использовать код, который уже доказал свою надежность.
Ответ на вопрос: «новый блокчейн подвержен атакам на 51%» (это отравляет доказательствоблокчейнов, основанных на согласии с работой (в основном): да, это абсолютно верно, блокчейны новорожденных (или блокчейны с низкой скоростью хеширования), как правило, часто подвергаются атакам с помощью аренды хэш-мощности (см. «Частный случай с биткойнами» или «биткойн-золото»).К сожалению, нет способа предотвратить это, потому что именно так работает консенсус Proof of Work, единственное, что можно сделать для его сдерживания, - это дождаться большего количества подтверждений блока, прежде чем считать активы, поступающие из транзакции, расходуемыми.
Пример (имена выбираются случайным образом): у меня есть интернет-магазин, принимающий BTW (монету), пришедший из блокчейна Биткойн-Слабый, который часто страдает от 51% атак, но я делаю так, что хотя транзакция клиента была вставлена в номер блока (X) Я жду до номера блока (X + 100), прежде чем позволить ему потратить эти деньги на моей платформе.
Почему я это делаю?Это потому, что 51% атак направлены на воссоздание двух цепочек и вставку более длинной цепочки, которая затем удаляет более короткую цепочку (ту, в которой я создал транзакцию, использованную для покупки на вашей платформе), поэтому чем больше блоков подтверждения я жду, тем больше денег набираюхакер, чтобы потратить 51% атаки на хэшрейт.Если его атака двойного расхода состоит в том, чтобы потратить 100 $, но я заставляю его потратить 101 $ на электроэнергию (или аренду хэш-мощности), тогда я отговариваю его атаковать цепь и пытаться удвоить расходы на моей платформе.
Надеюсь, это прояснило ваши сомнения.