In a large bowl, combine the buttermilk, salt, black pepper, paprika, garlic powder, and onion powder.
Add the chicken pieces to the marinade, ensuring they are fully submerged. Cover and refrigerate for at least 4 hours, preferably overnight.
In a large shallow dish or bowl, combine the flour, cornstarch, salt, black pepper, paprika, garlic powder, onion powder, and cayenne pepper (if using).
Remove the chicken pieces from the marinade, allowing any excess buttermilk to drip off.
Dredge each piece of chicken in the flour mixture, pressing the coating onto the chicken to ensure it adheres well. Place the coated chicken on a wire rack and let it rest for 15-20 minutes.
In a large deep skillet or Dutch oven, heat about 2 inches (5 cm) of vegetable oil to 350째F (175째C).
Carefully add the chicken pieces to the hot oil, working in batches to avoid overcrowding the pan.
Fry the chicken for about 12-15 minutes per side, or until the chicken is golden brown, crispy, and cooked through. The internal temperature should reach 165째F (74째C).
Use a slotted spoon or tongs to transfer the fried chicken to a paper towel-lined plate to drain excess oil.
Enjoy your meal!