Bearnaise sauce must be kept at a constant temperature. Make it no more than 20 minutes before serving; keep warm near stove.
In a small saucepan, bring vinegar, shallot, and tarragon to a boil. Cook until liquid has reduced to 2 tablespoons, about 4 minutes. Strain through a fine mesh sieve. Rinse out saucepan, and return strained vinegar.
Add egg yolks and 2 tablespoons water. Cook, over low heat, whisking constantly, until mixture thickens and forms thick ribbons, 3 to 4 minutes.
Whisk in butter, if sauce gets too hot (it starts to bubble), remove from heat and whisk in a piece of butter. Continue whisking until all the butter has been absorbed, about 3 minutes. Remove from heat and immediately transfer to a bowl to stop further cooking. Season with salt. Use immediately, or keep warm over a pan of barely simmering water.