how to filter blog posts by taxonomy and by year
You're on the right track. Views is good way to solve this with Contextual Filters. You need to create a page view with the path blog. That will create a page example.com/blog that shows all blog posts. 

Adding a Content: Created year contextual filter will set up a filter rule so that example.com/blog/XXXX filter the view by posts created on year XXXX.

For your last need, tag filtering, you're going to need to add another page view since a page view can't do a mixed contextual filtering; views doesn't know how to treat XXXX in example.com/blog/XXXX as both a year or tag. 

See this post on how to set up a filter Content: Has taxonomy term ID filter that will you create something like example.com/tags/YYYY where YYYY is the name of your tag.