Das ist richtig und eigentlich funktioniert eine Bitcoin Full Node genau so. Damit aber nicht andauernd die gesamte Chain abgesucht werden muss, sammelt die Node einfach einen Datensatz mit allen Outputs die noch nicht ausgegeben wurden und aktualisiert ihn mit jedem neuen Block.
Damit weiß eine Node sofort ob ein Output ausgegeben werden kann oder eben nicht. Ob ein Output von dir ausgegeben werden darf beweist du im Input deiner Transaktion indem du das Script welches die Bedingungen zum Ausgeben definiert auflöst, z.B. mit einer gültigen Signatur.
Siehe diesen Beitrag, da ist das auch nochmal erklärt: