Make cake: Preheat oven to 350°F. Butter 2 9-inch round cake pans and line with parchment. Butter paper and dust pans well with cocoa powder.
Place cocoa in a small bowl. Pour in 1/2 cup boiling water; stir until smooth. With an electric mixer, beat butter until light and fluffy. Add sugar; beat until well blended. Add yolks one at a time, beating well after each addition. Beat in cocoa mixture. Stir baking soda into milk.
Sift flour, baking powder and salt onto a sheet of parchment. Add dry ingredients to butter mixture in 3 additions, alternating with milk. Blend in vanilla. In a separate bowl, beat egg whites until they form soft peaks. Gently fold into batter. Divide batter between cake pans; bake until a toothpick inserted into center comes out clean, 35 to 40 minutes. Cool in pans on a wire rack for 10 minutes, then turn out onto rack to cool.
Make frosting: Mix sugar, cocoa, salt and butter in a small pan. Stir in milk. Bring to a boil over high heat. Reduce heat to medium; simmer until dark and thickened, 5 minutes. Stir in vanilla. Transfer to a large bowl and cool.
Beat frosting with an electric mixer on high speed until thick and spreadable. Frosting should form thick swirls when beater is lifted.
Arrange one cake layer on a serving platter. Spread top evenly with about 1/2 cup frosting. Set second cake layer on top. Spread top and sides with remaining frosting.