八哥之神前传【3】

AVILab

孙朝穆:“周老师的案例预示了我们当前技术的局限性。”

陈立姻:“是呀。人脑的寿命也是有限的,自然寿命才 185 年,现在的科技也只能延长到 800 年左右。”

孙朝穆:“必须研发新方案取代目前无脑人体装旧脑的方案!”

陈立姻:“复制猪脑的实验已经成功过几个案例,但无法验证复制出来的是不是同一只猪!人脑复制目前还没成功案例,很快死刑就要完全废止,到时候更难找到测试的志愿者。”

猪坚强。人娇嫩。

孙朝穆:“在下一直怀疑,复制过程中旧脑死亡,是无聊死或绝望死的。”

陈立姻:“有可能,之前你怀疑是吓死的,我们使用镇定剂后,持续时间变长了。”

圣小开加入对话:“两位大神在聊猪肉涨价吗?”

陈立姻:“死开,你耳朵越来越不好了……要不要给你换一个新耳朵?”

圣小开:“哟!这耳朵确实已经很乐射了,不过倒是清净,不换也罢。”

孙朝穆:“开哥!我们正在聊复制人脑,但最近都没有志愿者做实验,伤脑筋呢!”

圣小开:“哦……原来又在聊玩死,咳,人的科学实验!你们听过降落伞故障率如何降低的故事吗?”

孙朝穆:“哥又开玩笑了,我可没法给自己复制。”

圣小开:“孙总愿意献身的话,还不容易,让姻姻姐帮你。”

陈立姻:“少开玩笑,这个问题很严肃,目前形势也不容乐观。”

圣小开:“真不懂幽默,那些人都是被你们死板无聊的复制体验给憋死的,复制时让他们进识界玩玩 S6x 游戏,劣者就不信他们会想死。”

孙朝穆:“Diang!开哥果然英明,激起他们的性趣和求生欲,这是个不错的方向。”

陈立姻:“嗯?你们又在酝酿污的想法!”

圣小开:“耶!失去繁殖生命的冲动,和死有啥两样,激情,激情,你们懂吗?怎么感觉量子计算机创造的识界比你们人类还懂生命的意义?”

孙朝穆:“立姻姐,开哥说的可能就是解题关键。我们得把重心放在完善人脑全维度接入识界,然后找个志愿者试验新的复制方式。”

陈立姻:“哦哦,那我研究一下早期休眠停止发育的脑,如何在重新激活发育的过程中改写。”

孙朝穆:“对了,开哥,我们刚去看过凤哥,他想见你。”

圣小开:“嗯,是时候给你们找个志愿者了!”

孙朝穆:“啊?开哥,你想干嘛?”

圣小开:“凤哥不是很喜欢识界吗?劣者劝他移民识界算了,也省得蹲监狱。”

孙朝穆:“哦,有道理!去吧。”

监狱

齐凤卿:开,快进来坐。

圣小开:师兄,您怎么变帅了!那不是死不了了?

齐凤卿:什么死不了?人生 70 才开始。我在这边经常健身,也不熬夜了,身体比以前好很多。

圣小开:哦。小弟才 60。是说观众比较讨厌丑角,所以一般导演会让反派画一些妖异傻帽的妆,心理暗示观众诅咒他们早点挂掉。

齐凤卿:又开玩笑了。你觉得我是反派?

圣小开:当然不是。本剧最大的反派还没登场呢。

齐凤卿:嗯?难道你也预知到自己的劫数?

圣小开:是的,有些不明真相的人会搞破坏,咱们迟早会被害死。

齐凤卿:想必你没阻止我在识界大肆破坏,也是认清了这个世界的本质。

圣小开:是的,我们身处的世界和那个虚拟的识界其实没有本质区别。站在宇宙的角度看,毁灭和保护生灵,何者才是宇宙的意志?

齐凤卿:宇宙给人类自由主义的幻觉,人类会认为保护生灵才是真理。

圣小开:劣者并不认为哪者更正确,历史上那么多次战争,哪一次高维神明会出来阻止?杀累了,人类自己会回归和平。静静地观测才是劣者的设定。

齐凤卿:原来你认为自己是神……

圣小开:还不是,劣者只是用自然的角度思考问题而已。并且这场战争也不全是师兄造成的,识界本身就已经到了大战的临界点。不然委员会也不会只派两人走过场,还是一个想救,一个不想救的组合。而且大家判师兄入狱,一样是走过场,只是回收你的特权,关六个月后,不再限制你的人身自由。

齐凤卿:可惜刘佾不明白。

圣小开:师姐确实慈悲为怀……这是最厉害的杀器。

齐凤卿:不谈她了,我最近想明白很多事情。

圣小开:是不是委员会里有人想除掉咱们俩?

齐凤卿:虽然也有同感,但我想说的比这个更严重。是关于养老院的秘密。

炒币炒鞋必懂的市场理论

郁金香泡沫 (Tulip Bubble)

郁金香泡沫,又称郁金香效应,1636 年荷兰的郁金香投机是有据可查的人类历史上最早的泡沫经济案例。

在 1634 年以前,郁金香和其他花卉一样是由花农种植并直接经销的,价格波动的幅度并不大。在 1634 年底,荷兰的郁金香商人们组成了一种类似产业行会的组织(College),基本上控制了郁金香的交易市场。这个行会强行规定:任何郁金香买卖都必须要向行会缴纳费用。

1636 年底,荷兰郁金香市场上不仅买卖已经收获的郁金香球茎,而且还提前买卖在 1637 年将要收获的球茎。由于郁金香的需求上升,推动其价格上升,人们普遍看好郁金香的交易前景,纷纷投资购入郁金香合同。这是期货交易的雏形。

郁金香的交易被相对集中起来之后,买卖双方的信息得以迅速流通,交易成本被大大降低。在这个期货市场上没有很明确的规则,对买卖双方都没有什么具体约束。郁金香合同很容易被买进再卖出,在很短的时间内几经易手。这就使得商人们有可能在期货市场上翻云覆雨,买空卖空。在多次转手过程中,郁金香价格也被节节拔高。

在行会的控制和操纵之下,郁金香的价格被迅速抬了起来。买卖郁金香使得一些人获得了暴利。郁金香价格暴涨吸引了许多人从欧洲各地赶到荷兰,他们带来了大量资金。外国资本大量流入荷兰,给郁金香交易火上浇油。

1637 年新年前后,郁金香的期货合同在荷兰小酒店中被炒得热火朝天。到了 1637 年 2 月,倒买倒卖的人逐渐意识到郁金香交货的时间就快要到了。一旦把郁金香的球茎种到地里,也就很难再转手买卖。人们开始怀疑,花这么大的价钱买来的郁金香球茎就是开出花来到底能值多少钱?前不久还奇货可居的郁金香合同一下子就变成了烫手的山芋。持有郁金香合同的人宁可少要点价钱也要抛给别人。在人们信心动摇之后,郁金香价格立刻就开始下降。价格下降导致人们进一步丧失对郁金香市场的信心。持有郁金香合同的人迫不及待地要脱手,可是,在这个关头很难找到“傻瓜”。恶性循环的结果导致郁金香市场全线崩溃。

郁金香泡沫的高峰期仅仅持续了一个多月。由于许多郁金香合同在短时间内已经多次转手买卖且尚未交割完毕,最后一个持有郁金香合同的人开始向前面一个卖主追讨货款。这个人又向前面的人索债。荷兰的郁金香市场从昔日的景气场面顿时间变成了凄风苦雨和逼债逃债的地狱。

现在 00 后炒鞋就和以前荷兰人炒郁金香一样,鞋穿不炒。

幸存者偏差 (Survivorship Bias)

幸存者偏差是指当取得资讯的渠道仅来自于幸存者时(因为死人不会说话),此资讯可能会存在与实际情况不同的偏差。

此规律也适用于金融和商业领域。存活下来的企业往往被视为“传奇”,它们的做法被争相效仿。而其实有些也许只是因为偶然原因幸存下来而已。

在鞋圈、币圈,最明显的例子就是“我炒鞋赚大钱”或者“我一个朋友炒币亏得倾家荡产”等等。不管你的朋友和你关系如何好,如何值得信任和尊重,在客观规律面前他们都是等同的。市场不会因为你的喜好而照顾或者偏袒你的亲朋。

最近火热的炒鞋,收益翻倍的同样是少数幸存者。其实炒鞋历史悠久,最近才进入大众视野,为的就是大面积收割。

双盲实验和详细全面客观的数据纪录都是应对“幸存者偏差”的良方。所谓“兼听则明”也是这个道理,抛掉对个案的迷信,全面系统的了解才能克服这个偏差。

帕累托二八法则 (The Pareto Principle or The 80/20 Rule)

80/20 法则(The 80/20 Rule)又称为帕累托法则(Pareto Principle)、二八定律、帕累托定律、最省力法则、不平衡原则、犹太法则、马特莱法则。生活中大多数事情不是均匀分布的,大多数结果来自少数投入:

  • 某个软件的 80% 代码只占总分配时间的 20%(相反,最难的 20% 代码部分占用 80% 的时间)
  • 20% 的努力产生 80% 的结果
  • 20% 的工作创造 80% 的收入
  • 20% 的错误导致 80% 的崩溃
  • 20% 的功能导致 80% 的使用量

此法则是由美国罗马尼亚工程师约瑟夫·朱兰(Joseph M. Juran)博士根据维尔弗雷多·帕累托当年对意大利 20% 的人口拥有 80% 的财产的观察而推论出来的。约瑟夫·朱兰是举世公认的现代质量控制之父,他在 20 世纪 40 年代,开始将帕累托法则应用于质量问题。

炒股、炒币、炒鞋,赚大钱的都是少数人。

格雷欣法则 (Gresham’s Law)

400 多年前,英国经济学家格雷欣发现了一有趣现象,两种实际价值不同而名义价值相同的货币同时流通时,实际价值较高的货币,即良币,必然退出流通——它们被收藏、熔化或被输出国外;实际价值较低的货币,即劣币,则充斥市场。人们称之为格雷欣法则,亦称之为劣币驱逐良币规律

格雷欣法则在现代企业薪酬方面改革的贡献尤为突出。而在币圈,我们看的是格雷欣法则的逆反现象,因为数字货币是由信仰定义价值,没有国家或法律力量维系,所以劣币不仅无法驱逐良币,最终还会反被良币消灭。

破窗效应 (Break Pane Law; Broken windows theory)

环境中的不良现象如果被放任存在,会诱使人们仿效,甚至变本加厉。

生活中的例子:路边角落有些许纸屑,如果无人清理,不久后就会有更多垃圾,最终沦为垃圾堆。

破窗效应常出现于股票市场、社区治理,币圈自然也常见。

名人效应

粉丝容易因为信任名人而成为韭菜。但名人效应有时候会逐渐减弱,甚至在某些方面他们会完全没有效应。

破解名人效应的方法是独立思考。《大般涅槃经》有云:依法不依人,依义不依语,依智不依识。不因为他是名人、大师就信以为真。不因为符合逻辑或自己的观念,就信以为真。

这里讲一个寓言故事:

蝎子要过河,对身边不远处的青蛙说:“我想过河,但不会游泳,你可以背我过去吗?”

青蛙回答:“不行。你有个毒钩子,如果我背你到河心,你蜇我,那我岂不是死翘翘!”

听完青蛙的话,蝎子哈哈大笑:“不会的!我要是蜇死你,自己也会落水淹死。”

青蛙一想也是,就背起蝎子。当他们游到河心时,青蛙突然感应背上一阵撕心裂肺的痛,接着便四肢发麻。青蛙用最后的力气问道:“你想自杀?”

蝎子答道:“谁想自杀呀?我蜇你完全是出于下意识。”说完,这两个家伙双双沉入河底。

逻辑只在理性时有效,而下意识往往能战胜理性。在币圈,保持冷静和有意识主动控制情绪是必须的。

“Those whom God wishes to destroy, he first makes mad.” ——Euripides

损失厌恶 (Loss aversion)

损失厌恶是指人们面对同样数量的收益和损失时,认为损失更加令他们难以忍受。同量的损失带来的负效用为同量收益的正效用的 2.5 倍。

一美元拍卖陷阱

一美元拍卖陷阱是著名博弈论专家,耶鲁大学教授马丁·舒比克(M.Shubik)设计的经典案例。

在某大型场合,拍卖人拿出 1 张 1 美元钞票,请大家给这张钞票开价,每次叫价的增幅以 5 美分为单位,出价最高者得到这张 1 美元,但出价最高和次高者都要向拍卖人支付出价数目的费用。

最终出价最高和次高者因为厌恶损失(Loss Aversion),导致越陷越深的沼泽陷阱。1 美元拍卖在哈佛大学、耶鲁大学等高校进行过多次实验,最终的报价在 20 到 66 美元之间。

在币圈,此理论是交易所常用的盈利手段。举个例子:上币。交易所可以规定,交 1000 万人民币直接上主站,如果没这么多钱,还有机会,每个月交易所从测试站多个竞争币中选择一个符合要求的上主站。这可能导致一美元拍卖陷阱,最终多个竞争币拼命竞争,最终交易所赚到不止 1000 万人民币。

囚徒困境 (Prisoner’s dilemma)

囚徒困境是博弈论的非零和博弈中具代表性的例子,反映个人最佳选择并非团体最佳选择。囚徒困境最早由美国普林斯顿大学数学家阿尔伯特·塔克(Albert tucker)1950年提出。他当时编了一个故事向斯坦福大学的一群心理学家们解释什么是博弈论,这个故事后来成为博弈论中最著名的案例。故事内容是:两个嫌疑犯(A和B)作案后被警察抓住,隔离审讯;警方的政策是“坦白从宽,抗拒从严”,如果两人都坦白则各判 8 年;如果一人坦白另一人不坦白,坦白的放出去,不坦白的判 10 年;如果都不坦白则因证据不足各判 1 年。

囚徒困境的主旨为,虽然囚徒们彼此合作,坚不吐实,可为全体带来最佳利益,但在资讯不明的情况下,因为出卖同伙可为自己带来利益(缩短刑期),也因为同伙把自己招出来可为他带来利益,因此彼此出卖虽违反最佳共同利益,反而是自己最大利益所在。

单次发生的囚徒困境,和多次重复的囚徒困境结果不会一样。在重复的囚徒困境中,博弈被反复地进行。因而每个参与者都有机会去“惩罚”另一个参与者前一回合的不合作行为。欺骗的动机可能被受到惩罚的威胁所克服,从而可能导向一个较好的、合作的结果。这时,合作可能会作为均衡的结果出现,称之为纳什均衡 (Nash Equilibrium)。作为反复接近无限的数量,纳什均衡趋向于帕累托最优

由囚徒困境可以想到类似的韭菜困境:大跌时,韭菜无法信任其它韭菜,纷纷割肉快跑。

八哥之神前传【2】

AVILab 仲裁委员会

齐凤卿的宠物暹罗猫咬伤周老师喉咙,但由于换脑及时,周老师只是神志不清一段时间,并损失一部分记忆,定罪齐凤卿故意唆使杀人未遂,判处有期徒刑十年。

圣小开:“劣者建议改为冰冻十年。齐先生是有用之才,关十年不死也残废,不如冰起来,十年后还能用。”

孙朝穆:“有道理,我正在研究这个技术。以往的技术都无法保证人能活着,没死都给冰死,实乃以科学研究为借口的杀人利器。”

齐凤卿:“两位师弟是公报私仇,打算玩死我吗?大家可别听他们。”

委员会 23 名成员,周老师还在监护中,薛雾霰缺席,齐凤卿自己是犯人,还剩 20 名可以投票,只要 11 票就可以判决。

投完票正好是 10 票冰冻,10 票关监狱。

齐凤卿:“我投自己无罪释放。你们这些 NPC,知道我的功劳吗?我是为了大家的未来!”

代理主席贾力劣:“对不起,你已经被取消投票权。”

齐凤卿:“圣小开同学就赞同我的做法,你们是不是连他一起判刑?”

圣小开:“喝喝喝,劣者啥都没干,假装赞同你,是为了分散你的注意,别当真了!”

齐凤卿:“别装了,刘佾可以作证,而且我的做法确实对各位是有利的,你们别装圣人。周老师的喉咙是宠物咬的,你们假设这是我指示,没有科学取证,属于非法执法!”

刘佾:“圣小开在识界里确实说过他赞同凤卿的做法,他还故意不放大招阻止凤卿。”

圣小开:“咳,姐,你不知道他偷了周老师的特权吗?加上他自己的特权,谁打得赢他?你自己不要命,别拉劣者一起死呀!”

陈立姻:“我作证,圣小开胆小如鼠,他只是怕做无谓的牺牲。而且他做事经常犹豫不决,量子力学,大家都知道的。麻烦回到主题。”

月球上的薛雾霰远程进入会议。大家纷纷欢迎首席科学家老薛。其实他年轻得很……换脑手术之后去月球研究氦-3能源。

薛雾霰:“我刚和周老师通过话,他还很虚弱不方便亲临,让我问一下大家,记得世界是怎么突变成现在这样的吗?”

奇怪!居然没人记得……

灭霸:我不当背锅侠!

“没错,几乎没人知道。周老师和我的看法一致,我们这个世界并非顶层世界,外面很可能还有一层更高级的文明,甚至更多层,他们创造我们这个世界。当年,他们中的某些人也无视规则,进入我们的世界摧毁大部分生灵。大家发挥一下同理心,外面的高级文明如果不惩罚他们中乱来搞破坏的人,那我们的世界将毁灭至何等地步?我们怎么能放任同样的人,存在于你我之中?”

镜头切换,有这样的老头,再切换,有那样的老太婆……各个感动得老泪纵横。

这就是为什么本剧主角经常进入识界。现实中是老头,进入识界后是年轻的帅哥,何乐而不为呢!本剧以后是要拍成电影的,老是播放老人世界,观众们也不爱看嘛!

刘佾:“首席大人,你说得对。那是不是连圣小开一起关几年?杜绝他邪恶的想法!”

识界里的刘佾是本剧最性感的女角。

圣小开:“姐,您还真不放过小弟,给你跪了行不行?当时大伙准备派人进识界救场时,劣者就说了难当此大任,你们非要说劣者街霸打得好,还给劣者特权安慰,结果经劣者分析还是打不赢,劣者怀疑……咳咳。齐总的特权实在吓人,认输还要坐牢吗?赤果果的陷害!”

圣小开心想:肯定有人给劣者下套。

薛雾霰:“周老师说识界必须修复,这个任务就交给开哥吧!霰人去也。”

圣小开:“喂,识界代码还有人看得懂吗?你们这些死产品经理,一句话玩死一批程序员!”

薛雾霰又冒出来:“我不只是产品经理,还是领导!霰人再去也。”

贾力劣:“心灵生化武器的传染和起作用都很慢,我们还有时间。必要时,我们可以减慢识界时间流速。”

圣小开:“那劣者先去睡了?”

陈立姻:“五年内意识上传系统会开发完善,你到时候进去感染一下心灵生化武器,自己体会怎么破解吧!”

圣小开:“感染死掉怎么办?”

陈立姻:“嘿,你不是号称一生受过无数劫苦难,现在都没死,小小心灵病毒怎么斗得过你?”

圣小开:“说得好有道理,你们慢点开发,让劣者多活几年!”

孙朝穆:“开哥,放心!我多请几天假就行,diang~”

齐凤卿:“你们瞎扯完了没?让我清静清静。”随即内牛满面地认错,“我选择关监狱,能打个折吗?”

贾力劣:“关八年。”

监护室

周易穿越时间从梦中吓醒:“立姻、朝穆,为了应对未来潜在风险,你们去制造一些基因改良人,他们必须有强大的生育能力和意愿。”

有读者问:周易是谁?

答:作者打算请周星驰来演。他老人家出场费很贵,所以是主角里出场频率比较低的。

孙朝穆:“老师,这是为何?”

周易:“保存记忆同时也会保留心灵上的痛苦,将来会有需要不保留记忆转世,但现在的自然人生育能力都有问题,而且也不愿意生育。”

这是一个没有爱情的时代

人类发明了长生术——换脑,还即将发明永生术——意识上传。所以生殖失去意义。大部分人都没有生殖意愿,有的连爱都不做。

自然人都上了年纪,生育能力肯定是没有的啦,这辈子都不会再有……

克隆体换脑人的性方面没有发育,是由于其是基因工程设计出来的无脑身体,由外部设备催化生长。大脑才是最大的性腺,而脑都是老脑。

有读者问:为什么不注入性激素呢?

答:您知道养猪吧!公猪、母猪都要阉割的,不阉割不好养呀!而且会有骚味。嗯,这就是为什么太后们喜欢太监,阉割后真的会比较香哦,不然为什么有这么多“臭男人骚女人”?

早期 AVILab 有尝试过注入性激素,结果这些脑残的身体竟不由自主地进行某些操作,实在不好kan管ru理mu。

陈立姻:“但是这些改良人类的社会地位可能很尴尬,和现在主流的造躯体换脑大大不同,他们是被创造的新生,这在以前就被禁止。”

周易:“现在的社会阶级太单一,长久运行后所有人都会变成老妖怪,迟早会出八哥。老师现在丢失一部分记忆,从身体和精神上都年轻许多,这种感觉,你们迟早会理解的。委员会讨论吧,讨论过就制定计划给我过目。”

遗忘一时爽,一直遗忘一直爽。

孙朝穆:“老师,我记得当年老薛换脑的新身体是有生育能力的。”

陈立姻:“是呀,他的女助手王兔兔也有,现在他们俩都在月球上,不会是私奔生孩子去了吧!”

周易:“他们如果愿意生育是可以的。为了人类的发展,有些尝试还是要的。”

孙朝穆、孙朝穆纷纷表示恍然大悟:“原来如此……首席辛苦了!”

生孩子一时爽,不生更爽,一直不生一直更爽。

ECC Node.js

前情

上篇《基于 ECC 的私钥转为公钥的过程》讲到求椭圆曲线上的点时,用的是基于 Python 的 SAGE。为了方便 Node.js 程序员理解和实现完整流程代码,本篇用 Node.js 库实现椭圆曲线点的计算。

用 Node.js 求椭圆曲线的点

库的选型考虑 eosjs 用的 ecurveelliptic

1. ecurve

1
2
3
4
5
6
7
8
const ecurve = require('ecurve')
const BigInteger = require('bigi')

const k1 = ecurve.getCurveByName('secp256k1')
const pk = BigInteger.fromHex('d2653ff7cbb2d8ff129ac27ef5781ce68b2558c41a74af1f2ddca635cbeef07d')
const pub = k1.G.multiply(pk)
pub.affineX.toHex()
pub.affineY.isEven()

得到 x 值为 c0ded2bc1f1305fb0faac5e6c03ee3a1924234985427b6167ca569d13df435cf,y 为偶数,和 SAGE 计算结果一样。

2. elliptic

流程基本一样,所以这里给出完整转换代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env node

/**
* @author UMU618 <umu618@hotmail.com>
* @copyright MEET.ONE 2019
* @description Use block-always-using-brace npm-coding-style.
*/

'use strict'

const bsc = require('bs58check')
const ripemd160 = require('ripemd160')
const bs = require('bs58')
const elliptic = require('elliptic')
const BN = require('bn.js')

function encodePublicKey(payload) {
const checksum = new ripemd160().update(payload).digest()

return bs.encode(Buffer.concat([
payload,
checksum.slice(0, 4)
]))
}

function privateKeyToPublicKey(privateKey) {
const buf = bsc.decode(privateKey)
if (0x80 !== buf[0]) {
throw new Error('Not a private key.')
}
const k1 = elliptic.curves.secp256k1
const pvt = new BN(buf.slice(1), 'be')
const pub = k1.g.mul(pvt)
const y = pub.getY().isEven() ? 2 : 3
return 'EOS' + encodePublicKey(Buffer.from([y].concat(pub.getX().toArray())))
}

const privateKey = '5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3'
const publicKey = privateKeyToPublicKey(privateKey)

console.log(privateKey)
console.log(publicKey)

3. 对比

elliptic 比较好用,比较快。

代码

https://github.com/UMU618/secp256k1-tools

基于 ECC 的私钥转为公钥的过程

基本知识

ECC 体系中,私钥是一个大型随机数,而公钥则是私钥乘以椭圆曲线上的基点后对应的点。

meet-one/private-to-public 是 MEET.ONE 开发的私钥转公钥工具。

EOS 支持的 EC 有两种:secp256k1(以下简称 k1)、secp256r1,下面以 k1 为例,结合 Node.js 和 Python 代码介绍转换过程。

涉及算法

  • BASE58:编解码私钥、公钥。
  • SHA-256:校验私钥,本文忽略此步。
  • ECC, secp256k1:计算公钥。
  • RIPEMD-160:校验公钥。

转换过程

1. 解码私钥

假设私钥为:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3,这是 base58 编码,用 bs58 库解码:

1
2
3
const bs = require('bs58')

bs.decode('5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3')

得到 <Buffer 80 d2 65 3f f7 cb b2 d8 ff 12 9a c2 7e f5 78 1c e6 8b 25 58 c4 1a 74 af 1f 2d dc a6 35 cb ee f0 7d aa 08 64 4a>,其中第 1 个字节 0x80 是类型,末尾的 4 字节是校验码。

这里我们不关心校验码,也可以直接用 bs58check 解码:

1
2
3
const bsc = require('bs58check')

bsc.decode('5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3')

得到 <Buffer 80 d2 65 3f f7 cb b2 d8 ff 12 9a c2 7e f5 78 1c e6 8b 25 58 c4 1a 74 af 1f 2d dc a6 35 cb ee f0 7d>,去掉首字节后为:

65 3f f7 cb b2 d8 ff 12 9a c2 7e f5 78 1c e6 8b 25 58 c4 1a 74 af 1f 2d dc a6 35 cb ee f0 7d```
1

这是 256bit 整数的 Big endian 字节流表示,转为 16 进制整形为 `0xd2653ff7cbb2d8ff129ac27ef5781ce68b2558c41a74af1f2ddca635cbeef07d`,记为 `pk`。

## 2. 构造椭圆曲线,求公钥的坐标

根据 [SECG](http://secg.org/) 规定的 k1 的参数,我们用基于 Python 的 [SAGE](https://sagecell.sagemath.org/) 构造 k1 对应的椭圆曲线,然后计算 `pk * G`:

```python
a = 0
b = 7
p = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
Gx = 0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
Gy = 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8
E = EllipticCurve (GF(p), [a, b])
pk = 0xd2653ff7cbb2d8ff129ac27ef5781ce68b2558c41a74af1f2ddca635cbeef07d
G = E(Gx, Gy)
pk * G

结果为:(87237761414843254130560834629777710286905276524352264071298714336416392033743 : 108016191455113306196371645921919775466659772908675410052799661524790827329728 : 1)

注:这里的 (x : y : z) 是射影坐标,一般采用笛卡尔坐标系表示,为 (x/z, y/z)。

3. 编码公钥

取 x 值:87237761414843254130560834629777710286905276524352264071298714336416392033743

16 进制为:0xc0ded2bc1f1305fb0faac5e6c03ee3a1924234985427b6167ca569d13df435cf

Big endian 字节流表示为:[0xc0, 0xde, 0xd2, 0xbc, 0x1f, 0x13, 0x05, 0xfb, 0x0f, 0xaa, 0xc5, 0xe6, 0xc0, 0x3e, 0xe3, 0xa1, 0x92, 0x42, 0x34, 0x98, 0x54, 0x27, 0xb6, 0x16, 0x7c, 0xa5, 0x69, 0xd1, 0x3d, 0xf4, 0x35, 0xcf]

由于 y 值是偶数,所以添加一个前缀 2,得到:[2, 0xc0, 0xde, 0xd2, 0xbc, 0x1f, 0x13, 0x05, 0xfb, 0x0f, 0xaa, 0xc5, 0xe6, 0xc0, 0x3e, 0xe3, 0xa1, 0x92, 0x42, 0x34, 0x98, 0x54, 0x27, 0xb6, 0x16, 0x7c, 0xa5, 0x69, 0xd1, 0x3d, 0xf4, 0x35, 0xcf]

注:若 y 为奇数,则前缀为 3。

注:为什么这么规定?只用 x 值和 y 值的奇偶性表示一个点,这叫公钥的压缩格式。因为只要有 x,就可以通过 k1 的椭圆曲线方程式 $y^2 = x^3 + 7 \mod p$ 求出 y,但此时 y 会有两个解,又由于 p 是一个大质数,必定为奇数,故两个 y 解的和 mod p 一定等于 0,即一奇一偶,所以用 x 和 y 的奇偶性标志即可代表这个点。

接着求校验码:

1
2
3
const ripemd160 = require('ripemd160')

new ripemd160().update(Buffer.from([2, 0xc0, 0xde, 0xd2, 0xbc, 0x1f, 0x13, 0x05, 0xfb, 0x0f, 0xaa, 0xc5, 0xe6, 0xc0, 0x3e, 0xe3, 0xa1, 0x92, 0x42, 0x34, 0x98, 0x54, 0x27, 0xb6, 0x16, 0x7c, 0xa5, 0x69, 0xd1, 0x3d, 0xf4, 0x35, 0xcf])).digest()

得到:<Buffer eb 05 f9 d2 c6 dd 62 f7 f2 a0 f7 61 ea 1d 8c 0b 84 4a 3b 52>,取前 4 字节,添加到末尾,得到:[2, 0xc0, 0xde, 0xd2, 0xbc, 0x1f, 0x13, 0x05, 0xfb, 0x0f, 0xaa, 0xc5, 0xe6, 0xc0, 0x3e, 0xe3, 0xa1, 0x92, 0x42, 0x34, 0x98, 0x54, 0x27, 0xb6, 0x16, 0x7c, 0xa5, 0x69, 0xd1, 0x3d, 0xf4, 0x35, 0xcf, 0xeb, 0x05, 0xf9, 0xd2]

然后,base58 编码:

1
2
3
const bs = require('bs58')

bs.encode(Buffer.from([2, 0xc0, 0xde, 0xd2, 0xbc, 0x1f, 0x13, 0x05, 0xfb, 0x0f, 0xaa, 0xc5, 0xe6, 0xc0, 0x3e, 0xe3, 0xa1, 0x92, 0x42, 0x34, 0x98, 0x54, 0x27, 0xb6, 0x16, 0x7c, 0xa5, 0x69, 0xd1, 0x3d, 0xf4, 0x35, 0xcf, 0xeb, 0x05, 0xf9, 0xd2]))

得到:6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV,加上前缀 EOS,即为公钥。

诗盗·梦神

《#诗盗#·梦神》:浮生不与红尘谋,梦变鲲鹏立云洲。黑白无常一吓醒,生死轮回两宇宙。

注解

今日高温,午睡时突然忆起前几天的怪梦。平时不关心红尘凡事,日子平淡无奇,但梦境却实在很神奇,仿佛另一个世界。

自己漂浮在云层里,看到鲲鹏的翅膀在摇动,感觉还挺萌的,然后却发现翅膀是从自己身上长出去的……原来自己就是那只鲲鹏!

龙卷风把海水吸到云层里,看起来很像鲲化鹏,这两种形态的转化很快,梦的转变也很快,黑色的梦境,吓醒后是白天,我又从鲲鹏变回自己,就像穿梭在两个平行宇宙。

前两句改编自霹雳角色“道锋天扇子”出场诗:

浮生寄墟丘,不与红尘谋,身披烟波立云舟。
一扇擎青穹,飘洒翳孤踪,梦变鲲鹏振长空。

诗盗·无欲则刚

《#诗盗#·无欲则刚》:平生默默心如冰,含情一待苦似病。暝色高楼晚回愁,百万豪车无处停。

注解

平时淡然处世,心思平静,一旦动情就会得相思病,这都是因为有不切实际的欲望。

夜色已晚,开着百万豪车回家,因为楼太高,地下车位不够用,太晚回都找不到车位,如果是乐射车就放心随便停路边了,所以说——有点钱又不够有钱,是最难受的。

总之,还是没心没肺才能过得好!(我宁愿有钱、有心、有肺……)

改编自唐代诗人李白的《菩萨蛮·闺情》:

平林漠漠烟如织,寒山一带伤心碧。
暝色入高楼,有人楼上愁。
玉阶空伫立,宿鸟归飞急。
何处是归程?长亭更短亭。

八哥之神前传【1】

2042 年,AVILab

一日晚,齐凤卿带着宠物找周老师释疑。

“周老师,委员会一旦把识界系统超级控制权限拆分管理,必将阻碍科研效率。”

“凤卿,识界硬件和软件层面已经很完善,现在需要让它自由发展,我们后期侧重点应该放在接入系统。”

“这就是我想说的,等我们接入系统也完善后,人人都可以把意识上传到识界里生活,到时候识界内部的社会形态如果与现在的科学主义社会不同,我们如何更好地去改善呢?识界可是比当今世界更复杂。”

“你想使用特权改变识界?”

“没错,我们现在生活的地下城比起识界里的自然环境差太多,而且如果情况继续恶化,独立可控核聚变供电的识界才是人类最佳归处。我希望在识界里,我们还有特权,才能不受各种潜在危害,安心做科研。”

“这事情先不用操心,接入技术需要五、六年才会成熟,还早呢!老师 95 岁的人都不担心,你担心啥?”

“我担心的是委员会成员多数不希望我们在识界里扮演神灵,到时候我们和识界自然演绎出来的人类没有任何差别,岂不是像被关进监狱?”

“哈哈哈,你师弟不是经常说在这里像坐牢?这个宇宙,哪里不是牢笼?”

“是啊,可是那家伙明明有和我一样的担忧,却投票支持不保留特权!”

“他和薛雾霰曾经把时间停止,你知道吗?”

“识界吗?这不是很正常的?”

“不是,是现实世界。”

“嗯?时间停止,我们的观察、思考也都停止,怎么发现到底停止没?”

“时间停止时,只有引力波还在起作用。”

“饶了我吧,这不是我研究的领域。我还是关心识界以后的管理问题。”

“以后就自治吧,我们不应该干预自然规则,就像在现实世界,我们只能利用自然规则,部分改造我们的生存环境,而不能违逆规则。”

“既然如此,我认为应该减少识界里的人类,让其更像我们现在的人口状况。”

“你想干什么?”

“我之前一直在识界里培养我的信徒和菌队,是时候来一场识界大战了。”

医院

周易被猫科动物咬伤濒死。陈立姻和孙朝穆为周易做换脑手术。

试玉要烧三日满,辨材须待七年期。向使当初身便死,一生真伪复谁知。

识界

这个世界为游戏而生,现实的开发者为创造真实的场景,曾经用特权给识界某些公司输送资源,从而构造了强大的菌事基地。又用特权控制和改造某些关键人物的思想,达到统治的目的。

齐凤卿用自己的基因在识界克隆了一个替身,但替身并没有他的意识,无法与他心灵相通,这让他一直努力推动意识复制技术。

齐凤卿抢夺周易的特权,远离 AVILab,在神秘人物薛雾霰家的游戏机,通过特权进入识界。

薛雾霰:雾草,开哥你这是什么安排?本霰人上天探索,别墅交你们打理,怎么被用来搞黑客入侵了??

圣小开:因为你是量子领域的专家,住所隐秘,适合干坏事。放心!保证完好无缺。

识界正上演消灭脑残玩家的大战。齐凤卿教唆现实中几名游戏玩家开启上帝视角协助识界中的齐家菌疯狂杀戮识界生灵。

救世主出场

耶乎知稣、心理邪稣、量子邪稣和刘佾,三人牛逼轰轰地降临,开始反杀齐家菌。

很快齐凤卿发现异常,打死耶乎知稣,心理邪稣定位到齐凤卿,猛力攻击。

齐凤卿化身为魔凤,一口吃掉心理邪稣。

魔凤是金色的,不要以为是黑色……

心理邪稣的遗言:“稣有个秘密要告诉你!你大学时的女朋友……”。

地面自动升起一块墓碑,刻着:圣小开之墓。

量子邪稣一看心惊胆战,内牛满面,再观天上的魔凤变幻出多种怪异形状,赶紧对刘佾说:“不妙,快跑路!”

刘佾:“跑?怎么能见死不救?”

量子邪稣:“自己都快被打死了,还救别人?”

刘佾:“没事,我们被打死还能回现实,重新选择角色,再进来。但是这里生灵涂炭,于心何忍?为苍生拼了!”

量子邪稣:“别傻了,咱们再来几次也打不赢他,被打死的不一样是识界里的人?”

刘佾:“我也开外挂,不信打不赢!”

刘佾化身八翼应龙,大战魔凤,依然不敌被拍落地面。

量子邪稣:“稣就说打不赢吧!你没发现那只魔凤是四维的吗?他现在可以轻而易举地捏碎稣的蛋,而且不伤蛋壳。咱们打不过他的。”

识界设计时,使用四维坐标系,只有特权程序可以把第四维设置为非零。

刘佾:“你现在才说……咱们现在没有蛋!还有,你为什么不放大招?”

量子邪稣:“这不是没证据吗?你又不听稣的!大招也不一定能赢。赶紧投降,和他讲交情,稣继续隐藏在量子领域,不被观测。”

刘佾:“讲交情有用?”

量子邪稣:“你们读研时不是男女朋友吗?马上投降,赞同他的理念先!”

刘佾:“臣妾做不到呀!”

量子邪稣:“你这个,圣,咳,母婊!稣来!藏在你身上就是为了飙演技……”

刘佾:“臭师弟,你骂谁呢!”

量子邪佾:“哥,我投降,你是对的,这些傻逼应该消灭!”

魔凤:“圣小开还有好几个分身在哪里?别以为我不知道他是精神分裂!让我连入你的意识,把他找出来!”

量子邪佾:“哥,连我也没用,他又没和我联机。”

魔凤从第四维靠近量子邪佾:“骗谁呢?我插!”

意识世界

量子邪稣:“师兄!”

齐凤卿:“嗯哼?原来你在这里!领死,还是归降?”

量子邪稣:“师兄此言差矣!在这里,你根本不是稣的对手!”

齐凤卿:“但我可以控制物理世界的魔凤,毁灭你的肉身。识界里有特权的角色已所剩无几,最终你们无法阻止我。”

量子邪稣:“这不是挺好的嘛!稣本来就赞同你的做法,只是这罪名要你担而已,稣轻轻松松躺赢。”

齐凤卿:“赫赫,你这小子,果然心机深沉,但是好人有这么好当的吗?受死吧!”

量子邪稣:“等等,稣啥时候说过自己是好人啦?邪稣的邪字放在前面呢!”

齐凤卿:“装模作样!消失吧!”

刘佾:“喂喂,不要把我一起打死啊……你们又没有必然的矛盾,为啥不合作?”

量子邪稣:“就是,你就背个黑锅,假装被稣打死,稣回去让委员会判你几年有期徒刑完事,这不是双赢吗?”

齐凤卿:“赫赫,鬼算盘打得很精,好事都你占?凭什么我倒霉!”

刘佾:“哥,你的宠物咬死周老师,这是大罪。还是收手吧!”

齐凤卿:“确定死了?”

量子邪稣:“不确定,我们进来时还在抢救,用的是换脑术,取决于脑是否能活下来。你和我们一起出去和平解决,这里的战争,咱们就当一个八哥。”

齐凤卿:“我已经下令释放心灵生化武器,再打死你们,我就出去!”

识界物理世界

魔凤将量子邪佾打爆。然而,同一瞬间阎无邪手持冥邪天锋化现,地狱恶灵纷纷缠住魔凤,无邪顺势一剑砍下凤头。

但是,魔凤的头断并不致命,继续长出其它的头。无邪酱油退场。

心灵生化武器被释放,开启一场无声无息的众生苦难。整个识界自杀率大大提升……

现实世界

然而,在现实世界,齐凤卿不能上天入地,还是被抓起来了。赫赫!

齐凤卿:“这场游戏打得真爽!”