There's an optimization based on successive squaring that allows you to compute powers in a logarithmic number of multiplications. For example, instead of computing b8 as b*b*b*b*b*b*b*b, you can compute
b2 = b * b
b4 = b2 * b2
b8 = b4 * b4
See SICP 1.2.4 Exponentiation for more details. I also have a post on my blog that shows a fast exponentiation implementation in Scheme.