Place the beans in a large bowl. Add enough water to cover them by 2". Let them soak overnight.
Drain the beans and place in a large pot or Dutch oven over medium-high heat.
Crumble in the bacon and add the carrots, celery, onion, thyme, garlic, tomato paste, pepper, water and ham stock.
Bring to a boil then reduce heat to a simmer, stirring continuously to dissolve the tomato paste.
Cover and simmer for 3 hours or until the beans are tender. About 30 minutes in, taste the liquid and add salt and pepper to taste.
Ladle out 2 cups of the soup into a bowl and let cool slightly. Transfer to a blender (working in batches if needed) and process until smooth. Pour the pureed soup back into the pot and stir.
Stir in the vinegar and liquid smoke.
Taste and add more salt and pepper as needed.
Serve hot.