區(qū)塊鏈學習之比特幣(六)

比特幣項目簡介


比特幣是基于區(qū)塊鏈技術(shù)的一種數(shù)字貨幣實現(xiàn),比特幣網(wǎng)絡(luò)是歷史上首個經(jīng)過大規(guī)模惠勒、長時間檢查的數(shù)字貨幣系統(tǒng)

比特幣網(wǎng)絡(luò)在功能上具有如下特點:

  • 去中心化: 意味著沒有任何獨立個體可以對網(wǎng)絡(luò)中的交易進行破壞,任何交易請求都需要大多數(shù)參與者的共識河狐。
  • 匿名性: 比特幣網(wǎng)絡(luò)中賬戶地址是匿名的郎哭,無法從交易信息關(guān)聯(lián)到具體的個體狂鞋,但這也意味著很難進行審計
  • 通脹預(yù)防: 比特幣的發(fā)行需要通過挖礦計算來進行著淆,發(fā)行量每四年減半劫狠,總量上限為2100萬枚拴疤,無法被超發(fā)赖瞒。

原理和設(shè)計


比特幣網(wǎng)絡(luò)是一個分布式的點對點網(wǎng)絡(luò),網(wǎng)絡(luò)中的礦工通過“挖礦”來完成對交易記錄的記賬過程珍坊,維護網(wǎng)絡(luò)的正常運行岩四。

區(qū)塊鏈網(wǎng)絡(luò)提供一個公共可見的記賬本,該記賬本并非記錄每個賬戶的余額劫笙,而是用來記錄發(fā)生過得交易的歷史信息。該設(shè)計可以避免重放攻擊,即某個合法交易被多次重新發(fā)送造成攻擊孕惜。

基本交易過程

基本交易過程: 每次發(fā)生交易,用戶需要將新交易記錄寫到比特幣區(qū)塊鏈網(wǎng)絡(luò)中晨炕,等網(wǎng)絡(luò)確認后即可認為交易完成衫画。每個交易包括一些輸入和一些輸出,未經(jīng)使用的交易的輸出(Unspent Transaction Outputs,UTXO)可以被新的交易引用作為合法的輸入瓮栗,被使用過的交易的輸出(Spent Transaction Outputs,STO)則無法被引用作為合法輸入削罩。一筆合法的交易,即引用某些已存在交易的UTXO作為交易的輸入费奸,并生成新的輸出的過程

在交易過程中弥激,轉(zhuǎn)賬方需要通過簽名腳本來證明自己是UTXO的合法使用者,并且指定輸出腳本來限制未來本交易的使用者(收款方)


image.png

注意: 剛放進網(wǎng)絡(luò)中的交易(深度為0)并非是實時得到確認的愿阐。進入網(wǎng)絡(luò)中的交易存在著被推翻的可能性微服,一般要再生成幾個新的區(qū)塊(深度大于0)才認為該交易被確認。

重要概念

賬戶/地址
比特幣采用了非對稱的加密算法缨历,用戶自己保留私鑰以蕴,對自己發(fā)出的交易進行簽名確認,并公開私鑰辛孵。
比特幣的賬戶地址其實就是用戶公鑰經(jīng)過一系列Hash及編碼運算后生成的160位(20字節(jié))的字符串丛肮。

交易
交易是完成比特幣功能的核心概念

交易腳本
腳本是保障交易完成(主要用于檢驗交易是否合法)的核心機制,當所依附的交易發(fā)生時被觸發(fā)魄缚。通過腳本機制而非寫死交易過程宝与,比特幣網(wǎng)絡(luò)實現(xiàn)了一定的可擴展性。比特幣腳本語言是一種非圖靈完備的語言鲜滩,類似Forth語言伴鳖。

一般每個交易都會包括:

  • 輸出腳本: 一般由付款方對交易設(shè)置鎖定,用來對能動用這筆交易輸出(例如徙硅,要花費交易的輸出)的對象(收款方)進行權(quán)限控制榜聂,例如限制必須是某個公鑰的擁有者才能花費這筆交易。
  • 認領(lǐng)腳本: 用來證明自己可以滿足交易輸出腳本的鎖定條件嗓蘑,即對某個交易的輸出(比特幣)的擁有權(quán)须肆。

區(qū)塊
比特幣區(qū)塊由區(qū)塊頭和區(qū)塊體組成匿乃,要對區(qū)塊鏈的完整性進行檢查,只需要檢查各個區(qū)塊頭信息即可豌汇,無需獲取具體的交易內(nèi)容幢炸,這也是簡單交易驗證的基本原理。

創(chuàng)新設(shè)計

比特幣在設(shè)計上的創(chuàng)新點主要體現(xiàn)在避免作惡拒贱、負反饋調(diào)節(jié)和共識機制三個方面宛徊。

避免作惡
避免作惡基于經(jīng)濟博弈原理。通過經(jīng)濟博弈來讓合作者得到利益逻澳,讓非合作者遭受損失和風險闸天。

負反饋調(diào)節(jié)
比特幣網(wǎng)絡(luò)中礦工越多,系統(tǒng)就越穩(wěn)定斜做,比特幣價值就越高苞氮,但挖到礦的概率會降低。反之瓤逼,網(wǎng)絡(luò)中礦工減少笼吟,會讓系統(tǒng)更容易被攻擊,比特幣價值降低霸旗,但挖到礦的概率會提高贷帮。

共識機制
傳統(tǒng)共識問題往往是考慮在一個相對封閉的分布式系統(tǒng)中,允許同時存在正常節(jié)點定硝、故障節(jié)點如何快速達成一致

比特幣提出了基于Proof of Work(Pow)的共識機制:基于概率皿桑、隨時間逐步增強確認的共識。現(xiàn)有達成的結(jié)果在理論上可能被推翻蔬啡,只是攻擊者要付出的代價隨時間而指數(shù)級上升诲侮,被推翻的可能性隨之指數(shù)級下降。
可用性的提升:考慮到Internet的尺度箱蟆,達成共識的時間相對比較長沟绪,因此按照區(qū)塊(一組交易)來進行階段性的確認(快照),從而提高網(wǎng)絡(luò)整體的可用性空猜。
減少提案的個數(shù):限制網(wǎng)絡(luò)中共識的噪聲绽慈,通過大量的Hash計算和少數(shù)的合法結(jié)果來限制合法提案的個數(shù),進一步提高網(wǎng)絡(luò)中共識的穩(wěn)定性辈毯。

挖礦


基本原理

挖礦是參與維護比特幣網(wǎng)絡(luò)的節(jié)點坝疼,通過協(xié)助生成新區(qū)塊來獲取一定量新增比特幣的過程。

挖礦過程

具體過程: 參與者綜合上一個區(qū)塊的Hash值谆沃,上一個區(qū)塊生成之后的新的驗證過得交易內(nèi)容钝凶,再加上自己猜測的一個隨機數(shù)X,一起打包到一個候選新區(qū)塊唁影,讓新區(qū)塊的Hash值小于比特幣網(wǎng)絡(luò)中給定的一個數(shù)耕陷。

系統(tǒng)每隔兩周會根據(jù)上一周期的挖礦時間來調(diào)整挖礦難度(通過調(diào)整限制數(shù)的大械嗝),調(diào)節(jié)生成區(qū)塊的時間穩(wěn)定在10分鐘左右哟沫。為了避免震蕩饺蔑,每次調(diào)整的最大幅度為4倍。

如何看待挖礦

礦工個體達到全網(wǎng)1/3的算力嗜诀,比特幣網(wǎng)絡(luò)就存在被破壞的風險了猾警;達到1/2的算力,從概率上就掌控了整個網(wǎng)絡(luò)了裹虫。但是要實現(xiàn)這么大的算力肿嘲,將需要付出巨大的經(jīng)濟成本。除了盡量避免將算力放到同一個組織手里筑公,沒太好的辦法,這是目前Pow機制自身造成的尊浪。

共識機制


比特幣區(qū)塊鏈采用 PoW 的機制來實現(xiàn)共識匣屡,對PoW試圖改進衍生了PoS和DPoS, 原理仍然為通過經(jīng)濟懲罰來限制惡意參與。

工作量證明

工作量證明(Pow)通過計算來猜測一個數(shù)值(nonce)拇涤,使得拼湊上交易數(shù)據(jù)后內(nèi)容的Hash值滿足規(guī)定的上線捣作。由于Hash難題在目前計算模型下需要大量的計算,這就保證在一段時間內(nèi)系統(tǒng)中只能出現(xiàn)少數(shù)合法提案鹅士。反過來券躁,能夠提出合提案也證明提案者確實付出了一定的工作量。

權(quán)益證明

權(quán)益證明:類似于現(xiàn)實生活中的股東機制掉盅,擁有股份越多的人越容易獲取記賬權(quán)(同時更傾向于維護網(wǎng)絡(luò)的正常工作)

典型過程:通過保證金(代幣也拜、資產(chǎn)、名聲等具備價值屬性的物品即可)來對賭一個合法的塊成為新的區(qū)塊趾痘,收益為抵押資本的利息和交易服務(wù)費慢哈。提供證明的保證金(例如通過轉(zhuǎn)賬貨幣記錄)越多,則獲得記賬權(quán)的概率就越大永票。合法記賬者可以獲得收益卵贱。

PoS試圖解決在PoW中大量資源被浪費的缺點,受到了廣泛的關(guān)注侣集。惡意參與者將存在保證金被罰沒的風險键俱,即損失經(jīng)濟利益。

一般情況下世分,對于PoS來說编振,需要掌握超過全網(wǎng)1/3的資源,才有可能左右最終的結(jié)果罚攀。

閃電網(wǎng)絡(luò)


比特幣的一大缺點為交易性能:全網(wǎng)每秒7筆左右的交易速度党觅,遠低于傳統(tǒng)金融交易系統(tǒng)雌澄;同時,等待6個區(qū)塊的可信確認將導致約一個小時的最終確認時間杯瞻。為了提升性能镐牺,提出了閃電網(wǎng)絡(luò)等創(chuàng)新設(shè)計

閃電網(wǎng)絡(luò): 將大量交易放到比特幣區(qū)塊鏈之外進行,只把關(guān)鍵環(huán)節(jié)放到 鏈上進行確認魁莉。

閃電網(wǎng)絡(luò)主要通過引入智能合約的思想來完善鏈下的交易渠道睬涧。核心的思想主要有兩個:

  • RSMC: 解決鏈下交易的確認問題
  • HTLC: 解決支付通道的問題

RSMC

RSMC 即 “可撤銷的順序成熟度合同”。主要原理類似于資金池機制旗唁。

基本過程: 首先假定雙方之間存在一個“微支付通道”(資金池)畦浓。交易雙方先預(yù)存一部分資金到“微支付通道”里,初始情況下雙方的分配方案等于預(yù)存的金額检疫。每次發(fā)生交易讶请,需要對交易后產(chǎn)生資金的分配結(jié)果共同進行確認,同時簽字把舊版本的分配方案作廢掉屎媳。任何一方需要提現(xiàn)時夺溢,可以將他手里雙方簽署過得交易結(jié)果寫到區(qū)塊鏈網(wǎng)絡(luò)中,從而被確認烛谊。

優(yōu)點: RSMC整個過程只有提現(xiàn)時才需要通過區(qū)塊鏈风响,可以實現(xiàn)大量中間交易發(fā)生在鏈外。

HTLC

微支付通道是通過HTLC來實現(xiàn)的丹禀,中文意思是“哈希的帶時鐘的合約”状勤。這其實就是限時轉(zhuǎn)賬

基本過程:通過智能合約,雙方約定轉(zhuǎn)賬方先凍結(jié)一筆錢双泪,并提供一個哈希值持搜,如果在一定時間內(nèi)有人能提出以個字符串,使得它的哈希后的值與已知值匹配(實際上意味著轉(zhuǎn)賬方授權(quán)了接收方來提現(xiàn))攒读,則這筆錢轉(zhuǎn)給接收方

閃電網(wǎng)絡(luò)的概念

RSMC 保障了兩個人之間的直接交易可以在鏈下完成朵诫,HTLC保障了任意兩個人之間轉(zhuǎn)賬都可以通過一條“支付”通道來完成。閃電網(wǎng)絡(luò)整合者兩種機制薄扁,就可以實現(xiàn)任意兩個人之間的交易都在鏈下完成剪返。
在整個交易中,智能合約起到了中介的重要角色邓梅,而區(qū)塊鏈網(wǎng)絡(luò)則確保最終的交易結(jié)果被確認脱盲。

側(cè)鏈


側(cè)鏈協(xié)議:允許資產(chǎn)在比特幣區(qū)塊鏈和其他區(qū)塊鏈之間互轉(zhuǎn)。簡單來說日缨,以比特幣區(qū)塊鏈作為主鏈钱反,其他區(qū)塊鏈作為側(cè)鏈,二者通過雙向掛鉤,實現(xiàn)比特幣從主鏈轉(zhuǎn)移到側(cè)鏈進行流通面哥。(實現(xiàn)了比特幣區(qū)塊鏈的擴展)

SPV 證明

在比特幣系統(tǒng)中驗證交易時哎壳,涉及交易合法性檢查、雙重花費檢查尚卫、腳本檢查等归榕。由于驗證過程需要完整的UTXO記錄,通常要由運行著完整功能幾點的礦工來完成吱涉。而很多時候用戶只關(guān)心與自己相關(guān)的那些交易刹泄,只希望能夠知道交易是否合法、是否已在區(qū)塊鏈中存在了足夠的時間(即獲得足夠的去人)怎爵,而不需要自己成為完整節(jié)點做出完整性驗證特石。

簡單支付驗證(Simplified Payment Verfication, SPV): 能夠以較小的代價判斷某個支付交易是否已經(jīng)被驗證過(存在于區(qū)塊鏈中),以及得到了多少算力保護鳖链。SPV 客戶端只需要下載所有區(qū)塊的去塊頭姆蘸,進行簡單的定位和計算工作,就可以驗證結(jié)論芙委。

側(cè)鏈協(xié)議中乞旦,用SPV來證明一個動作卻是已經(jīng)在區(qū)塊鏈中發(fā)生過,稱為SPV證明题山。SPV證明包括兩部分內(nèi)容:

  • 一組區(qū)塊頭的列表,表示工作量證明
  • 一個特定輸出確實存在于某個區(qū)塊中的密碼學證明

雙向掛鉤

側(cè)鏈協(xié)議的設(shè)計難點在于如何讓資產(chǎn)在主鏈和側(cè)鏈之間安全流轉(zhuǎn)故痊。

具體來說顶瞳,協(xié)議采用雙向掛鉤機制實現(xiàn)比特幣向側(cè)鏈的轉(zhuǎn)移和返回。主鏈和側(cè)鏈需要對對方的特定交易做SPV驗證愕秫。過程如下:

image.png

熱點問題


設(shè)計中的權(quán)衡

比特幣的設(shè)計目標在于支持一套安全慨菱、開放、分布式的數(shù)字貨幣系統(tǒng)戴甩。圍繞著一目標符喝,比特幣協(xié)議的設(shè)計中很多地方都體現(xiàn)了權(quán)衡的思想:

  • 區(qū)塊容量: 大容量可帶來更高的交易吞吐率,但會增加挖礦成本甜孤,帶來中心化的風險协饲,同時增大存儲的代價。權(quán)衡設(shè)計當前的區(qū)塊容量上限設(shè)定為1MB缴川。
  • 出塊間隔時間: 更短的出塊間隔時間可以縮短交易確認時間茉稠,但也可能導致分叉增多,降低網(wǎng)絡(luò)可用性把夸。
  • 腳本支持程度: 更強大的腳本指令集可以帶來更多的靈活性而线,但也會引入更多的安全風險

分叉

當需要修復漏洞、擴展功能或調(diào)整結(jié)構(gòu)時,比特幣需要在全網(wǎng)的配合下進行升級膀篮。升級通常涉及更改交易的數(shù)據(jù)結(jié)構(gòu)或區(qū)塊的數(shù)據(jù)結(jié)構(gòu)嘹狞。

分布在全球的節(jié)點不可能同時完成升級來遵循新的協(xié)議,因此升級時可能出現(xiàn)分叉誓竿。把網(wǎng)絡(luò)中升級的幾點稱為新幾點磅网,未升級的節(jié)點稱為舊節(jié)點,根據(jù)新舊節(jié)點相互兼容性上的區(qū)別烤黍,可分為軟分叉硬分叉

  • 軟分叉: 如果舊節(jié)點仍然能夠驗證接受新節(jié)點產(chǎn)生的交易和區(qū)塊知市,則稱為軟分叉。
  • 硬分叉: 如果舊節(jié)點不能接受新節(jié)點產(chǎn)生的交易和區(qū)塊速蕊,則稱為硬分叉嫂丙。
    硬分叉升級區(qū)塊鏈協(xié)議的難度大于軟分叉,但軟分叉能做的事情有限规哲,大的改動只能通過硬分叉來完成跟啤。

交易延展性

交易延展性:是比特幣的一個設(shè)計缺陷,是指當交易發(fā)起者對交易簽名之后唉锌,交易ID仍然可能被改變隅肥。

延展性攻擊會帶來一些問題:

  • 在原始交易未被確認之前廣播ID改變的交易可能誤導相關(guān)方對交易狀態(tài)的判斷,甚至發(fā)動拒絕服務(wù)攻擊
  • 多重簽名場景下:一個簽名者有能力改變交易ID袄简,會給其他簽名者的資產(chǎn)帶來潛在風險
  • 阻礙閃電網(wǎng)絡(luò)等比特幣擴展方案的實施

擴容之爭

比特幣區(qū)塊容量現(xiàn)在在1MB以下腥放,交易量已不能滿足交易需求。比特幣的一系列的方案提出:鏈上擴容提議绿语、用側(cè)鏈或閃電網(wǎng)絡(luò)擴展比特幣等

擴容之爭主要有兩派提出的方案:

  • 核心開發(fā)者的 Bitcoin Core 團隊主推的隔離見證方案(SegWit): 將交易中的簽名部分從交易的輸入中隔離出來秃症,放到交易末尾的被稱為見證的字段當中。同時吕粹,將區(qū)塊容量上限理論上提高到4MB
  • Bitcoin Unlimited 團隊推出的方案(BU): 擴展比特幣客戶端种柑,使礦工可以自由配置他們想要生成和驗證的區(qū)塊容量

比特幣的監(jiān)管和追蹤

比特幣的匿名特性,使得其交易的監(jiān)管變得十分困難匹耕。
不過通過分析大量公開可得的交易記錄聚请,有很大概率可以追蹤到比特幣的實際轉(zhuǎn)移路線,甚至可以追蹤到真實用戶

相關(guān)工具


客戶端

比特幣客戶端用于和比特幣網(wǎng)絡(luò)進行交互稳其,同時也可以參與網(wǎng)絡(luò)的維護驶赏。
客戶端分為三種:

  • 完整客戶端: 存儲所有的交易歷史記錄,功能完備
  • 輕量級客戶端: 不保存交易副本欢际,交易需要向別人查詢
  • 在線客戶端: 通過網(wǎng)頁模式來瀏覽第三方服務(wù)器提供的服務(wù)

錢包

比特幣錢包可以存儲和保護用戶的私鑰,并提供查詢比特幣余額母市、收發(fā)比特幣等功能。
根據(jù)私鑰存儲方式不同损趋,錢包分為以下幾種:

  • 離線錢包: 離線存儲私鑰患久,也稱為“冷錢包”椅寺,安全性相對較強,但無法直接發(fā)送交易蒋失,便利性差
  • 本地錢包: 用本地設(shè)備存儲私鑰返帕,可直接向比特幣網(wǎng)絡(luò)發(fā)送交易,易用性強篙挽,但本地設(shè)備存在被攻擊風險
  • 在線錢包:用錢包服務(wù)器存儲經(jīng)用戶口令加密過得私鑰荆萤,易用性強,但錢包服務(wù)器同樣可能被攻擊
  • 多重簽名錢包:由多方共同管理一個錢包地址铣卡,比如2 of 3 模式下链韭,集合三位管理者中兩位的私鑰便可以發(fā)送交易

礦機

比特幣礦機是專門為“挖礦”設(shè)計的硬件設(shè)備,目前主要包括基于GPU和ASIC芯片的專用礦機煮落。

總結(jié)


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末敞峭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蝉仇,更是在濱河造成了極大的恐慌旋讹,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件轿衔,死亡現(xiàn)場離奇詭異沉迹,居然都是意外死亡,警方通過查閱死者的電腦和手機害驹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門鞭呕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人宛官,你說我怎么就攤上這事琅拌。” “怎么了摘刑?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長刻坊。 經(jīng)常有香客問我枷恕,道長,這世上最難降的妖魔是什么谭胚? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任徐块,我火速辦了婚禮,結(jié)果婚禮上灾而,老公的妹妹穿的比我還像新娘胡控。我一直安慰自己,他們只是感情好旁趟,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布昼激。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪橙困。 梳的紋絲不亂的頭發(fā)上瞧掺,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機與錄音凡傅,去河邊找鬼辟狈。 笑死,一個胖子當著我的面吹牛夏跷,可吹牛的內(nèi)容都是我干的哼转。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼槽华,長吁一口氣:“原來是場噩夢啊……” “哼壹蔓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起硼莽,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤庶溶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后懂鸵,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體偏螺,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年匆光,在試婚紗的時候發(fā)現(xiàn)自己被綠了套像。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡终息,死狀恐怖夺巩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情周崭,我是刑警寧澤柳譬,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站续镇,受9級特大地震影響美澳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜摸航,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一制跟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧酱虎,春花似錦雨膨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撒妈。三九已至,卻和暖如春甥雕,著一層夾襖步出監(jiān)牢的瞬間踩身,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工社露, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留挟阻,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓峭弟,卻偏偏與公主長得像附鸽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子瞒瘸,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348