2010年8月15日,1840億枚比特幣漏洞

https://blog.fangweb.com/2019/03/04/%E6%AF%94%E7%89%B9%E5%B9%A3%E9%BB%91%E6%AD%B7%E5%8F%B21840%E5%84%84%E6%9E%9A%E6%AF%94%E7%89%B9%E5%B9%A3%E6%BC%8F%E6%B4%9E/zh-tw/

比特幣區塊74638有些不同尋常。最初發現它的是核心開發人員Jeff Garzik,他對「相當奇怪」的交易輸出(每個交易量為92233720368.54 BTC)發表了評論。不到一個小時,另一名論壇用戶開始了一個名為「嚴重溢出錯誤」的帖子,他在帖子中懇求「我們需要盡快修復」。那是2010年8月15日,比特幣遇到迄今為止最大的漏洞。

比特幣遇到了一個非常大的問題

在導致1840億比特幣憑空誕生的整數溢出漏洞之前,比特幣已經經歷了至少四個主要漏洞。比特幣維基百科列出了40個以上不同程度的漏洞。然而,CVE-2010-5139不同於比特幣社區過去所見過的任何情況。


在74638區塊發現的這個漏洞是比特幣的第一個通脹漏洞。考慮到加密貨幣的總供應量將被限制在2100萬枚,委婉地說,增加1840億枚比特幣是一個大問題。整數溢出導致事務值為負。Bitcointalk論壇用戶Ifm解釋道:

通常,輸入等於事務的輸出。唯一的例外是交易要收取「費用」。網路允許任何人自願支付一定的費用。當總和為負時,與輸入的差值就像一個費用。它通過了所有的檢查。

一個未知的攻擊者發現了這個漏洞,並利用它生成了數量高得離譜的比特幣。如果他們把目標定在一個更適度的總數上,那麼他們的開采可能會被隱瞞超過90分鐘才被發現。一旦被發現,一個補丁不可避免地會被匆匆通過,於是它就發生了。在2010-5139年度常見的漏洞和曝光事件發生後的兩個小時內,核心開發商Gavin Andresen和Satoshi Nakamoto就參與了此案,這筆價值1,840億的BTC交易被從74638區塊清除。

中本聰保證道,「一旦超過50%的節點能力升級,好的鏈取代壞的鏈,那麼0.3.10個節點將使任何壞的事務都很難得到確認。」比特幣的創造者非常重視這種規模的漏洞,並在帖子中發表了十幾次帖子,致力於比特幣漏洞的發現和根除。

3D 建模

用 Illustrator 繪製 (isometric grid):
https://www.youtube.com/watch?v=GbYiWzmaRRo

如何在 Illustrator 繪製透視圖稿:
https://helpx.adobe.com/tw/illustrator/using/perspective-drawing.html


CSS Sprite 與 RWD 的整合:縮放大小

http://www.manongjc.com/article/26907.html

transform:scale( x )

语法为 transform: scale(x,y). 同时有 scaleX, scaleY 专门的 x, y 方向的控制,
例如 transform: scale(0.5) 缩小为原来的一半。
scale 并不支持百分比和 normal关键字,只能是数值。而且还能是负数。

zoom:x

zoom 支持百分比和 normal 关键字,不支持負數, zoom:0.5 也是缩小为原来的一半。

zoom:normal | <number> | <percentage>

在文档中,zoom 加在任意一个元素上都会引起一整个页面的重新渲染,而 scale 只是在当前的元素上重绘。

当你给一个 div 固定宽高时,scale 变化的时候,其原本的宽高还是不变的,只不过里面的元素缩小了而已,因此,就没有 layout 的重计算。

但是 zoom 則會進行 layout 的重计算。

區塊鏈滿負荷運行 - 比特幣交易長時間未被確認 - 會發生哪些問題?

https://www.chainnews.com/articles/579717148076.htm

比特幣區塊非常擁堵,經常會遇到長時間得不到確認的交易。這些交易得不到確認會被怎麼處理,會退回到用戶的錢包嗎?會丟幣嗎?

1. 比特幣交易生命週期

2. 礦工節點會嫌棄低手續費的交易

3.
我們必須知道的是,如果你交易遲遲得不到確認,肯定不可能自動回到你的錢包上顯示你發送交易之前的餘額。
而且全網一定會有節點接受並繼續幫你的交易進行廣播,所以你的交易會像鬼魂一樣一直在網絡中游盪,而且會一直被挖礦節點拋棄而又接受,又再拋棄。直到全網節點的內存池被逐步清空,手續費降低,你的交易才有可能被確認。
最正確的辦法就是把你的 txid 發給一家礦池,並且額外給礦池一些錢,叫他幫你添加到下一個區塊當中。這就是我們常見的『交易加速處理服務』。

4. 如果使用 "rescan" 和 "zapwallettxes" 命令找回你的交易

JavaScript 中的 && 與 || 的用法(不用在判斷布爾值上)

https://segmentfault.com/q/1010000004265392
http://www.w3school.com.cn/js/pro_js_operators_boolean.asp


var x = a || b || c 等价于:

var x;
if(a){
    x = a;
} else if(b){
    x = b;
} else {
    x = c;
}


var x = a && b && c 等价于:

var x = a;
if(a){
    x = b;
    if(b){
        x = c;
    }
}


这种特性叫短路求值,&& 会返回第一个假值(0, null, "", undefined, NaN),而 || 则会返回第一个真值。

所以 && 有时候会用来代替 if (expression) doSomething(),转成 && 方式就是 expression && doSomething()。

而 || 比较用来在函数中设置默认值,比如

function doSomething(arg1, arg2, arg3) {
    arg1 = arg1 || 'arg1Value';
    arg2 = arg2 || 'arg2Value';
}
不过还需要看具体的使用场景,就比如如果要求 doSomething() 传入的 arg1 为一个数值,则上面的写法就会出现问题(在传入 0 的时候被认为是一个假值而使用默认值)。

现在个人比较常用的方法只判断是否与 undefined 相等,比如

function doSomething(arg) {
    arg = arg !== void 0 ? arg : 0;
}



預售屋大地雷

基隆火車站附近的海吉市建案爭議不斷,繼2016年廣告不實遭公平會罰款100萬元後,再爆60多名消費者付了近5億元購買預售屋,卻在完工後無法辦理過戶的重大消費糾紛。建商不僅1屋多賣,甚至有1戶還賣了6次,事後被害買家才發現,建商碩晟建設負債累累,四處欠債,除將房屋抵押給銀行借款近7億元,還積欠下游廠商工程款,有住戶花千萬買房,卻無法交屋,只能望屋興嘆。

海吉市住戶中最誇張的是周小姐買的5樓房屋,竟是1屋6賣,她認為海吉市房價便宜,在2016年一口氣付清2,154萬元購買3戶房屋後,才發現其中1戶竟有6個屋主。還好她搶先搬進去住,在她之後想再搬進來的其他買方,都不得其門而入,接受本刊實地採訪時,其他買房只能以訪友名義,請已搬進去的住戶帶他們上樓,周小姐說,很擔心將來房子被法院拍賣後,自己會被新的屋主趕出去。

周小姐指出,海吉市建案原本被建商向板信銀設定3.3億元抵押債權,後來債權轉給遠銀資產公司,卻在今年2月又再追加設定3.6億元債權,她認為碩晟建設已負債累累,可能至少欠下10億元債務,卻能通過遠銀資產的貸款評估,再多設定3.6億元債權,其中恐有隱情,希望金管會等單位調查。


W 個人評論:
每逢房市景氣反轉向下,周轉不過來的負債建商常常使用預售屋一屋多賣的騙局手法。
預售屋只有在房市景氣大好上行的階段才比較不會出問題,常作為房市炒家進行高槓桿套利的工具。

程式語言編年史

程式語言編年史原文 下面這張圖片描繪了整個程式語言的歷史。包括各種程式語言的發明人、程式語言的特點和適用領域、被什麼網站或公司使用等 (檢視 完整高清圖 )。 之所以會有那麼多不同的程式語言是因為設計程式語言的初衷不同、對語言學習曲線的追求不同、不同程式之間的執行成本差異...