Yes it is complusory for we Christian's to give tithes and offerings. If you don't give,you can't expect anything in return. The Bible says we should give our tithes and offerings so he can take away the devourers for our sake.
There is no contradiction between Malachi 3:7-10 and 2 Corinthians 9:7. God's Words are true and said in righteousness. His Words are yea and Amen. He can never contradict Himself.
Psalm 12:6 (NIV)
And the words of the Lord are flawless, like silver purified in a crucible, like gold refined seven times.
Silver can become pure when refined twice and now, Imagine the Word of God that has been purified and likened to silver being refined 7 times. It means the Word of God has been tried over and over again and proved to be true.
God loves a cheergiver
God gave the instructions to the Israelites in Malachi 3:7-10 and the clear instructions was also give to the entirety of the Christians in 2 Corinthians 7:9.
When you give to the Lord you have to give with the whole of your heart and not grudgingly. It has to be with understanding because God loves a cheerful giver.
Giving is an act of gratitude