Tests are nice, but what if you could prove your contract won’t break?
In this session, we fire up Halmos and go all in, from setup to writing specs, catching real bugs, and tearing through the DStable vault backdoor. No fluff. Just raw code, broken invariants, and receipts.
It focuses only on real execution paths and finds bugs your tests can’t even reach.
Timestamps
00:00:03 Why formal verification actually matters
00:00:26 What fuzzers miss — and Halmos doesn't
00:01:56 Installing the CLI & getting started
00:02:24 Writing your first spec with setup()
00:04:06 Loop constraints and cheat-codes
00:06:53 Sender/receiver conditions in specs
00:08:07 Basic preconditions and invariants
00:10:30 Filtering inputs with require
00:12:01 Handling arrays & edge cases
00:14:00 Avoiding noise in results
00:17:25 How Halmos narrows down execution paths
00:20:38 First full spec run
00:22:32 Dealing with reverts & assumptions
00:23:59 Overview of the built-in example suite
00:28:25 Finding and understanding your first bug
00:29:46 How Halmos picks counter-examples
00:34:06 Making counter-examples more readable
00:37:42 Building a low-level encoder spec
00:41:10 Macros and typed variable tricks
00:49:14 Another bug found — live
00:55:42 Kicking off the next example
00:57:25 Deep dive into the vault contract
00:59:17 Testing internal balances
01:02:08 Spotting a major logic flaw
01:05:13 Invariants that track over time
01:07:08 Testing those invariants in practice
01:11:29 Vault: backdoor breakdown
01:12:46 Writing a spec to catch the exploit
01:17:00 A bigger spec setup from scratch
01:21:35 Running the full test suite
01:25:32 Digging into the final bug
01:28:45 Best practices + common mistakes
01:30:04 Reviewing everything we used
01:31:10 Wrap-up & where to go next
Поделиться в:
Доступные форматы для скачивания:
Скачать видео mp4
Информация по загрузке:
Скачать аудио mp3
Похожие видео
array(20) {
["UG5jbLReDiM"]=>
object(stdClass)#10724 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "UG5jbLReDiM"
["related_video_title"]=>
string(59) "You’re Passing Way Too Many Arguments (and How to Fix It)"
["posted_time"]=>
string(25) "2 недели назад"
["channelName"]=>
NULL
}
["dhGrFA5yYJ8"]=>
object(stdClass)#10744 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "dhGrFA5yYJ8"
["related_video_title"]=>
string(31) "The Art of Auditing a Deep Dive"
["posted_time"]=>
string(27) "5 месяцев назад"
["channelName"]=>
NULL
}
["QI7oUwNrQ34"]=>
object(stdClass)#10725 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "QI7oUwNrQ34"
["related_video_title"]=>
string(86) "Цепи Маркова — математика предсказаний [Veritasium]"
["posted_time"]=>
string(23) "1 месяц назад"
["channelName"]=>
NULL
}
["6tNS--WetLI"]=>
object(stdClass)#10740 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "6tNS--WetLI"
["related_video_title"]=>
string(64) "Python Tutorial: Unit Testing Your Code with the unittest Module"
["posted_time"]=>
string(19) "8 лет назад"
["channelName"]=>
NULL
}
["8Xwq35cPwYg"]=>
object(stdClass)#10726 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "8Xwq35cPwYg"
["related_video_title"]=>
string(40) "React Testing for Beginners: Start Here!"
["posted_time"]=>
string(19) "1 год назад"
["channelName"]=>
NULL
}
["Pl3c8bL80sA"]=>
object(stdClass)#10714 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "Pl3c8bL80sA"
["related_video_title"]=>
string(59) "From Clueless to Confident: Sammy’s Web3 Security Journey"
["posted_time"]=>
string(27) "5 месяцев назад"
["channelName"]=>
NULL
}
["9IwjlT3RqMc"]=>
object(stdClass)#10732 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "9IwjlT3RqMc"
["related_video_title"]=>
string(53) "Зе-банда пытается защищаться"
["posted_time"]=>
string(21) "2 часа назад"
["channelName"]=>
NULL
}
["fKa3x4XWklY"]=>
object(stdClass)#10734 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "fKa3x4XWklY"
["related_video_title"]=>
string(148) "Обмен Массированными Ударами💥 Орестополь и Рох Зачищены✅ Военные Сводки 14.11.2025"
["posted_time"]=>
string(21) "4 часа назад"
["channelName"]=>
NULL
}
["PwKUw5ljc2o"]=>
object(stdClass)#10729 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "PwKUw5ljc2o"
["related_video_title"]=>
string(79) "Школьник Взломал Playstation, но его Спасли Anonymous"
["posted_time"]=>
string(21) "1 день назад"
["channelName"]=>
NULL
}
["RHxuUQ58yjc"]=>
object(stdClass)#10745 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "RHxuUQ58yjc"
["related_video_title"]=>
string(79) "ЭТИ АЛГОРИТМЫ СДЕЛАЮТ ИЗ ТЕБЯ ПРОГРАММИСТА"
["posted_time"]=>
string(25) "3 недели назад"
["channelName"]=>
NULL
}
["HUkBz-cdB-k"]=>
object(stdClass)#10731 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "HUkBz-cdB-k"
["related_video_title"]=>
string(158) "Теренс Тао: Сложнейшие задачи математики, физики и будущее ИИ | Лекс Фридман Подкаст #472"
["posted_time"]=>
string(27) "5 месяцев назад"
["channelName"]=>
NULL
}
["BmNn3Z5j3WA"]=>
object(stdClass)#10741 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "BmNn3Z5j3WA"
["related_video_title"]=>
string(165) "ШУЛЬМАН: "Вот правда, но этого же не скажешь прямо". Интервью с "категорическим императивом""
["posted_time"]=>
string(23) "5 часов назад"
["channelName"]=>
NULL
}
["bYGWpM-O-Gw"]=>
object(stdClass)#10727 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "bYGWpM-O-Gw"
["related_video_title"]=>
string(16) "ПЕНАЛЬТИ"
["posted_time"]=>
string(25) "3 недели назад"
["channelName"]=>
NULL
}
["zDexGxVrBBM"]=>
object(stdClass)#10715 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "zDexGxVrBBM"
["related_video_title"]=>
string(94) "Как общаться по-настоящему БЕЗОПАСНО | Первый отдел"
["posted_time"]=>
string(23) "1 месяц назад"
["channelName"]=>
NULL
}
["A7k088NtfDc"]=>
object(stdClass)#10716 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "A7k088NtfDc"
["related_video_title"]=>
string(113) "США объявили о начале спецоперации / Военные начали вторжение"
["posted_time"]=>
string(23) "7 часов назад"
["channelName"]=>
NULL
}
["8enXRDlWguU"]=>
object(stdClass)#10722 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "8enXRDlWguU"
["related_video_title"]=>
string(85) "Silicon Valley Insider EXPOSES Cult-Like AI Companies | Aaron Bastani Meets Karen Hao"
["posted_time"]=>
string(25) "4 месяца назад"
["channelName"]=>
NULL
}
["LQK4Rmye4XU"]=>
object(stdClass)#10723 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "LQK4Rmye4XU"
["related_video_title"]=>
string(182) "Удар по Зеленскому, фронт в движении, Россию отключили. Лавров «пропал», робот упал. Разбор новостей"
["posted_time"]=>
string(24) "14 часов назад"
["channelName"]=>
NULL
}
["zf5XMOJGr8M"]=>
object(stdClass)#10721 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "zf5XMOJGr8M"
["related_video_title"]=>
string(110) "Где эта великая Россия, Путин?! В КАЛОШАХ ХОДИМ, В ГРЯЗИ ЖИВЕМ"
["posted_time"]=>
string(21) "3 часа назад"
["channelName"]=>
NULL
}
["LwQEVNfhiwY"]=>
object(stdClass)#10719 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "LwQEVNfhiwY"
["related_video_title"]=>
string(151) "Эскорт для Путина и мужчины Матвиенко: как женщины выживают в российской политике?"
["posted_time"]=>
string(21) "1 день назад"
["channelName"]=>
NULL
}
["dTgBjl70vdg"]=>
object(stdClass)#10720 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "dTgBjl70vdg"
["related_video_title"]=>
string(0) ""
["posted_time"]=>
string(23) "8 часов назад"
["channelName"]=>
NULL
}
}