Sharing graphs are the structures introduced by Lamping for the implementation of optimal reductions of lambda-calculus. Gonthier's reformulation of Lamping's technique inside Geometry of Interaction and Asperti and Laneve's work on Interaction Systems have shown that sharing graphs implement a wide class of calculi. We give a semantical characterization of sharing graphs independent of the calculus to be implemented. By means of an algebraic interpretation of sharing graphs, we define a subclass of them, the so-called proper sharing graphs, on which the usual notion of graph unfolding gives a lower semi-lattice. The least-shared-instance of a proper sharing graph is its maximal proper unfolding, that is, the unique proper unshared graph that the unfolding partial order associates to it. Exploiting a simulation property between the reductions of a proper sharing graph and the reductions of its least-shared-instance, we prove that the read-back of a proper sharing graph can be computed via an unfolding or read-back reduction. Proper sharing graphs implement in a distributed and local way any graph calculus with a global reduction in the style of the beta-rule of lambda-calculus. In fact, correctness of the sharing implementation requires the so-called box nesting property only, or equivalently, it is proved under the only assumption that two redexes never partially overlap. Thus, sharing graphs constitute an abstract machine, say the sharing graph machine, that seems to be the most natural low-level computational model for functional languages. Moreover, Lévy's optimal reductions correspond to lazy reductions of that sharing machine. We stress on the proof strategy followed in the paper: it rests on an amazing interplay between standard rewriting system properties (strong normalization, confluence, and unique normal form) and algebraic properties definable via the techniques of Geometry of Interaction.