6 ounces firm tofu, drained and cut into 1-by-2-inch pieces
1 cup cornstarch
2 large shallots, peeled and sliced 1/4 inch thick
1 large head of butter lettuce, cored and torn into bite-size pieces
1/2 red bell pepper, thinly sliced lengthwise
1 small carrot, halved lengthwise and thinly sliced crosswise
1 small red onion, thinly sliced
1/2 cup cilantro leaves
1/2 cup mint leaves
1/2 cup unsalted roasted peanuts, chopped
Combine all of the ingredients except the oil, salt and ground pepper in a blender or food processor and process until smooth. With the machine on, add the oil in a thin stream. Season the dressing with salt and pepper.
Using a very sharp knife, peel the grapefruits, carefully removing all of the bitter white pith. Cut in between the membranes, releasing the grapefruit sections into a bowl.
In a medium saucepan, heat the oil to 360°. Gently pat the tofu dry with paper towels. Put the cornstarch in a medium bowl. Dredge the shallots in the cornstarch; transfer them to a sieve and shake off the excess cornstarch. Dredge the tofu pieces in the cornstarch. Working in 2 batches, fry the shallots until browned, about 2 minutes. Drain on paper towels and season with salt. In 3 batches, fry the tofu pieces until golden brown and puffed, about 4 minutes per batch. Drain on paper towels and season with salt.
In a large bowl, toss the lettuce with the grapefruit sections, bell pepper, carrot, red onion, cilantro, mint and peanuts. Toss with 1/2 cup of the dressing; add more dressing if desired. Arrange the fried tofu and shallots on top and serve right away.