Combine all the sauce ingredients in a small bowl and set aside.
Butterfly the shrimp and pat them dry.
In a medium bowl, mix together the flour, cornstarch, baking powder, baking soda, salt, garlic powder, and onion powder. Stir in the ice water to form a batter.
Dip the shrimp in the batter and coat them up to but not including the tail shells. The small portion of shell/tail should be exposed to crisp up in the frying oil.
Dredge the battered shrimp in coconut flakes. Lightly press the coconut into the shrimp until well-coated. Shake off any excess.
In a small pot, at least 3 inches deep, add enough oil to submerge the shrimp (2-3 inches of oil should do it). Heat to 325 degrees F, and use a candy thermometer to ensure the temperature remains consistent, adjusting your heat as necessary.
Hold the shrimp by their tails and lower into the oil. Fry in small batches for about 2 minutes until golden brown. Use a slotted spoon to lift the shrimp out of the oil, and let the excess oil drip off before transferring to a rack or paper towel-lined plate. Sprinkle with a pinch of salt if desired. Clean the oil between batches. Simply use a fine mesh strainer between batches to remove any coconut flakes or other particles from the oil and discard.
Serve immediately with the prepared dipping sauce!
Note: Nutrition information includes shrimp and dipping sauce.