In this paper we propose a Dynamic Spectrum Access scheme which allows the users to opportunistically and efficiently access the channels available for communications. It addresses the following important aspects of opportunistic spectrum access: 1) implementation of the control channel, 2) multi-channel medium access control, 3) primary user detection, and 4) secondary reuse of spectrum unused by primary users. The main features of the scheme are that it is completely distributed, it does not need dedicated spectrum resources for control purposes, but rather leverages on a virtual control channel which is implemented using Network Coding techniques, and it exploits a cooperative detection strategy to identify unused spectrum. Due to these aspects, our proposal represents a significant improvement with respect to existing Dynamic Spectrum Access solutions. We carry out an evaluation study of the proposed solution to assess its performance with respect to different system and scenario p...