https://laisky.notion.site/solana-Tower-BFT-0a519e548d114e4db0dee0c2f332e2be
学习了一下 solana 的 Proof of History(PoH),在解决 Byzantine Fault Tolerance(BFT) 的同时还可以实现 65000 tps。
感觉结构有点 RAFT 的感觉,每轮都会选择一个 leader validator,然后这个中心化的 leader validator 将尽可能多的交易打包,每 400ms 生成一个区块(slot)。
每个 validator 都会为这个 slot 背书,并生成一个 lockout/timeout,这个 timeout 表明 validator 在这个时间内都会支持该 slot 为主 fork 的一员,并且不会改投其他 fork。timeout 以 slot(400ms)为单位,初始值为 2。
每当 validator 生成了一个新的 slot,而且如果新的 slot 的 timeout 和老 slot 的一致,那么就将老 slot 的 timeout 翻倍。如果当前 validator 维护的链中有一个老 slot 的 timeout 达到了 32,那么就认为这个 slot 已经固化,可以将其移出 validator 当前维护的提交链,并发放奖励。
形象地说,validator 就像是在努力地堆塔,每次都试图在旧塔过期前从塔底塞进去一个新的 slot,如果成功在过期前将塔堆到了第五层(timeout 达到 32),那么塔顶的 slot 就成功固化并赢得奖励。所以这一算法也被称为 tower vote,或 tower BFT。
它的性能主要来自 leader validator 可以不需要 peers communication,就专注于打包区块,而其他 validator 可以并行地验证,从而大幅度提高了整个网络的吞吐量。
还没看完就被抓去干其他事了,所以此处仅记录一下 tower BFT 的笔记。 #blockchain
学习了一下 solana 的 Proof of History(PoH),在解决 Byzantine Fault Tolerance(BFT) 的同时还可以实现 65000 tps。
感觉结构有点 RAFT 的感觉,每轮都会选择一个 leader validator,然后这个中心化的 leader validator 将尽可能多的交易打包,每 400ms 生成一个区块(slot)。
每个 validator 都会为这个 slot 背书,并生成一个 lockout/timeout,这个 timeout 表明 validator 在这个时间内都会支持该 slot 为主 fork 的一员,并且不会改投其他 fork。timeout 以 slot(400ms)为单位,初始值为 2。
每当 validator 生成了一个新的 slot,而且如果新的 slot 的 timeout 和老 slot 的一致,那么就将老 slot 的 timeout 翻倍。如果当前 validator 维护的链中有一个老 slot 的 timeout 达到了 32,那么就认为这个 slot 已经固化,可以将其移出 validator 当前维护的提交链,并发放奖励。
形象地说,validator 就像是在努力地堆塔,每次都试图在旧塔过期前从塔底塞进去一个新的 slot,如果成功在过期前将塔堆到了第五层(timeout 达到 32),那么塔顶的 slot 就成功固化并赢得奖励。所以这一算法也被称为 tower vote,或 tower BFT。
它的性能主要来自 leader validator 可以不需要 peers communication,就专注于打包区块,而其他 validator 可以并行地验证,从而大幅度提高了整个网络的吞吐量。
还没看完就被抓去干其他事了,所以此处仅记录一下 tower BFT 的笔记。 #blockchain
美军军事占领阿富汗期间,一批为美军工作的阿富汗翻译和美军士兵之间的故事。在塔利班人看来,这些翻译背叛了自己的祖国。但是行事极端的塔利班也并不受所有的阿富汗人欢迎。
本片就讲述了一位阿富汗翻译历经千辛万苦救助了一位落单美军士兵,自己却身陷塔利班的通缉和搜捕,最终这位美军士兵通过私人武装公司重返阿富汗营救这位翻译的故事。片名 'The Covenant' 预示着片中多次出现的“契约”或“人情债”,坚毅的人们不计得失地选择尊重这些债务,并且努力使其偿还。片中有一句台词很得我心:
"That is not how this debt works.
It demands a result, not an appeasement.
There is a hook in me."
内容有点接近于 'Lone Survivor',都是美军被暴揍然后被普通阿富汗人所救的故事。 #movie
Ps. 一句话剧透:美签真的很难办
本片就讲述了一位阿富汗翻译历经千辛万苦救助了一位落单美军士兵,自己却身陷塔利班的通缉和搜捕,最终这位美军士兵通过私人武装公司重返阿富汗营救这位翻译的故事。片名 'The Covenant' 预示着片中多次出现的“契约”或“人情债”,坚毅的人们不计得失地选择尊重这些债务,并且努力使其偿还。片中有一句台词很得我心:
"That is not how this debt works.
It demands a result, not an appeasement.
There is a hook in me."
内容有点接近于 'Lone Survivor',都是美军被暴揍然后被普通阿富汗人所救的故事。 #movie
Ps. 一句话剧透:
https://youtu.be/Z76YpCz9N2Y?si=fbrH66ArtYMyhPvs
2018 年 10 月 JT610 坠毁,2019 年 3 月 ET302 坠毁。在半年时间内,连续两架 Boeing 737 MAX 坠毁,357 人遇难,引起了人们对该机型的关注。
时间回到 2011 年巴黎航展,AirBus 推出 A320neo,收获大量订单,给波音构成了巨大威胁,AirBus 甚至成功与 American Airlines 达成合作,AA 将首次采购非波音客机。
波音的高层决定立刻发起反击,重新设计 737 机型,称为 737 MAX。这款飞机从一开始,就是以低成本阻击 A320neo 为目的。而且为了向航空公司兜售这款机型,波音的高管保证说该机型不需要为飞行员做任何额外培训,保证操作方式不发生任何重大变化,如果需要重新培训,波音会为每架交付的飞机赔付 100 万美元。
但实际上为了提高飞行效率,飞机的结构做了大幅改动,为了实现高管“无须培训”的承诺,设计者们引入了自动驾驶系统,而且为了适应需求进行了大量的临时更改,这些临时更改都没有经过严格的认证和测试,其中就包括著名的 MCAS 系统。
MCAS 的设计初衷是为了防止飞机失速,当判定飞行速度较低时会自动压下机头进行俯冲加速。波音在交付时提出不需要额外培训,也没有告知飞行员该系统的存在。
实际上在交付前的测试中,波音就发现了该系统可能导致灾难性的事故。在 JT610 坠毁后,FAA 也了解了这一故障,但是经过计算,FAA 认为平均来说 MCAS 会导致每年一起的事故率,而 FAA 认为刚发生过一次事故,距离下一次事故发生还有一年,于是并没有下达禁飞令,而是要求波音在一年内修复系统,结果 FAA 赌输了,半年后 ET302 坠毁。
媒体们进一步深挖后发现,FAA 很多雇员同时也受聘于波音,FAA 的飞行安全评估很多也是直接委托给波音进行,这个政府机构和企业之间利益交织,既做运动员又当裁判,最终导致了 FAA 作出牺牲乘客生命去维系波音利益的决定。
2018 年 10 月 JT610 坠毁,2019 年 3 月 ET302 坠毁。在半年时间内,连续两架 Boeing 737 MAX 坠毁,357 人遇难,引起了人们对该机型的关注。
时间回到 2011 年巴黎航展,AirBus 推出 A320neo,收获大量订单,给波音构成了巨大威胁,AirBus 甚至成功与 American Airlines 达成合作,AA 将首次采购非波音客机。
波音的高层决定立刻发起反击,重新设计 737 机型,称为 737 MAX。这款飞机从一开始,就是以低成本阻击 A320neo 为目的。而且为了向航空公司兜售这款机型,波音的高管保证说该机型不需要为飞行员做任何额外培训,保证操作方式不发生任何重大变化,如果需要重新培训,波音会为每架交付的飞机赔付 100 万美元。
但实际上为了提高飞行效率,飞机的结构做了大幅改动,为了实现高管“无须培训”的承诺,设计者们引入了自动驾驶系统,而且为了适应需求进行了大量的临时更改,这些临时更改都没有经过严格的认证和测试,其中就包括著名的 MCAS 系统。
MCAS 的设计初衷是为了防止飞机失速,当判定飞行速度较低时会自动压下机头进行俯冲加速。波音在交付时提出不需要额外培训,也没有告知飞行员该系统的存在。
实际上在交付前的测试中,波音就发现了该系统可能导致灾难性的事故。在 JT610 坠毁后,FAA 也了解了这一故障,但是经过计算,FAA 认为平均来说 MCAS 会导致每年一起的事故率,而 FAA 认为刚发生过一次事故,距离下一次事故发生还有一年,于是并没有下达禁飞令,而是要求波音在一年内修复系统,结果 FAA 赌输了,半年后 ET302 坠毁。
媒体们进一步深挖后发现,FAA 很多雇员同时也受聘于波音,FAA 的飞行安全评估很多也是直接委托给波音进行,这个政府机构和企业之间利益交织,既做运动员又当裁判,最终导致了 FAA 作出牺牲乘客生命去维系波音利益的决定。
最近踩的一个坑,X.509 的证书,是可以签发出不同公钥算法的子证书的。
每个证书有两个签名相关的属性:
*
*
比如 Google 的 HTTPS 证书,就是由 RSA 签发的 ECDSA 证书。
每个证书有两个签名相关的属性:
*
public_key_algorithm
: 当前证书所使用的公钥算法*
signature_algorithm
: 父证书签发本证书时所使用的签名算法比如 Google 的 HTTPS 证书,就是由 RSA 签发的 ECDSA 证书。
'Attention Mechanism' 详细介绍了 Attention 机制的起源和原理。以前也简要描述过 RNN、Attention Transformer 的关系。
'Attention? Attention!' 则是更详细地介绍了 Attention 的不同种类和用途。Attention 的关键在于使用 alignment score 从 input 中提取 context vector 作为辅助信息,所以不同的 alignment score 计算方式也就诞生了不同的 attention 类型:
1. self-attention: 每一个输入都和之前的输入计算相关性
2. global/soft attention: 每一个输出都和所有输入计算相关性
3. local/hard attention: 先计算一个输入范围,然后输出只和这个范围内的输入计算相关性
以前介绍过实现 GPT 的 transformer 是用 multi-head attention heads 完全取代 RNN 实现了 seq2seq 的功能。文中还介绍了 attention 的其他一些应用,比如在 Pointer Network 中,让 decoder 可以利用 attention 选择下一轮迭代的 encoder,从而实现让神经网络可以循环迭代解决 irreducible computation 问题。
'Attention? Attention!' 则是更详细地介绍了 Attention 的不同种类和用途。Attention 的关键在于使用 alignment score 从 input 中提取 context vector 作为辅助信息,所以不同的 alignment score 计算方式也就诞生了不同的 attention 类型:
1. self-attention: 每一个输入都和之前的输入计算相关性
2. global/soft attention: 每一个输出都和所有输入计算相关性
3. local/hard attention: 先计算一个输入范围,然后输出只和这个范围内的输入计算相关性
以前介绍过实现 GPT 的 transformer 是用 multi-head attention heads 完全取代 RNN 实现了 seq2seq 的功能。文中还介绍了 attention 的其他一些应用,比如在 Pointer Network 中,让 decoder 可以利用 attention 选择下一轮迭代的 encoder,从而实现让神经网络可以循环迭代解决 irreducible computation 问题。
https://youtu.be/2d8j_q2tl9c?si=qcFxhjBXkmJ2IKo1
FT 关于拼多多的报道,非常有趣。
你粗略看去,拼多多/TEMU 正在疯狂地抢占市场,其商品和广告在身边无处不在,其美国公司也在 NASDAQ 上市,看上去似乎一切都很正常。
但是随着 FT 的财经记者深入挖掘,就会发现拼多多和你所以为的“上市公司”完全不一样,这公司的中国公司起源于一家法人为一名老太的皮包公司,而其在美国上市的公司则是一家注册在开曼群岛的公司,这家公司的股权结构和公开信息都一塌糊涂,名义上和中国的拼多多实际上根本没任何关系,毕竟拼多多根本没有在香港上市,也并不是人们过去所熟悉的 VIE 结构。简而言之,美股的拼多多根本就是一家空壳,FT 的记者发出了灵魂拷问:请问在美股上购买拼多多的人,究竟在买什么?
最近 PDD 还告知美国 SEC 其将总部搬到了爱尔兰,但其爱尔兰办公室实际上只是一个空壳办公处,在该地址注册的是一家名为 WhaleCo 的公司,PDD 声称 WhaleCo 是自己的全资子公司,负责其全球拓展业务。
TEMU 也是疑云重重,它的起源故事一再更换,最新的版本是这是一家 2022 年成立于波士顿的“本土企业”。TEMU 的低价来于美国对低价邮包的免税政策,而对该政策的滥用显然会引起地缘政治冲突。
此外还介绍了 PDD 的商业模式,通过 Factory to Consumer (F2C) 的模式,PDD 提供市场营销、广告、设计等环节,让企业直接给终端消费者发货,同时给企业提供市场反馈和进一步的改进建议,大部分建议都是放弃一部分的品质换取大幅降价。简而言之,通过放弃品牌,从而大幅压缩成本,最终构成了 PDD 的极致低价。但是其品质往往非常低劣,一些消费者也表示不会从 PDD 购买重要的商品。
FT 关于拼多多的报道,非常有趣。
你粗略看去,拼多多/TEMU 正在疯狂地抢占市场,其商品和广告在身边无处不在,其美国公司也在 NASDAQ 上市,看上去似乎一切都很正常。
但是随着 FT 的财经记者深入挖掘,就会发现拼多多和你所以为的“上市公司”完全不一样,这公司的中国公司起源于一家法人为一名老太的皮包公司,而其在美国上市的公司则是一家注册在开曼群岛的公司,这家公司的股权结构和公开信息都一塌糊涂,名义上和中国的拼多多实际上根本没任何关系,毕竟拼多多根本没有在香港上市,也并不是人们过去所熟悉的 VIE 结构。简而言之,美股的拼多多根本就是一家空壳,FT 的记者发出了灵魂拷问:请问在美股上购买拼多多的人,究竟在买什么?
最近 PDD 还告知美国 SEC 其将总部搬到了爱尔兰,但其爱尔兰办公室实际上只是一个空壳办公处,在该地址注册的是一家名为 WhaleCo 的公司,PDD 声称 WhaleCo 是自己的全资子公司,负责其全球拓展业务。
TEMU 也是疑云重重,它的起源故事一再更换,最新的版本是这是一家 2022 年成立于波士顿的“本土企业”。TEMU 的低价来于美国对低价邮包的免税政策,而对该政策的滥用显然会引起地缘政治冲突。
此外还介绍了 PDD 的商业模式,通过 Factory to Consumer (F2C) 的模式,PDD 提供市场营销、广告、设计等环节,让企业直接给终端消费者发货,同时给企业提供市场反馈和进一步的改进建议,大部分建议都是放弃一部分的品质换取大幅降价。简而言之,通过放弃品牌,从而大幅压缩成本,最终构成了 PDD 的极致低价。但是其品质往往非常低劣,一些消费者也表示不会从 PDD 购买重要的商品。
以前写过一篇用 CFSSL 签发根证书和叶子证书的水文 https://blog.laisky.com/p/cfssl/
有人问了关于签发 CRLs 的问题,正好查了些资料。
简而言之,CRLs 是一个证书列表,用来列举已经被吊销的证书。证书中有个属性叫做 CRL Distribution Points,用来指定对应 CRLs 的下载地址。
每个 CRLs 都有一个 scope,即定义它所管辖的证书。一般来说,CRLs 应该由某个 CA 来签发,这个 CA 称为它的 issuer,而这个 CRLs 的 scope 就是这个 issuer 所签发的其他证书。
但是,CRLs 的 scope 并不一定需要和其 issuer 相关,当 CRLs 的 scope 超出其 issuer 所签发的证书时,这个 CRLs 就称为 indirect CRLs。甚至于,indirect CRLs 其实可以没有 issuer,这种情况使得可以在不动用 CA 私钥的情况下生成 CRLs。但是,很多客户端默认情况下不一定支持 indirect CRLs,所以并不常见。
具体可见 https://www.rfc-editor.org/rfc/rfc5280#page-55
有人问了关于签发 CRLs 的问题,正好查了些资料。
简而言之,CRLs 是一个证书列表,用来列举已经被吊销的证书。证书中有个属性叫做 CRL Distribution Points,用来指定对应 CRLs 的下载地址。
每个 CRLs 都有一个 scope,即定义它所管辖的证书。一般来说,CRLs 应该由某个 CA 来签发,这个 CA 称为它的 issuer,而这个 CRLs 的 scope 就是这个 issuer 所签发的其他证书。
但是,CRLs 的 scope 并不一定需要和其 issuer 相关,当 CRLs 的 scope 超出其 issuer 所签发的证书时,这个 CRLs 就称为 indirect CRLs。甚至于,indirect CRLs 其实可以没有 issuer,这种情况使得可以在不动用 CA 私钥的情况下生成 CRLs。但是,很多客户端默认情况下不一定支持 indirect CRLs,所以并不常见。
具体可见 https://www.rfc-editor.org/rfc/rfc5280#page-55
https://youtu.be/8Vmv10p9Y44?si=1RFFOpoHqZwLfrY8
之前披露了 3M 和 Dupont 的黑料,这次来黑一把强生(Johnson & Johnson)。
多年以来,强生的爽身粉一直是美国家庭的必备品,也是安全和干爽的代名词,人们会将其用在任何地方,包括婴儿和成人。1999 年,部分家庭怀疑自己家人的癌症是因为强生公司生产的爽身粉中包含石棉,但是强生公司矢口否认,此案不了了之。
2018 年,路透社披露强生公司的内部文件显示,早在 1957 年强生就发现了其产品中包含石棉,并且有潜在的健康风险。1976 年 FDA 曾打算限制爽身粉中的石棉含量,但是强生公司的律师成功地说服了 FDA,假称爽身粉中不包含任何石棉,但实际上强生公司已经从多个实验室得知它的产品中石棉含量“相当高”。
这事儿还有另一个令人震惊的事实,强生在 1971 年为了测试石棉对人体的影响,聘用 Albert Kligman 从监狱(Philadelphia County Prison)中挑选了 50 名囚犯做活体实验,其中 44 人为黑人。在未告知风险的情况下,直接将石棉制品注射或涂抹到囚犯的皮肤上。如今我们知道石棉的致癌作用主要在肺部,所以当年的皮肤试验并未发现特别严重的副作用。此外,Kligman 声称自己并未违反当时的道德标准,至死也拒绝道歉。
* 路透社关于石棉和爽身粉的报道
* Bloomberg 关于监狱人体实验的报道
之前披露了 3M 和 Dupont 的黑料,这次来黑一把强生(Johnson & Johnson)。
多年以来,强生的爽身粉一直是美国家庭的必备品,也是安全和干爽的代名词,人们会将其用在任何地方,包括婴儿和成人。1999 年,部分家庭怀疑自己家人的癌症是因为强生公司生产的爽身粉中包含石棉,但是强生公司矢口否认,此案不了了之。
2018 年,路透社披露强生公司的内部文件显示,早在 1957 年强生就发现了其产品中包含石棉,并且有潜在的健康风险。1976 年 FDA 曾打算限制爽身粉中的石棉含量,但是强生公司的律师成功地说服了 FDA,假称爽身粉中不包含任何石棉,但实际上强生公司已经从多个实验室得知它的产品中石棉含量“相当高”。
这事儿还有另一个令人震惊的事实,强生在 1971 年为了测试石棉对人体的影响,聘用 Albert Kligman 从监狱(Philadelphia County Prison)中挑选了 50 名囚犯做活体实验,其中 44 人为黑人。在未告知风险的情况下,直接将石棉制品注射或涂抹到囚犯的皮肤上。如今我们知道石棉的致癌作用主要在肺部,所以当年的皮肤试验并未发现特别严重的副作用。此外,Kligman 声称自己并未违反当时的道德标准,至死也拒绝道歉。
* 路透社关于石棉和爽身粉的报道
* Bloomberg 关于监狱人体实验的报道
前文介绍了 AC(Anonymous Credential) 的概念和基于 RSA 的 CL-Signature。这篇笔记则介绍了基于 ECC 的 BBS+ Signature,从性能上来说会比 CL-Signature 更好。
我此前对 AC 的理解存在一些偏差,Anonymous 最侧重保护的不是被签名的隐私数据(witness),而是数据拥有者(Holder)的身份。其应用场景是,当 Holder 为自己的 witness 提供 statement,Verifier 在验证这个 statement 的时候,也无法揭露 Holder 的身份。
拿传统的非对称签名来举个例子,会有三个角色:根证书持有者(Issuer),隐私数据拥有者(Holder),验证者(Verifier)。Holder 需要从 Issuer 获取自己的个人证书,用自己的私钥对 witness 进行签名生成 statement,然后将
为了提高隐私性,上述描述中有两个需要改进的需求:
1. 匿名性:Holder 的公钥证书暴露了自己的身份信息(attributes)
2. 零知识:Holder 为了验证向 Verifier 披露了 witness 的明文
这两个需求分别对应密码学的两个方向,前者是 anonymous credential,后者是 ZKP,分别有不同的协议家族和应用。虽然这两者的实现和应用很多时候互相交织,但是核心目的是不一样的。
我此前对 AC 的理解存在一些偏差,Anonymous 最侧重保护的不是被签名的隐私数据(witness),而是数据拥有者(Holder)的身份。其应用场景是,当 Holder 为自己的 witness 提供 statement,Verifier 在验证这个 statement 的时候,也无法揭露 Holder 的身份。
拿传统的非对称签名来举个例子,会有三个角色:根证书持有者(Issuer),隐私数据拥有者(Holder),验证者(Verifier)。Holder 需要从 Issuer 获取自己的个人证书,用自己的私钥对 witness 进行签名生成 statement,然后将
(公钥证书链、statement、witness)
一起提交给 Verifier。Verifier 预先已信任了 Issuer 的根证书,从而验证了 Holder 的公钥可信,然后用 Holder 的公钥验证 statement,最终确认 witness 的真实性。为了提高隐私性,上述描述中有两个需要改进的需求:
1. 匿名性:Holder 的公钥证书暴露了自己的身份信息(attributes)
2. 零知识:Holder 为了验证向 Verifier 披露了 witness 的明文
这两个需求分别对应密码学的两个方向,前者是 anonymous credential,后者是 ZKP,分别有不同的协议家族和应用。虽然这两者的实现和应用很多时候互相交织,但是核心目的是不一样的。
P ≠ NP
以前我对 P ≠ NP 理解是有点偏感性的,以为就是描述只能被暴力搜索求解的问题是否能够被快速求解。
实际上 NP(Nondeterministic Polynomial time)这个词是描述了一类特殊的问题,这些问题的解可以被迅速证实,但是不能够被快速求解。
比如一副拼图,拼好后你可以短时间内验证拼图是否正确,最差情况下你挨个看一遍也足够了(多项式时间内)。但是没有一个简单的办法让你去从头完成一副拼图。P ≠ NP 描述的就是,能够在多项式时间内被证实的问题,是否也能够在多项式时间内被求解?
另一个经典的 NP 问题就是旅行家问题(Traveling Salesman Problem),找到一条路径,能够不重复地遍历所有的城市并回到起点。你可以很容易地验证某个路径的正确性,却很难找到这个路径。
不同的 NP 问题有不同的求解难度。其中最难的一些 NP 问题被称为 NP-completeness。这些最难的 NP 完备问题互相等价,预示着 NP 问题的一些核心本质,一旦有任何一个 NP 完备问题被破解,就意味着所有的 NP 问题都能被迅速求解。
以前我对 P ≠ NP 理解是有点偏感性的,以为就是描述只能被暴力搜索求解的问题是否能够被快速求解。
实际上 NP(Nondeterministic Polynomial time)这个词是描述了一类特殊的问题,这些问题的解可以被迅速证实,但是不能够被快速求解。
比如一副拼图,拼好后你可以短时间内验证拼图是否正确,最差情况下你挨个看一遍也足够了(多项式时间内)。但是没有一个简单的办法让你去从头完成一副拼图。P ≠ NP 描述的就是,能够在多项式时间内被证实的问题,是否也能够在多项式时间内被求解?
另一个经典的 NP 问题就是旅行家问题(Traveling Salesman Problem),找到一条路径,能够不重复地遍历所有的城市并回到起点。你可以很容易地验证某个路径的正确性,却很难找到这个路径。
不同的 NP 问题有不同的求解难度。其中最难的一些 NP 问题被称为 NP-completeness。这些最难的 NP 完备问题互相等价,预示着 NP 问题的一些核心本质,一旦有任何一个 NP 完备问题被破解,就意味着所有的 NP 问题都能被迅速求解。