Preheat your oven to 350°F (175°C). Grease and flour two 9-inch round cake pans.
In a large mixing bowl, whisk together the flour, sugar, cocoa powder, baking powder, baking soda, and salt.
Add the buttermilk, vegetable oil, eggs, and vanilla extract to the dry ingredients. Beat on medium speed for 2 minutes.
Stir in the boiling water until the batter is smooth. The batter will be thin, but don't worry, it will bake up perfectly.
Pour the batter evenly into the prepared pans.
Bake for 30-35 minutes, or until a toothpick inserted into the center of the cake comes out clean.
Allow the cakes to cool in the pans for 10 minutes before removing them from the pans and placing them on a wire rack to cool completely.
While the cakes are cooling, make the frosting. In a large mixing bowl, beat the butter until creamy. Add the cocoa powder and powdered sugar, and beat until well combined.
Gradually add the milk and vanilla extract, and beat until the frosting is smooth and creamy.
Once the cakes are completely cool, place one cake layer on a serving plate. Spread a layer of frosting on top of the cake layer. Place the second cake layer on top of the frosting, and spread another layer of frosting on top of the cake.
Decorate the cake with chocolate shavings or sprinkles, if desired.