风险问题
风险可能有收入也可能有损失。风控先是管理,然后是控制。 精细化管理,平衡点。 信用风险(Credit Risk) 欺诈风险(Fraud Risk) 操作风险(Operationl Risk)伦敦乌龙指? 现金流风险(Liquidity Risk) 市场风险(Market Risk) 监管风险(Regulator Risk) 声望风险(Reputational Risk) Exposion 担保套利 美国三大征信局 Experian、TransUnion、Equifax。 美国百分之八十五的人的信息在民间征信局。 美国的征信分数 FICO 由五个部分组成。 中国人会抹掉五年期的征信历史。 Payday Loan 是没有年化上限的。
比特币小细节
收款地址是公钥的hash。 区块结构: 数据项 描述 长度 Magic No 魔数 总是 0xD9B4BEF9 4 字节(定长) BlockSize 区块大小 到区块结束的字节长度 4字节(定长) BlockHeader 区块头 包含六个数据项 80字节(定长) Transaction Counter 交易计数器 正整数 VI=VarInt 1-9字节(变长) BlockHeader 区块头 包含六个数据项 80字节(定长) Transactions 交易 交易列表(非空) 由Transaction Counter 描述的长度(变长) 由此表可见,只有交易计数器和交易明细列表是变长的。 比特币使用 SHA256 算法,它的结果哈希值大小为 256 位。也就是说,只要输入超过2的256次方个数,就一定会发生碰撞,即使只有2的255次方个数,也有百分之九十九的几率发生碰撞(为什么?)。 当前(这一百年内),每个区块都至少包含一个 Transaction,它被称为生产交易,或者coinbase交易,用于给生成这个区块的矿工以奖励,它经常是区...
以太坊的硬分叉
有四次计划内的软件升级,每次都是硬分叉:Frontier,Homestead,Metropolis,Serenity。 有一次意料之外的分叉(DAO 事件),制造出 ETH 和以太经典两种货币。 每次分叉都会造成矿工的迁移。旧链会因为流失算力而丧失安全性。 大都会分叉本来打算引爆难度炸弹,迫使矿工们从 PoW 共识算法移动到 PoA 共识算法,让以太坊进入冰河时代。但这个难度炸弹的引爆被延后了。 大都会同样引入了一个 PoS 的早期实施,Casper共存 算法允许每一百个区块里会有一个 PoS 区块。关于 PoS 算法,Vitalik 的解释是: 想象现在有 100 个人围着圆桌,其中有一个人拿着很多张纸,每张纸记录着很多笔历史交易信息。第一个人拿起笔签完后递给第二个人,第二个人也做出了相同的选择,如果大多数人做出了相同的选择,即都签署了同一张纸那么每一个参与者会获得1美元,当你做出和绝大多数人不同的选择时,那么你的房子就会着火! 如果真的不能阻止矿工停留在 PoW 上继续挖矿,那将会创建三种以太坊币:ETC、ETH-PoW、ETH-PoS,这对以太坊...
Scala 语言核心特性深度解析:类型系统、隐式机制与表达式求值
Scala 语言核心特性深度解析 Scala 是一门融合了面向对象和函数式编程范式的 JVM 语言。它的类型系统之强大、表达能力之丰富,在主流编程语言中首屈一指。本文将深入探讨 Scala 的三大核心特性:泛型与型变系统、隐式机制和表达式求值模型,帮助你全面掌握这门语言的精髓。 第一部分:泛型与型变系统 什么是型变(Variance) 型变(Variance)描述的是泛型类型与其类型参数之间的子类型关系。简单来说,就是当类型参数之间存在子类型关系时,对应的泛型类型之间是否也存在子类型关系。 在面向对象编程中,我们熟悉继承和子类型的概念:如果 Dog 是 Animal 的子类型(记作 Dog <: Animal),那么任何使用 Animal 的地方都可以使用 Dog。但是,当涉及到泛型时,情况就变得复杂了: List[Dog] 是否是 List[Animal] 的子类型? Function[Animal, String] 是否是 Function[Dog, String] 的子类型? 型变系统就是用来回答这些问题的。Scala 提供了三种型变方式:不变(Invarian...
布隆(Bloom)过滤器
本文还是对《区块链:原理、设计与应用》的一个基础技术的总结和摘录。 散列的本质,是把任意内容,映射成固定长度的内容域里的某一个内容。 布隆过滤器的本质,是在常数时间内回答,“一个元素是否在一个集合内”的问题。 直观的方法及其缺陷 假设我们总可以把任意内容映射到某一个数组的 item 上,那么只要看看那个数组的 item 是否为空,就可以确认某一个内容是否存在。然而现实之中,一个数组总是会产生冲突,操作性能会因为局部冲突而产生退化。 多重散列的布隆过滤器 布隆过滤器的原理很简单,就是插入元素时,在一个容量为 m 的bit数组上, 用 k 要确认某个内容是否存在,可以使用布隆过滤器(Bloom Filter),它是一种高效的空间节省型数据结构,用于快速判断一个元素是否属于某个集合。以下是关键点总结: 布隆过滤器工作原理 graph TD A[布隆过滤器 Bloom Filter] --> B[位数组 Bit Array] A --> C[k个哈希函数] B --> D["初始状态: [0,0,0,0,0,0,0,0,0,0...
Merkle Tree
本文还是对《区块链:原理、设计与应用》的一个基础技术的总结和摘录。 默克尔树的特点 默克尔树是多层散列表(Hash List),目的是做多层摘要,把对多个 item 的校验,转化为对一个 item 的校验。 默克尔树可以是二叉树,也可以是多叉树。 叶子节点是 item 的 value 和 value 的散列值。中间每一层的值,都是它们子女散列值的和的散列值-多叉树的结果就是多个散列值加法的结果的再散列,孤儿的计算结果就是在孤儿散列值上进行再散列。 默克尔树的用途 快速比较大量数据 两组数据的排序后构建默克尔树,只要比较两个树的root 就可以确定两组数据是否一样。 快速 diff 如果默克尔树是二叉树,则只要从 root 开始做二分的 diff,就能快速定位到不一致的叶子节点。这在 p2p 传输文件数据的场景里非常有用。实际上 rsync 的 diff 算法就是一个一层的 Hash List , 零(部分知识)知识证明 所谓的零知识证明,就是不告诉 verifier 验证一个论断真伪的全部信息。只提供部分信息,就可以让 verifier 相信某个事情是真...
CoffeeScript2 简明教程
写在前面的话 之前在工作群里看到一个排行榜: 在羡慕美国同行的薪水超高的同时,也奇怪为何 CoffeeScript 的生命力超过了自己之前的想象。 JavaScript 本是 Brendan Eich 在10天内做完的急就章之作,在设计之初,即带有大量的大意设计和缺陷。可以说,即使到了 1.5 时代,JavaScript 作为一门现代语言,依然要提防 Douglas Crockford 在《JavaScript:The Good Parts》中提出的种种陷阱。历年来,各路框架作者和超集语言作者,都不断在 JavaScript 上做出各种各样炫目的模式用法和衍生方言,足见其可提高空间之大。包括 CoffeeScript/TypeScript/Dart/Elm 等解决方案的出现,其实就是在倡导使用 Pre-JavaScript 的语言编写抽象逻辑,然后编译成原生 JavaScript 运行。 CoffeeScript 即是 JavaScript 1.5 时代的 Pre-JavaScript 语言中的佼佼者。其设计的语法和句法利用了 Ruby 和 Python 的优点...
client 与 server
client 模式 默认的jit编译器,c1。 默认的gc:serial-serial old。 需要更短的启动时间和初始堆大小,能做更保守的优化。 默认-Xms是1M,-Xmx是64M。 适合 GUI 程序。 server 模式 默认的jit编译器,c2。 默认的gc:ps-serial old即 PS MarkSweep(可以启用parallel old)。 需要更长的启动时间和更大的堆大小,能够做更有深度的优化。 默认-Xms是128M,-Xmx是1024M。 适合长时间运转的程序。 64 位JVM# 在64位 JVM 上有个 -d64 的模式,实际上就是禁止client模式单独启动,只允许server模式或者混合编译模式启动的模式。
函数缓存 memoize
12345678const memoize = pureFunc => { const cache = {}; return function() { const argStr = JSON.stringify(arguments); cache[argStr] = cache[argStr] || pureFunc.apply(pureFunc, arguments); return cache[argStr]; };};
读书--拓展你的认知边界
新的书在不断打破认知边界,以前都是机械的方法论世界观的书,现在出了打通一切关于进化的书。 如何读书?# 《如何阅读一本书》,《快速阅读》。 如何选书? 跟主题,跟作者,跟大牛。不要看编著的书。 李善友的书单。 怎么有时间去看书? 亚马逊的推荐比京东准。 找固定板的时间看书。 Kindle 电子书和纸板书怎么选? 精华书都买 实在没时间,怎么办?# 樊登读书会 得到 听书 从哪里开始 从扉页来判断,从序言来判断一下。 读书最好抛弃论据和论证,而要寻找宏旨。 听书完,还是要自己看。















