Monthly Archives: 八月 2017

ATSC 3.0 小整理

ATSC 3.0 的消息愈來愈多, 在此整理一下. 首先補充 ATSC 2.0 發生了什麼事? 由於 2.0 的主旨只在於提升解析度, 因此還來不及推廣就被格局更大的 ATSC 3.0 取代了.

參考下圖 (取自 [2]), ATSC 3.0 除了可以走 broadcast (廣播), 也可以走 broadband (寬頻). Broadband 意味著可以用 USB 或是 HDMI dongle 透過 WIFI 路由器播放 ATSC 3.0 而不用換電視或是 tuner. 當然, 我們可以看到若走 broadcast 這路, 3.0 和 1.0 的差異甚大. 

在 IP 層以上, broadband 和 broadcast 只有 TCP 和 UDP 的不同. 再往上, 就沒有分別了. 這裡有幾個縮寫要注意. ROUTE 不是路由器那個 route, 而是 Real-Time Object Delivery over Unidirectional Transport (那 E 呢? 去哪裡了?), MMTP 是指 MPEG Media Transport Protocol, HTTP 是 hypertext transfer protocol; 後兩者沒有搞怪, 就是大家平常知道的那個. 資料路徑如下:

MPEG-DASH –> IP –> ROUTE –> HTTP Proxy –>  MPU (Media Processing Unit)

MPU 負責解碼 (decode) 和播放. 上圖的 MPU 兩層之中有個 EME, 負責解密 (decrypt) 的部分. 播放當中可能頭端還會推送一些資料, 它們會走上圖的 NRT (Non-Real-Time) file delivery. 基本的 ATSC 播放規格如下:

  • Transfer rate: Up to 57 Megabits per second on a 6 MHz channel (up from ATSC 1.0 19.4 Mbit/s)
  • Video Codec: HEVC/H.265 (ATSC 1.0 used MPEG-2)
  • Progressive Video: Up to 4K UHD or 3840 X 2160 resolution at 120 FPS
  • High Dynamic Range (HDR) imaging
  • 3D TV compatible – just in case it makes a comeback
  • Dolby AC-4 & MPEG-H 3D Audio
  • Multi-audio track by program
  • Dynamic range control
  • Audio / video water mark
  • Adaptable single frequency network transmission systems for improved over-air reception from ATSC 1.0

顯而易見地, 音視頻的水準都大幅提高了. 另外值得一提的是, ATSC 號稱改善了 AV sync. 對嘴的效果會比以前更好. ( ATSC improves lip-sync so that in any kind of delivery scenario lip-sync is maintained to a very tight tolerance.)

既然可以透過網路, 當然就可以支援手機播放 (multi-screen). 所有的內容都廣播出去之後, 接受者若在不同的區域收看, 就可以根據地理資訊 (如 GPS) 或個人喜好篩選其內容, 比方說天氣、交通資訊等等. 當然, 大家也可以對廣告投票, 反映自己的意見. 

當然, broadcast 這路也不是什麼事都沒做. 據稱 ATSC 改善了訊號強度. 我想這一部分是 OFDM (Orthogonal frequency division multiplexing) 所貢獻的. 它的目標是像手機一樣在室內也可以收到訊號 ( allowing signals to travel further and to penetrate deeper into buildings and basements within range) [1].

最後提一下 ATSC 賺錢模式, 前面講到會播廣告. 但他們更想做的是 on line shopping, 看到電視上有什麼好東西都可以直接點下去就下單. 這個夢想在 BD (藍光光碟) 已經提過一次, 但 BD 不普及, 這想法就沒有發展成功.  Netflix 的商業模式也被討論到 [1], 不過我對 Netflix 的模式除了包月之外, 認識不多.

[REF]

  1. http://www.audioholics.com/editorials/atsc-3.0-cord-cutter2019s-dream-to-tiered-internet-nightmare
  2. https://www.thebroadcastbridge.com/content/entry/6229/atsc-3.0-details-explained-part-4
  3. https://www.thebroadcastbridge.com/home/category/transmission-encoding-mux/entry/6139/atsc-3.0-mysteries-explained-part-1
  4. https://www.thebroadcastbridge.com/home/category/distribution-and-delivery/entry/6200/atsc-3.0-explained-part-2
  5. https://www.thebroadcastbridge.com/home/category/transmitters-and-rf-components/entry/6275/atsc-3-0-details-explained-part-3

我讀 «證券分析» 第六版 – 證券分析的其他方面

這段時間中, 我讀了東野圭吾的 <解憂雜貨店> (這本超好看), 秦嗣林的<學上當>. 事實上秦老闆的每一本書我都看過了, 只是對小品散文很難寫筆記. 然後又翻了兔哥的 <大話工業 4.0> 和天下雜誌的 <區塊鍊革命>,…只有 <大話> 的前一半好看, 其他一本半滿不好看, 另外沒翻開的兩本又有點硬, 只好心甘情願回來繼續讀 <證券分析>.

第七部分 “證券分析的其他方面:價格與價值的差異” 由大衛艾布拉姆斯 (David Abrams) 導讀, 他也坦言自己本來也沒有把 <證券分析> 讀好讀滿, 但既然受邀導讀, 就認真地看了本書. 他提到第 46 章的內容比較過時了, 主要是這章討論認股權證, 但此時衍生性金融商品還在很原始的階段, 而著名的 “認股期權估價公式” [1] 還沒有被提出來. 因此作者的分析不夠精準. 

如果我們只去分析定價錯誤- 價格明顯小於價值的案例, 就會發現這種錯誤不會維持太久、也不會經常發生. 但若逮到機會, 獲利就會非常可觀! 以 20 世紀 80 年代的日本為例, 當時日本的氣勢如日中天, 有人認為這是新世界的到來, 有人則看出又是另一場泡沫. 日本人因為看好自己, 用低價賣出日經指數的看跌期權, 而看壞日本的美國人則是買方. 後來日本崩盤, 這些低價期權大漲, 作者的老闆也賺了不少.

導讀者說自己剛出道的時候, 不懂資深同事為何可以準時下班又賺大錢. 於是請教自己的老闆 Ira 有何祕訣? 老闆說只要你能便宜地 (4.5 USD) 買進一對期權 (一個賣出和一個買進), 用貴一點點的價格 (5 USD) 賣出一對期權. 這樣來回反覆操作就可以賺 (0.5 / 0.45 ~= 11%). 那問題來了, 為何有便宜貨可以撿? 因為市場上有傻瓜. 巴菲特說 “如果你玩撲克三十分鐘後還不知道傻瓜是誰, 那你就是傻瓜.” 

第 47 章 “融資成本與管理成本” 這部分, 導讀者認為可以改名為 “小心投資銀行家”.他的朋友也說: “沒有衝突的地方, 也就沒有利益.” 基本上投資人和你的投資銀行、理專都是利益衝突的. 第 50 章和第 51 章都在講價格與價值的背離.  作者提出一個清單, 告訴讀者有很多投資標的都太便宜了! 導讀者說雖然他也很羨慕葛拉漢、巴菲特生的年代好, 但他提醒我們也有自己的肥羊可宰, 像是 2002 年債券崩盤、2007  年金融海嘯, 這些都是超好的獲利機會. Well, 大部分的人都是被宰啦!

第 52 章說到:”市場分析不存在安全邊際, 不是對便是錯, 一旦你錯了, 就會遭受損失.” (p. 805). 因此作者對讀者們的期望是: 大家都能變成業餘的證券分析師, 要懂得看數據, 為自己思考. 如果你是剛出社會的年輕人, 導讀者給大家的建議是要熱愛投資賺錢, 不要相信效率市場的說法. 雖然市場的確愈來愈有效率, 但它足夠低效到讓我們找到賺錢的機會.

以上就是第七部分導讀的內容摘要.

[REF]

  1. 引用自網站: www.fin.kuas.edu.tw/. 關於選擇權的評價理論,最早是在 1900 年,由法國 Sorbonne 大學的 Louis Bachelier 在其博士論文中,針對與買權有類似性質的認股權證做評價,但因為他 做了股價為常態分配假設,使得股價有可能是負值 ,使得股價有可能是負值,因此不符合實際情況 ,因此不符合實際情況。直到 1973 年,由 Fischer Black 和 Myron Scholes 共同在第 81 期的 Journal of Political Economy 中,發表了著名的 Black & Scholes 歐式選擇權公式(以下簡稱 B-S 公 式)推導,提供歐式選擇權理論價格一個嚴謹的數學計算工具,讓交易者不再只 ,讓交易者不再只 是依據自己的主觀預測來對歐式選擇權進行評價,而有明確公式運用,便於進行選擇權交易決策。

區塊鍊小註解

最近比特幣 (bitcoin) 又紅了起來, 算算從我上次停止挖礦已經有三年多的時間了. 在這期間比特幣大幅升值, 不過挖礦的難度也上升了! 雖然我的比特幣錢包還能用, 挖礦軟體也還能挖, 但自己挖礦仍然不划算. 雲端挖礦又有龐式騙局, 真是沒意思啊!

除了比特幣本身, 其實我也更想了解區塊鍊 (block chain) 的原理. 坊間有很多講區塊鍊的書, 通常都是講區塊鍊有多偉大多偉大. 不過為何能夠做到去中間化、分散、公信力…這個就很少人討論了. 好比賣藥的都說人蔘是藥王, 但是人蔘皂苷為何能達到那個效果? 舌燦蓮花的導遊可說不上來. 為了明辨那些東西是可以做得到的, 我們還是回頭複習比特幣.

網路上有許多介紹比特幣的文章, 讀完 [1][2] 兩篇就會大概有個了解. 首先一個 block 的大小是 1MB, 這個格式以內用盡了之後, 就沒有新 bitcoin 了. 這是當初人們認為 bitcoin 不會有通貨膨脹的原因. 但人們總是不滿足的, 前幾天 (August 1st 2017, at 12:20pm UT) 硬是分裂了. 原本有一個比特幣 (bitcoin, BTC) 的人會得到一個比特幣 (BTC) 和一個比特幣現金 (BCC, bitcoin cash), 日後才挖的人就一分為二 [3].

礦場現在會問你要照舊? 隨便礦主處置? 還是挖新礦 (根據 NYA = the New York Agreement, hard fork) ?  但根據報導, 80% 的礦工都同意了 NYA [4]. 沒得挖全世界不就都沒搞頭了? 當然挖啊! 我看下一次的 split 也不會太遠了.

再回頭說第一個 block, 它應該是中本聰挖 (規定) 的吧! 也就是所謂的 genesis block [6]. 長相如下:

GetHash() = 0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
hashMerkleRoot = 0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b
txNew.vin[0].scriptSig = 486604799 4 0x736B6E616220726F662074756F6C69616220646E6F63657320666F206B6E697262206E6F20726F6C6C65636E61684320393030322F6E614A2F33302073656D695420656854
txNew.vout[0].nValue = 5000000000
txNew.vout[0].scriptPubKey = 0x5F1DF16B2B704C8A578D0BBAF74D385CDE12C11EE50455F3C438EF4C3FBCF649B6DE611FEAE06279A60939E028A8D65C10B73071A6F16719274855FEB0FD8A6704 OP_CHECKSIG
block.nVersion = 1
block.nTime = 1231006505
block.nBits = 0x1d00ffff
block.nNonce = 2083236893

CBlock(hash=000000000019d6, ver=1, hashPrevBlock=00000000000000, hashMerkleRoot=4a5e1e, nTime=1231006505, nBits=1d00ffff, nNonce=2083236893, vtx=1)
CTransaction(hash=4a5e1e, ver=1, vin.size=1, vout.size=1, nLockTime=0)
CTxIn(COutPoint(000000, -1), coinbase 04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73)
CTxOut(nValue=50.00000000, scriptPubKey=0x5F1DF16B2B704C8A578D0B)
vMerkleTree: 4a5e1e

通用的格式如下所示:

Block structure [7]

Field Description Size (Bytes) Updated when…
Magic no value always 0xD9B4BEF9 4  
Blocksize number of bytes following up to end of block 4  
Blockheader consists of 6 items 80  由以下六項組成
– Version Block version number 4 You upgrade the software and it specifies a new version
– hashPrevBlock 256-bit hash of the previous block header 32 A new block comes in
– hashMerkleRoot 256-bit hash based on all of the transactions in the block 32 A transaction is accepted
– Time Current timestamp as seconds since 1970-01-01T00:00 UTC 4 Every few seconds
– Bits Current target in compact format 4 The difficulty is adjusted
– Nonce 32-bit number (starts at 0) 4 A hash is tried (increments)
Transaction counter positive integer VI = VarInt 1 – 9  
transactions the (non empty) list of transactions   <Transaction counter>-many transactions

每一個 block 都得包含前一個 block header 的 hash 值, 日後每一個新的 block 加入 block chain 之後,  都會定時更新所有的 block 的紀錄 – 也就是上表的 “updated when”, 保證大家的資訊都一致. 時間戳記則保障一個 block 不會分岔出兩個分支 – 相當於造假或是一個 bitcoin 賣給兩個人. 細節在大部分的網路文章裡面都有, 就暫且不提.

為何大家常常都是猜、挖, 而不是算呢? 這就要先看 proof-of-work [10] 的流程 [13] (如下圖). 我們先假設一個 block 就是答案, 然後加上前一個 block 的 header 和一個遞增的 nonce 去做 hash, 如果做出來的 hash > target value 才會被接受.

圖的右半部最簡單, 每個 block 都有一個 nonce, 就像 genesis block 的 nonce  = 2083236893, 後續的 block 的 nonce 會愈來愈大.

圖左半部在講難度 (difficulty) [9], 它也就是 block 格式中的 4 Bytes “Bits”. Difficulty 就是要讓挖礦愈來愈難, 這倒不是故意要為難挖礦的人, 而是讓造假的人得付出非常大的代價造出一個完整的 block chain.

系統每 2016 block 就會調整一次難度, 目標是每 10 分鐘生出一個 block, 若兩個星期沒有產出 2016 個 block, 難度就會降低. 根據速算公式[9]: 產生 1 個 block 的時間 = D(Difficult) * 232 / 600. D = 1, 7M Hash/s 可以產生一個 block.

圖的中間線是重點. 根據中本聰的原文, 他是參考 Adam Back 的 HashCash [11], 如下圖. 由於 bitcoin 用 SHA-256 從 bit string x 產生 256 bits 的 HASH, 下面公式中的 k 就是 256. MINT() 是 cost-function, VALUE() 是 evaluation function, 只是確認 T (token) 符合所需.

我的認知是: 用 s 和 x 兩個 bit string 兜成 s||x, 這個 string 經過 SHA-256 之後, 它的前 (左) w bit 若都是 0, 就符合所需 cost function 所需. 很多文章都在講前置 0 愈多愈複雜, 這就是原因了. 因為產生的 HASH 還特別指定長相 (0 的個數), 使得 x 的候選人變得更少. 這群有部分同樣 hash 結果的 bit strings 屬於 partial hash collisions.

Ref [6] 說到: “The hashcash cost-function is based on finding partial hash collisions on the all 0 bits k-bit string 0k. The fastest algorithm for computing partial collisions is brute force.” 換言之, 就是只能用暴力法把可能空間裡面的會產生 partial hash collision 的值都找出來.  

Ref [8] 說到, Honest generators only build onto a block (by referencing it in blocks they create) if it is the latest block in the longest valid chain. “Length” is calculated as total combined difficulty of that chain, not number of blocks, though this distinction is only important in the context of a few potential attacks. A chain is valid if all of the blocks and transactions within it are valid, and only if it starts with the genesis block.

新的 block 必須是從 genesis block 算起來, 能做出最長的 length (最大難度) 的那條路徑上的 block. 下圖 (取自 [8]) 綠色 block 是創世紀區塊 (genesis block), 黑色的 block 是 main chain. 紫色 block 雖然合乎規範, 但是不能用. 那些沒有用的 block 會變成孤兒, 價值為 0.

那怎麼保證我的 block 在 main chain 上呢? 根據 partial collision 的原理, 很有可能大家都發現不同的解答, 然後拼命往下衝! 那如果衝錯不就 GG 了? 根據 [2], 的確很有可能會做虛工! “從第一個區塊到各分支末端中所有區塊難度總和最高的分支稱為主分支,通常也是分支長度最長的。區塊要再經過100 次挖到礦後才被認為成熟,只有主分支上的成熟區塊才能獲得獎勵。”

根據以上的資訊, 雖然沒有 100% 的把握都是正確的. 但我大概可以推論, 大家都只看到區塊鍊建立好之後的優點, 卻忽略了區塊鍊建置的成本. 比特幣的成功建立在大家想賺錢的需求之上, 若任何企業想要建立區塊鍊, 卻不投資成本是不可能的. 先不說挖礦的過程可能會做虛功, 造成多餘的碳排放量. 依照 proof-of-work 的原理, 只要不誠實的 block 比誠實的更多, 整個結果就可以被改寫了. 這個風險真的超大, 歹徒可以弄個幾萬台殭屍電腦一起來投票, 並且把正主的網路切斷 10 分零一秒, 網路上大家都說錢是我的, 等你上線之後, 少數還得服從多數呢! 這個風險在比特幣不成立, 因為 client 眾多, 但新成立的區塊鍊簡直就是很好破啊~~

 

[REF]

  1. 比特幣 (Bit Coin) 到底是什麼?運作原理大揭密
  2. 道高一尺 魔高一丈:比特幣是怎麼回事?
  3. Before and After — the Great Bitcoin Fork
  4. Bitcoin Miners Are Signaling Support for the New York Agreement: Here’s What that Means
  5. SHA-2
  6. https://en.bitcoin.it/wiki/Genesis_block
  7. https://en.bitcoin.it/wiki/Block
  8. https://en.bitcoin.it/wiki/Block_chain
  9. https://en.bitcoin.it/wiki/Difficulty
  10. https://bitcoin.org/bitcoin.pdf
  11. http://www.hashcash.org/papers/hashcash.pdf
  12. https://blockchain.info/blocks/1231538600001
  13. https://www.bitcoinmining.com/what-is-proof-of-work/