Rinse the dried beans and remove any foreign objects.
Pour 8 cups of water in a large pot and add the beans. Bring to a boil over High heat. Remove from the burner, cover, and let stand 1 hour.
Drain the beans and discard the soaking water. Reserve the drained beans.
In a large pot or Dutch oven over medium heat, cook the chopped bacon over medium heat. When it is golden brown, remove it with a slotted spoon and drain on a double layer of paper towels. When the bacon bits are cooled, store them, covered, in the refrigerator.
Pour out all but 1 tablespoon of the bacon drippings. Return the pot to the stove and add the onion, celery and carrots. Cook, stirring occasionally, until the onion is translucent, about 6 minutes.
Add the stock, water, beans, tomato paste, Worcestershire sauce, garlic powder, salt and pepper.
Stir and bring to a boil. Reduce heat to a simmer, cover and cook until the beans are tender, about 3 to 4 hours. (Your cooking time may vary depending on the moisture content of the beans.)
Remove the lid and turn off the heat. Carefully lower an immersion blender in the soup. Starting at low speed and gradually increasing to medium, blend about half of the soup so the texture is creamy. Alternately, transfer about half the soup in batches to a food processor or blender and puree it; return to pot.
Add the reserved bacon to the pot, stir and cook for 5 minutes. Adjust seasonings if necessary and serve. Sprinkle with shredded Parmesan cheese (optional). Makes about 10 servings.