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

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

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

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

Во-первых, подумайте о нескольких вещах в жизни за пределами ИТ. Я задам несколько
вопросов и посмотрю, сможете ли вы на них ответить:

  • Все автомобили одинакового качества? Почему вы платите больше за Lexus, чем за Hyundai?
  • Обязательно ли оформлять страховку в поездке?

Теперь немного ближе к дому:

  • Все ли дверные замки одного качества?
  • Все ли дома оборудованы засовами и системами сигнализации?
  • На всех ли машинах установлен LoJack?
  • Все ли окна во всех домах имеют качественные замки?
  • Все ли окна сделаны из Lucite (защищенного от детей)?

Ответ прост: качество зависит от стоимости. Если вы хотите большего,
вы платите больше. Честно говоря, это простое упражнение. Качественное программное обеспечение
действительно существует. Если хотите, вы можете перейти к старым стандартам Redbook США и
пройти проверку программного обеспечения класса «А». За исключением того, что эта копия
Windows 10 теперь будет стоить более 10 000 долларов.

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

Я бы делал от 190 до 220 строк кода в час в хороший день для такого
языка, как C. Less for Assembly. Мои ставки взимались почасово. На этом уровне
анализ Windows потребует более 50 000 человеко-часов. Это
исключает исправления. Это исключает надстройки.

Сколько миллионов строк кода в биткойне, сколько добавлено и изменено?

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

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

Биткойн - это не система социального равенства, это наличные деньги.

Вы получаете то, за что платите.