Canonical bases
Let Q be a quiver, g the associated Kac-Moody algebra, and n a maximal
nilpotent subalgebra of g. Assume for simplicity that Q has no multiple edges, and therefore that g is simply-laced.
In [Ri90], Ringel identified U_q(n) with a subalgebra of the Hall algebra of the category of representations of Q over F_q. Green [Gr95] showed that
you can recover the Hopf algebra structure on U_q(n) from the Hall algebra
perspective, as well.
To get U(n), you either specialize q to 1 or perform the Hall algebra construction using Euler characteristics of complex varieties rather than cardinalities of F_q varieties.
Ringel wrote two survey articles on this isomorphism [Ri92, Ri93];
it can also be found in the lecture notes of Schiffmann [Sc09a (Lecture 3)].
From this construction one gets natural bases for U_q(n) and U(n) indexed
by isomorphism classes of quiver representations. Unfortunately, these bases depend on the orientations of Q, which constitute an arbitrary choice.
In [Lu90, Lu91], Lusztig used perverse sheaves (or intersection cohomology)
to "fix" this problem by defining better-behaved bases, known as the "canonical
bases" of U_q(n) and U(n).
The original paper
[Lu90] treats finite-type simply-laced Lie algebras, and [Lu91] treats
the general case.
Surveys of this construction with all of the technical details suppressed
can be found in Section 19 of Lusztig's
ICM address [Lu91-ICM] and in a short set of notes by Salisbury [Sa10].
On the other extreme, a detailed account appears in a second set
of lecture notes by Schiffmann [Sc09b (Lecture 3)].
The canonical basis for U_q(g) was constructed in a different way by
Kashiwara around the same time [Ka91]; he called it the "global crystal basis".
The fact that Kashiwara's basis coincides with Lusztig's was proven by Lusztig
and Grojnowski [GL93].
Semicanonical bases
In Section 12 of [Lu91], Lusztig showed that U(n) may also be identified
with a certain ring of constructible functions on the "nilpotent variety"
associated to Q, endowed with a certain (noncommutative) convolution product.
Using this identification, Lusztig defined a new basis
for U(n) called the "semicanonical basis", first in the affine case
[Lu92] (which is very long, and contains a lot more stuff)
and much later in the general case [Lu00] (which is very short).
In addition
to the references above, you can find summaries in many of the papers of
Geiss, Leclerc, and Schröer [GLS05 (Section 5), GLS06 (Section 9),
GLS08 (Section 7)] as well as Leclerc's ICM address [Le10 (Section 5)].
Though the canonical and semicanonical bases have many elements
in common, they are different except in type A_n for n<5.
This is shown in [GLS05, 7.6] using [Le03]. Roughly speaking,
the failure of these two bases to coincide can be blamed on the failure
of the singular support of a perverse sheaf to be an irreducible
component of the nilpotent variety.
An example of this failure is given in [KS97].
Both the canonical basis and the semicanonical basis have the beautiful
property that, when you apply it to a lowest weight vector of an irreducible
representation, the nonzero vectors that arise form a basis for that
representation. For the semicanonical basis, this is proved in [Lu00].
A geometric interpretation of this fact is provided by Nakajima [Na94 (Section 10)]. See also [Na98] for a variant of this construction using homology rather than constructible functions.
A survey of Lusztig's and Nakajima's constructions is given in [Sa06].
Dual semicanonical bases
The graded dual of the Hopf algebra U(n) is the coordinate ring C[N]
of the group N (see for example [CP, 4.1.17] and [GLS08, 5.1]). Multiplication in U(n)
turns into convolution in C[N], and comultiplication turns into
multiplication of functions. The dual of the semicanonical basis in known
(unsurprisingly) as the "dual semicanonical basis".
This basis has some nice multiplicative properties. While it is not
quite true that the product of two basis elements is again a basis
element, it is true in a large collection of cases, and every basis
element admits a unique factorization into smaller basis elements.
This is explained in Section 7 of [GLS05], and may be taken as one
piece of evidence that the semicanonical basis is (in certain ways)
nicer than the canonical basis.
Preprojective algbras
The preprojective algebra of Q is an algebra obtained by doubling
the arrows and modding out by a certain ideal in the path algebra.
The definition was introduced by Gelfand and Ponomarev at a conference
in 1979; see [CB99, Ri98] for a written account.
In modern language, its definition can be motivated by the statement
that the moduli stack of representations of the preprojective
algebra of Q is isomorphic to the cotangent bundle to the moduli stack
of representations of Q. (This stacky perspective, however,
is completely unnecessary for our purposes.)
Lusztig's nilpotent variety parameterizes representations
of the preprojective algebra in which sufficiently long paths
act trivially, thus the connection between preprojective algebras
and semicanonical bases is completely transparent.
What is not so obvious is the link between preprojective
algebras and the theory of cluster algebras.
Geiss, Leclerc, and Schröer show that the cluster algebra
structure on C[N] is in some sense a shadow
of a deeper structure on the representation category of the preprojective
algebra. They do this
first in the finite-type simply-laced case [GLS06] and then in the general
Kac-Moody case [GLS07b]. This is how they prove that the cluster monomials
in C[N] belong to the dual semicanonical basis. They conjecture
that the cluster monomials belong to the cononical basis as well [GLS08, 19.1],
but this conjecture is still open.
[CP] Chari and Pressley, A guide to quantum groups
[CB98] Crawley-Boevey, DMV Lectures on Representations of quivers, preprojective algebras and deformations of quotient singularities
[GLS05] Geiss, Leclerc, and Schröer, Semicanonical bases and preprojective algebras
[GLS06] Geiss, Leclerc, and Schröer, Rigid modules over preprojective algebras
[GLS07a] Geiss, Leclerc, and Schröer, Semicanonical bases and preprojective algebras II: a multiplication formula
[GLS07b] Geiss, Leclerc, and Schröer, Cluster algebra structures and semicanonical bases for unipotent groups
[GLS08] Geiss, Leclerc, and Schröer, Preprojective algebras and cluster algebras
[GL93] Lusztig and Grojnowski, A comparison of bases of quantized enveloping algebras
[Gr95] Green, Hall algebras, hereditary algebras and quantum groups
[Ka91] Kashiwara, On crystal bases of the q-analogue of universal enveloping algebras
[KS97] Kashiwara and Saito, Geometric construction of crystal bases
[Le03] Leclerc, Imaginary vectors in the dual canonical basis of U_q(n)
[Le10] Leclerc, Cluster algebras and representation theory
[Lu90] Lusztig,
Canonical bases arising from quantized enveloping algebras
[Lu91] Lusztig,
Quivers, perverse sheaves, and quantized enveloping algebras
[Lu91-ICM] Lusztig,
Intersection cohomology methods in representation theory
[Lu92] Lusztig,
Affine quivers and canonical bases
[Lu00] Lusztig,
Semicanonical bases arising from enveloping algebras
[Na94] Nakajima, Instantons on ALE spaces, quiver varieties,
and Kac-Moody algebras
[Na98] Nakajima, Quiver varieties and Kac-Moody algebras
[Ri90] Ringel, Hall algebras and quantum groups
[Ri92] Ringel, From representations of quivers via Hall and Loewy algebras to quantum groups
[Ri93] Ringel, The Hall algebra approach to quantum groups
[Ri98] Ringel, The preprojective algebra of a quiver
[Sa06] Savage, Finite-dimensional algebras and quivers
[Sa10] Salisbury, Quantum groups and Hall algebras
[Sc09a] Schiffmann, Lectures on Hall algebras
[Sc09b] Schiffmann, Lectures on canonical and crystal bases of Hall algebras