隋代史学家王邵说:“沈约、《晋书》造奇说,云琅琊国姓牛者,与夏侯妃私通,生中宗,因远叙宣帝以毒酒杀牛金,符证其状。收承此言,乃云:司马叡,晋将牛金子也。计其年,全不相干。”
唐代史学家刘知几在《史通》中批评沈约和魏收:“沈氏著书,好诬先代,于晋则故造奇说,在宋则多出谤言,前史所载,已讥其谬矣。而魏收党附北朝,尤苦南国,承其诡妄,重以加诸。遂云马叡出于牛金,刘骏上淫路氏。可谓助桀为虐,幸人之灾。寻其生绝胤嗣,死遭剖斩,盖亦阴过之所致也。”他并且在“自注”中引用了王邵的上述分析。
宋代学者王应麟说:“王劭谓沈约喜造奇说,以诬前代。刘知几亦以为非,而致堂《读史管见》乃谓元帝冒姓司马,过矣。”清代学者卢文弨也说:“此说创自沈约,不足信也。”
羌族是中国西北地区的古老民族,最早约有一百五十余种部族。姚兴祖上的烧当羌(又名研种羌)属于其中较大的一种。公元二世纪初,烧当羌为东汉政府击破,由河曲(今青海省东南境河曲之地)被徙至汉阳(今甘肃省甘谷县)、安定(今甘肃省镇原县南)、陇西(今甘肃省临洮县)一带。西晋永嘉年间,居住在陇西赤亭的一支烧当羌人在姚兴祖父姚弋仲的率领下,从赤亭徙居隃糜(今陕西省千阳县东)。咸和八年(公元333年),后赵主石虎徙关中豪族及氐羌十万余户以实关东。姚弋仲被石虎封为西羌大都督,率数万羌人移居清河滠头(今河北省枣强县东北)。后赵时期,姚弋仲先后任侍中、征西大将军、右丞相等职。后赵灭亡,他又接受东晋的封爵,任六夷大都督、车骑大将军、大单于。姚弋仲死后,姚兴的伯父姚襄背叛东晋,在山桑(今安徽省蒙城县北)打败扬州刺史殷浩,屯兵盱眙(今江苏省盱眙县北),招集流人,初步建立政权。不久,姚襄率领部众返回关中,途中被前秦军队击杀,其弟姚苌率余部投降前秦。
姚苌,字景茂,是姚兴之父。降前秦后,姚苌因累立大功,被授以左卫将军、扬威将军、龙骧将军,历任陇东、汲郡、河东、武都、武威、巴西、扶风太守,宁、幽、兖三州刺史,步兵校尉等职。淝水之战后,南征失败的前秦分崩离析。太元九年(384年),姚苌得到关中羌人和西北豪族的支持,在渭北马牧正式脱离前秦,重建政权,自称大将军、大单于、万年秦王,建元白雀。史称后秦。姚苌的力量发展很快,陆续归附他的各族人口有十几万户。前秦主苻坚曾几次派大军进攻姚苌,都未能取胜。次年七月,困守在长安的苻坚突破鲜卑慕容氏的包围到达五将山(今陕西省岐山县东北),被姚苌擒杀。白雀三年(386年),鲜卑慕容氏放弃长安东走,姚苌乘机占据长安,称帝改元。后秦虽然打败周围的一些割据势力,基本上控制了关中,但占据陇西的苻登坚持与姚苌为敌,使它不得安宁。苻登是苻坚的族孙。苻坚、苻丕父子死后,他继立为帝,拥有部众十余万人。姚苌及其弟姚硕德多次与之攻战,始终未能将其消灭。建初九年十二月(394年1月),姚苌病死,其子姚兴嗣立,苻登仍是后秦王朝的强大威胁。