Drain the tofu and use your hands to crumble it into a ground beef-like texture.
Heat about 1 ½ tablespoons of oil in a large non-stick pan over medium-high heat. Add the crumbled tofu in a single layer and allow to fry on the first side until golden brown. Stir and toss to fry on the other side. Remove to a plate and set aside.
Heat the remaining 1 ½ tablespoons of oil in a large pot over medium heat. Add the onion and fry until soft and transparent then add the garlic and fry for another 30 seconds or until soft and fragrant.
Add the tomato paste, chili powder, cumin, smoked paprika, oregano and red chili flakes and stir well. Fry, while stirring, for about a minute or until the tomato paste darkens and the spices have released their fragrance.
Add the black beans, fried tofu, diced tomatoes, soy sauce, cocoa powder and enough vegetable stock to cover. Bring to a simmer, then reduce the heat to low and cover the pot.
Simmer for 10 - 15 minutes until heated through and the flavors have melded. If the broth has reduced too much, add another splash of vegetable stock to reach the consistency that you like.