Preheat oven to 400°F (200°C).
Place beef bones on a baking sheet, drizzle with oil, and roast for 30-40 minutes until browned.
In a large stockpot or slow cooker, heat oil over medium heat.
Add onions, carrots, and celery. Sauté for 5 minutes until softened.
Stir in garlic and tomato paste (if using) for 1 minute.
Add roasted bones, peppercorns, bay leaves, thyme, and vinegar.
Pour in enough water to fully submerge the bones (about 3-4 quarts).
Stovetop Method: Simmer on low heat for 6-8 hours, skimming foam occasionally.
Slow Cooker Method: Cook on LOW for 12-24 hours for maximum richness.
Remove bones with tongs. Strain broth through a fine-mesh sieve or cheesecloth.
Discard solids (or pick remaining meat for soups).
Season with salt to taste.
Let broth cool before refrigerating (up to 5 days) or freezing (3+ months).
Skim solidified fat if desired.