Smoke testing ensures that the critical and basic functionalities in product are working fine. It is tested with less test cases and vast coverage. Developers or Testers perform Smoke testing. It verifies the stability of product.
Sanity Testing ensures the added functionality is working fine. It is tested with narrow and deep coverage. Testers perform it and its specific to additionally added functionality. It verifies the rationality of product.