Sachverhalt:
Sachverhalt:
A. X._ wurde mit Urteil des Bezirksgerichts Zürich vom 25. April 2002 wegen Widerhandlung gegen Art. 19 Ziff. 1 Abs. 4 und 5 in Verbindung mit Art. 19 Ziff. 2 des Betäubungsmittelgesetzes (BetmG) verurteilt. Ihm wurde vorgeworfen, im Juli und August 2000 bandenmässig eine grössere Menge Heroin entgegengenommen, bei sich aufbewahrt sowie an Dritte weitergegeben zu haben. Sodann habe er sich der Geldwäscherei im Sinne von <ref-law> schuldig gemacht, da er dafür verantwortlich sei, dass das Geld aus dem Drogenhandel an den Drogenlieferanten in Mazedonien weitergegeben worden sei.
A. X._ wurde mit Urteil des Bezirksgerichts Zürich vom 25. April 2002 wegen Widerhandlung gegen Art. 19 Ziff. 1 Abs. 4 und 5 in Verbindung mit Art. 19 Ziff. 2 des Betäubungsmittelgesetzes (BetmG) verurteilt. Ihm wurde vorgeworfen, im Juli und August 2000 bandenmässig eine grössere Menge Heroin entgegengenommen, bei sich aufbewahrt sowie an Dritte weitergegeben zu haben. Sodann habe er sich der Geldwäscherei im Sinne von <ref-law> schuldig gemacht, da er dafür verantwortlich sei, dass das Geld aus dem Drogenhandel an den Drogenlieferanten in Mazedonien weitergegeben worden sei.
B. Das Obergericht des Kantons Zürich sprach X._ auf Berufung hin am 6. März 2003 des mehrfachen Verbrechens im Sinne von Art. 19 Ziff. 1 Abs. 4 und 5 BetmG in Verbindung mit <ref-law> sowie der Geldwäscherei im Sinne von <ref-law> schuldig.
Das Kassationsgericht des Kantons Zürich wies die gegen dieses Urteil erhobene Nichtigkeitsbeschwerde am 25. Dezember 2003 ab, soweit es darauf eintrat.
Das Kassationsgericht des Kantons Zürich wies die gegen dieses Urteil erhobene Nichtigkeitsbeschwerde am 25. Dezember 2003 ab, soweit es darauf eintrat.
C. X._ führt mit Eingabe vom 11. Februar 2004 staatsrechtliche Beschwerde gegen das Urteil des Kassationsgerichts des Kantons Zürich und beantragt dessen Aufhebung. Gleichzeitig verlangt er die Aufhebung einzelner Ziffern des obergerichtlichen Urteilsdispositivs vom 6. März 2003. Die Sache sei an das Obergericht des Kantons Zürich zurückzuweisen. Zudem ersucht er um Gewährung der unentgeltlichen Rechtspflege für das Verfahren vor Bundesgericht.
Das Kassationsgericht und die Staatsanwaltschaft des Kantons Zürich verzichten auf eine Vernehmlassung.
Das Kassationsgericht und die Staatsanwaltschaft des Kantons Zürich verzichten auf eine Vernehmlassung.
D. Das Gesuch um Gewährung der aufschiebenden Wirkung wurde am 8. März 2004 gutgeheissen.

Das Bundesgericht zieht in Erwägung:
Das Bundesgericht zieht in Erwägung:
1. 1.1 Der Beschwerdeführer ist durch den angefochtenen Entscheid, der die Verurteilung durch das Obergericht des Kantons Zürich bestätigt, in seinen rechtlich geschützten Interessen betroffen (Art. 88 OG). Er macht die Verletzung von durch die Bundesverfassung sowie durch die EMRK garantierten Rechten geltend (Art. 84 Abs. 1 lit. a OG). Dazu ist er legitimiert. Da auch die übrigen Sachurteilsvoraussetzungen erfüllt sind, ist auf die staatsrechtliche Beschwerde, unter Vorbehalt der nachfolgenden Erwägungen, einzutreten.
1.2 Der Beschwerdeführer beantragt einerseits die Aufhebung des Entscheides des Kassationsgerichts vom 25. Dezember 2003. Andererseits sollen die ihn betreffenden Ziffern 1c, 2c und 6 des obergerichtlichen Urteilsdispositivs vom 6. März 2003 aufgehoben werden.
Das Urteil einer unteren Instanz kann mitangefochten werden, wenn die letzte kantonale Instanz dieses nur mit beschränkter Kognition hat überprüfen dürfen. Dies gilt jedoch nur, wenn die Möglichkeit der Aufhebung des unterinstanzlichen kantonalen Urteils zur Wahrung des vollen Rechtsschutzes erforderlich ist. Dies ist der Fall, wenn entweder der letzten kantonalen Instanz nicht sämtliche vor Bundesgericht erhobenen Rügen unterbreitet werden konnten oder wenn solche Rügen zwar von der letzten kantonalen Instanz zu beurteilen waren, jedoch mit einer engeren Prüfungsbefugnis, als sie dem Bundesgericht zusteht (<ref-ruling> E. 1a/aa mit Hinweisen).
Der Beschwerdeführer rügt vor Bundesgericht, die Beweiswürdigung des Obergerichts sei willkürlich und verletze den Grundsatz der Unschuldsvermutung (<ref-law>, Art. 6 Ziff. 2 EMRK, <ref-law> in Verbindung mit §§ 161 ff. StPO/ZH). Weiter sei das Gleichbehandlungsgebot verletzt worden (Art. 8 Abs. 1 und 9 BV in Verbindung mit <ref-law>/ZH), weil gegen den einen Mittäter aufgrund des gleichen Sachverhalts in erheblich geringerem Umfang Anklage erhoben worden sei.
Damit werden keine Rügen vorgebracht, die vom Zürcher Kassationsgericht im Rahmen der Nichtigkeitsbeschwerde gemäss § 430 Abs. 1 Ziff. 4 und 5 StPO/Zürich nicht oder nur mit einer eingeschränkteren Überprüfungsbefugnis beurteilt werden konnten als vom Bundesgericht im Rahmen der staatsrechtlichen Beschwerde (vgl. Andreas Donatsch/ Niklaus Schmid, Kommentar zur Strafprozessordnung des Kantons Zürich, Zürich 2000, Rz. 20 f. zu § 430; vgl. auch <ref-ruling> E. 2a). Soweit mit der vorliegenden Beschwerde auch das obergerichtliche Urteil formell angefochten und dessen Aufhebung verlangt wird, kann deshalb darauf nicht eingetreten werden.
1.3 Gemäss Art. 86 Abs. 1 OG ist die staatsrechtliche Beschwerde nur gegen letztinstanzliche kantonale Entscheide zulässig.
Der Beschwerdeführer erhebt die Rügen der willkürlichen Anwendung bzw. Verletzung der §§ 161 ff. und 400 StPO/ZH erstmals vor Bundesgericht. Insofern liegt kein letztinstanzlicher Entscheid vor. Auf diese Vorbringen ist deshalb nicht einzutreten.
1.4 Die Rügen der Verletzung der Art. 349 Abs. 2 und 350 StGB betreffen das materielle Strafrecht. Die Anwendung bundesstrafrechtlicher Normen kann im Verfahren der staatsrechtlichen Beschwerde nicht überprüft werden (vgl. Art. 84 Abs. 2 OG), auch wenn sich der Beschwerdeführer nur analog auf diese Bestimmungen beruft. Auf die Beschwerde ist insofern ebenfalls nicht einzutreten.
1.5 Das Kassationsgericht ist in einzelnen Punkten auf die kantonale Nichtigkeitsbeschwerde mangels hinreichender Auseinandersetzung mit dem obergerichtlichen Urteil nicht eingetreten. Der Beschwerdeführer macht in dieser Hinsicht keine formelle Rechtsverweigerung geltend.
1.5 Das Kassationsgericht ist in einzelnen Punkten auf die kantonale Nichtigkeitsbeschwerde mangels hinreichender Auseinandersetzung mit dem obergerichtlichen Urteil nicht eingetreten. Der Beschwerdeführer macht in dieser Hinsicht keine formelle Rechtsverweigerung geltend.
2. 2.1 In der Sache hält der Beschwerdeführer dafür, das Obergericht habe den aus der Unschuldsvermutung abgeleiteten Grundsatz "in dubio pro reo" als Beweiswürdigungsregel verletzt (<ref-law> und Art. 6 Ziff. 1 EMRK). Er sieht in der Tatsache, dass gegen Y._ lediglich wegen der Entgegennahme von 1 kg Heroin von ihm (dem Beschwerdeführer) Anklage erhoben, er (der Beschwerdeführer) jedoch wegen der Über- bzw. Weitergabe von 2,5 kg Heroin an Y._ verurteilt wurde, eine willkürliche Verletzung der Beweiswürdigungsregel.
2.2 Die Beweiswürdigung ist willkürlich (<ref-law>), wenn sie offen-sichtlich unhaltbar ist, mit der tatsächlichen Situation in klarem Widerspruch steht, auf einem offenkundigen Versehen beruht oder in stossender Weise dem Gerechtigkeitsgedanken zuwiderläuft. Dabei genügt es nicht, wenn der angefochtene Entscheid sich nur in der Begründung als unhaltbar erweist; eine Aufhebung rechtfertigt sich erst, wenn er auch im Ergebnis verfassungswidrig ist (<ref-ruling> E. 4, 8 E. 2.1, mit Hinweisen).
2.3 Gemäss <ref-law> sowie Art. 6 Ziff. 2 EMRK gilt jede angeschuldigte Person bis zur rechtskräftigen Verurteilung als unschuldig. Als Beweiswürdigungsregel besagt der Grundsatz "in dubio pro reo", dass sich der Strafrichter nicht von der Existenz eines für den Angeklagten ungünstigen Sachverhalts überzeugt erklären darf, wenn bei objektiver Betrachtung Zweifel bestehen, ob sich der Sachverhalt so verwirklicht hat. Die Beweiswürdigungsregel ist verletzt, wenn der Strafrichter an der Schuld des Angeklagten hätte zweifeln müssen. Dabei sind bloss abstrakte und theoretische Zweifel nicht massgebend, weil solche immer möglich sind und absolute Gewissheit nicht verlangt werden kann. Es muss sich um erhebliche und nicht zu unterdrückende Zweifel handeln, d. h. um solche, die sich nach der objektiven Sachlage aufdrängen (<ref-ruling> E. 2a mit Hinweisen).
Im Bereich der Beweiswürdigung verfügt der Sachrichter über einen weiten Ermessensspielraum. Das Bundesgericht auferlegt sich bei der Überprüfung der Beweiswürdigung im Strafprozess Zurückhaltung. Es greift im Verfahren der staatsrechtlichen Beschwerde wegen Verletzung des Grundsatzes "in dubio pro reo" als Beweiswürdigungsregel nur ein, wenn der Sachrichter den Angeklagten verurteilte, obgleich bei objektiver Würdigung des ganzen Beweisergebnisses offensichtlich erhebliche und schlechterdings nicht zu unterdrückende Zweifel an dessen Schuld fortbestanden (<ref-ruling> E. 2a mit Hinweisen).
Im Bereich der Beweiswürdigung verfügt der Sachrichter über einen weiten Ermessensspielraum. Das Bundesgericht auferlegt sich bei der Überprüfung der Beweiswürdigung im Strafprozess Zurückhaltung. Es greift im Verfahren der staatsrechtlichen Beschwerde wegen Verletzung des Grundsatzes "in dubio pro reo" als Beweiswürdigungsregel nur ein, wenn der Sachrichter den Angeklagten verurteilte, obgleich bei objektiver Würdigung des ganzen Beweisergebnisses offensichtlich erhebliche und schlechterdings nicht zu unterdrückende Zweifel an dessen Schuld fortbestanden (<ref-ruling> E. 2a mit Hinweisen).
3. 3.1 Das Kassationsgericht führte aus, auch wenn gegen Y._ nur wegen der Entgegennahme von 1 kg Heroin Anklage erhoben worden sei, habe sich das Obergericht im Verfahren gegen den Beschwerdeführer zu Recht nicht an diese Anklage gebunden gefühlt.
3.2 Mit diesem Argument des Kassationsgerichts setzt sich der Beschwerdeführer nicht auseinander. Er macht vielmehr geltend, die Strafverfolgungsbehörden hätten im Zweifelsfall anzuklagen, der Richter habe im Zweifelsfall frei zu sprechen. Wenn die Anklagebehörde der Meinung gewesen sei, Y._ habe von ihm nur 1 kg Heroin erhalten, dann hätte der Richter umso mehr zweifeln müssen, ob er Y._ wirklich 2,5 kg Heroin übergeben habe. Die Gerichte hätten aus der Nichtanklage bei Y._ ihm gegenüber nicht die richtigen Schlüsse gezogen.
3.3 Der Richter hat die Beweise frei zu würdigen und ist nicht an gesetzliche Beweisregeln gebunden. Die Organe der Strafrechtspflege sollen frei von Beweisregeln und nur nach ihrer persönlichen Ansicht aufgrund gewissenhafter Prüfung darüber entscheiden, ob sie eine Tatsache für bewiesen halten (vgl. z. B. <ref-ruling> E. 3a zu Art. 249 BStP). Entscheidend ist die Gesamtwürdigung der Beweise. Das Kassationsgericht hat im angefochtenen Urteil ausführlich dargelegt, weshalb es den Schuldspruch des Obergerichts geschützt hat. Diese Ausführungen werden im vorliegenden Verfahren vom Beschwerdeführer jedoch nicht diskutiert. Der Umstand, dass gegen Y._ wegen einer geringeren Menge Heroinhandels Anklage erhoben worden ist, vermag für sich alleine genommen gegenüber dem Beschwerdeführer keine Verletzung der Unschuldsvermutung zu belegen und lässt auch nicht die Beweiswürdigung des Obergerichts als willkürlich erscheinen. Weitere Rügen, welche geeignet wären, eine Verfassungs- oder Konventionsverletzung zu belegen, bringt der Beschwerdeführer nicht vor.
3.3 Der Richter hat die Beweise frei zu würdigen und ist nicht an gesetzliche Beweisregeln gebunden. Die Organe der Strafrechtspflege sollen frei von Beweisregeln und nur nach ihrer persönlichen Ansicht aufgrund gewissenhafter Prüfung darüber entscheiden, ob sie eine Tatsache für bewiesen halten (vgl. z. B. <ref-ruling> E. 3a zu Art. 249 BStP). Entscheidend ist die Gesamtwürdigung der Beweise. Das Kassationsgericht hat im angefochtenen Urteil ausführlich dargelegt, weshalb es den Schuldspruch des Obergerichts geschützt hat. Diese Ausführungen werden im vorliegenden Verfahren vom Beschwerdeführer jedoch nicht diskutiert. Der Umstand, dass gegen Y._ wegen einer geringeren Menge Heroinhandels Anklage erhoben worden ist, vermag für sich alleine genommen gegenüber dem Beschwerdeführer keine Verletzung der Unschuldsvermutung zu belegen und lässt auch nicht die Beweiswürdigung des Obergerichts als willkürlich erscheinen. Weitere Rügen, welche geeignet wären, eine Verfassungs- oder Konventionsverletzung zu belegen, bringt der Beschwerdeführer nicht vor.
4. Die staatsrechtliche Beschwerde ist demnach abzuweisen, soweit darauf einzutreten ist.
Die Voraussetzung zur Gewährung der unentgeltlichen Rechtspflege sind erfüllt (Art. 152 OG). Eine Gerichtsgebühr ist nicht zu erheben (Art. 152 Abs. 1 OG). Dem Beschwerdeführer ist seine jetzige Verteidigerin als unentgeltliche Rechtsvertreterin beizugeben. Diese ist für das bundesgerichtliche Verfahren aus der Bundesgerichtskasse angemessen zu entschädigen (Art. 152 Abs. 2 OG).

Demnach erkennt das Bundesgericht:
Demnach erkennt das Bundesgericht:
1. Die staatsrechtliche Beschwerde wird abgewiesen, soweit darauf einzutreten ist.
1. Die staatsrechtliche Beschwerde wird abgewiesen, soweit darauf einzutreten ist.
2. Dem Beschwerdeführer wird die unentgeltliche Rechtspflege gewährt:
a) Es werden keine Kosten erhoben.
b) Rechtsanwältin Dr. Barbara Strehle wird als unentgeltliche Rechtsvertreterin ernannt und für das bundesgerichtliche Verfahren aus der Bundesgerichtskasse mit einem Honorar von Fr. 1'500.-- entschädigt.
b) Rechtsanwältin Dr. Barbara Strehle wird als unentgeltliche Rechtsvertreterin ernannt und für das bundesgerichtliche Verfahren aus der Bundesgerichtskasse mit einem Honorar von Fr. 1'500.-- entschädigt.
3. Dieses Urteil wird dem Beschwerdeführer, der Staatsanwaltschaft und dem Kassationsgericht des Kantons Zürich schriftlich mitgeteilt.
Lausanne, 24. Juni 2004
Im Namen der I. öffentlichrechtlichen Abteilung
des Schweizerischen Bundesgerichts
Der Präsident: Der Gerichtsschreiber: