Wrap tofu in a clean kitchen towel or paper towels and place on a cutting board. Place a heavy flat object on top of tofu (like a skillet or baking sheet) and weigh it down with cans or another skillet. Let tofu drain for at least 15 minutes, and up to 45 minutes.
Crumble tofu into a medium bowl using your fingers. The biggest pieces should be about the size of a pea.
In another medium bowl, whisk together soy sauce, sugar, vinegar, sesame oil, red pepper flakes, and fish sauce, if using. (It’s OK if the sugar doesn’t dissolve completely; it will once added to the pan.)
In a large cast-iron skillet or nonstick pan over medium-high heat, heat vegetable oil until shimmering. Add tofu, shake into an even layer, and let cook undisturbed until deeply golden on the bottom, about 5 minutes.
Stir the tofu and continue to cook, stirring occasionally, until the tofu is crispy and golden throughout, about 4 minutes more. Add ginger and garlic and cook until fragrant, about 1 minute.
Add soy mixture to pan and cook, stirring occasionally, until no liquid remains, about 3 minutes more.
Add heaping spoonfuls of tofu mixture to the center of each lettuce leaf. Top with cilantro leaves, peanuts, and a squeeze of lime before serving.