Transaction

93076803c25dde3be5f68e193b0c526901c60db614aa5afbf2c647291e136211
( - )
252,260
2019-07-28 07:59:21
1
17,635 B

3 Outputs

Total Output:
  • j"19HxigV4QyBv3tHpQVcUEQyq1pzZVdoAutMk2#0.前言 迄今为止,Bitcoin系统的所有技术概念都已经出场。 本篇我们来看看系统运行过程中的一个现象,即分叉。 Bitcoin系统的核心精神就是竞争。 竞争的表象就是分叉。 #1.分叉 咖啡馆,中本聪和Gilfoyle围坐在显示屏前,一行行的文字快速滚动着,就像黑客帝国里的场景。 [![Bitcoin系统日志](https://svbtleusercontent.com/drV8c3qzVSCPgNBn7TgbS20xspap_small.png)](https://svbtleusercontent.com/drV8c3qzVSCPgNBn7TgbS20xspap.png) <center><u>Bitcoin系统日志</u></center> 天书一般的日志,在中本聪和Gilfoyle看来却犹如一部大片,Bitcoin网络好似一个原始的动物战场,矿工之间进行着力量角逐,微观的混乱中蕴含着整体的秩序。 [![最原始的力量竞争](https://svbtleusercontent.com/xruEvnUwFG78uFTJSE4qMo0xspap_small.png)](https://svbtleusercontent.com/xruEvnUwFG78uFTJSE4qMo0xspap.png) <center><u>最原始的力量竞争</u></center> 算力就是蛮力,谁的算力大,谁就获得区块奖励。 这样的竞争毫无门槛,规则公开,任何人都可以参与,只要你愿意付出成本(电费)。 大多数时间里,节点之间都在各自挖矿,大家相安无事。 可是一旦网络中同时出现两个区块广播,这就会上演短兵相接的较量。系统中的所有节点都会被卷入,每个节点都要表态,选择跟随哪个区块,选择错了,自己的利益就会受损,记账网络分成两派,这就是所谓的分叉。 好戏就这么开始了: 目前,网络中的最新区块为五角星,这是三爷(节点3)在上一轮挖出的区块。(见下图) [![记账网络的和平时期](https://svbtleusercontent.com/5dGVCEBgzdd6pbEw7o6RVF0xspap_small.png)](https://svbtleusercontent.com/5dGVCEBgzdd6pbEw7o6RVF0xspap.png) <center><u>记账网络的和平时期</u></center> 新的一轮挖矿开始,小男孩和牛头人几乎同时得出随机数。 小男挖出的新区块为三角形(绿色),牛头人挖出的新区块为菱形(蓝色)。(见下图) [![短兵相接](https://svbtleusercontent.com/9DKTZYDGE7dxKBEoSyyGvz0xspap_small.png)](https://svbtleusercontent.com/9DKTZYDGE7dxKBEoSyyGvz0xspap.png) <center><u>短兵相接</u></center> 这时候其它节点的难题来了,要在这俩个新区块中做出选择。 选择的方式就是“跟随”,即,基于此区块来挖掘自己的下一轮新区块。 网络暂时形成了两个阵营,这种状态就称之为:分叉(forks)。(见下图) [![天下大势,分久必合,合久必分。](https://svbtleusercontent.com/ndUWj81ucx253qAmB2bmnn0xspap_small.png)](https://svbtleusercontent.com/ndUWj81ucx253qAmB2bmnn0xspap.png) <center><u>天下大势,分久必合,合久必分。</u></center> #2.重组 此时,系统虽然分叉,但是不影响用户使用。 无论客户端连接到哪派,业务处理都一样。 交易写入,两派节点都会写入到交易内存池。 交易查询,两派节点都会返回同样的结果。(内存池+区块,两派相同) 系统是否分叉,用户是感知不到的。 这就好比,美国的总统竞选期间,国会依旧照常办公。 两派的竞争的结果取决于谁呢? 答案是取决于下一轮挖出新区块的节点。 小红帽率挖矿出新一轮区块:红桃。(见下图) [![小红帽广播最新区块红桃](https://svbtleusercontent.com/qkQuNYtjLgg53cKzUNgVJY0xspap_small.png)](https://svbtleusercontent.com/qkQuNYtjLgg53cKzUNgVJY0xspap.png) <center><u>小红帽广播最新区块红桃</u></center> 所有节点都同步红桃。 由于小红帽在上一轮“跟随”了小男孩的绿色三角,其它节点接受了红桃,也就意味着同时接受了绿色三角。 这样一来,上一轮的胜者便是小男孩。 此时,系统由分叉恢复为合一,我们将这一过程称之为:重组(Reorg)(见下图) [![重组:由分叉回归合一](https://svbtleusercontent.com/cLKkk4pRz3X2UTnt1JWdgt0xspap_small.png)](https://svbtleusercontent.com/cLKkk4pRz3X2UTnt1JWdgt0xspap.png) <center><u>重组:由分叉回归合一</u></center> 之前牛头人的蓝色菱形区块成了一个被遗弃的区块,即,孤块。 Gilfoyle问到:“孤块的存在是否是一个缺陷?” 中本聪反问:“你为什么会这么想?” Gilfoyle答:“因为这会让牛头人有一种挫败感,打击了挖矿积极性。更重要的是系统时不时就呈现出分叉状态,给人一种系统不是很稳定的感觉。” 中本聪说:“我理解了,你是在表达,一个完美的系统不应该存在冗余。孤块就是冗余,孤块代表着竞争的失败。在我看来,你的这种理解是源自典型的精确系统世界观,即一切运行都要最高效,没有意外,没有多余损耗,一切都要可计划,可控制,可设计。” Gilfoyle说:“的确是这样。” 中本聪说:“而站在复杂系统的世界观来看,孤块的存在不仅不是缺陷,反而是精髓之处。有成功有失败,这才符合大自然的进化机制。失败意味着什么?失败意味着你还不够好:You are not good。只有失败才能让节点们反思,反思才能改变,改变就是进化。在我看来,孤块不是缺陷,而是像炼钢时,铁中故意加入的杂质,无杂质不成钢。” “比特币本身不是一个纯粹的系统;它自带着很多绝大多数数学家和计算机科学家看做是缺陷的性质。而这些“缺陷”正是比特币强大的内因。”--CSW [![铁与钢](https://svbtleusercontent.com/v8ksuGrPGXzTSZrdkmo4sT0xspap_small.png)](https://svbtleusercontent.com/v8ksuGrPGXzTSZrdkmo4sT0xspap.png) <center><u>铁与钢</u></center> 牛头人经过反思,发现不只是算力不够,其它方面也在影响着挖矿: 1.区块的验证速度要加快:新一轮挖矿的开始,开始于同步区块验证的完毕。 2.构建区块的容量要加大:大区块等于更多手续费,强者都会构建大区块,跟随强者,构建大区块。 3.网络传输速度要加快:挖矿的意义不是发掘区块;而是让你发掘的区块能够传递到所有其他的挖矿者那里去。所以网络的传输速度也很重要。 经过权衡,牛头人发现,均衡的提升基础设施的建设更加划算。 改善完区块验证和区块构建的代码,又升级了自己和邻居节点的网络。 经过验证,牛头人惊喜的发现做对了,后面再与小男孩的短兵相接,都赢了。 小男孩失败之后,也走上同样的道路,升级基础设施。 能够主动改变的节点都是强者,它们彼此合作,组成了Bitcoin的神经中枢,我们称之为:小世界网络。(见下图) [![小世界模型](https://svbtleusercontent.com/v9qcFh7PSc4HrgwTLqcrar0xspap_small.png)](https://svbtleusercontent.com/v9qcFh7PSc4HrgwTLqcrar0xspap.png) <center><u>小世界模型</u></center> 小世界让Bitcoin系统更加高效健壮。 小世界网络不是垄断,而是开放。 “到底一个市场是竞争的还是垄断的,不能简单地数那些市场上已经出现的正在经营者的竞争者的数量,而应该去看那些潜在的竞争者,看他们进入市场到底会不会遇到人为设置的行政障碍。只要存在这个障碍,那么不论市场上现有的竞争者有多少,这都是一个封闭的市场,一个垄断的市场,一个缺乏竞争的市场;如果没有这样的限制,人们可以随意进出,那不管看得见的竞争者数目是多少,它都是一个充分竞争的市场"--薛兆丰 #3.双花攻击与算力守护 黄鼠狼想要喝咖啡,便构建了一笔交易,将自己的一条30Bitcoin的UTXO指向了老板Bob的公钥,老板Bob通过客户端查到30Bitcoin已经到账,将咖啡给了黄鼠狼。(见下图) [![黄鼠狼构建的第一笔交易数据](https://svbtleusercontent.com/3wNSw6sv8MLB3T8tvod8xe0xspap_small.png)](https://svbtleusercontent.com/3wNSw6sv8MLB3T8tvod8xe0xspap.png) <center><u>黄鼠狼构建的第一笔交易数据</u></center> 黄鼠狼拿到咖啡后就开始使坏,想要白喝。 于是又构建了一笔交易,将上一笔中已经花掉的那30Bitcoin的UTXO又一次的指向了自己的公钥地址。 一笔UTXO被引用两次,这就是所谓的双花。(见下图) [![一笔UTXO被两笔交易引用,就是双花](https://svbtleusercontent.com/e7cE2i7gZs5NFeNx4o3vGM0xspap_small.png)](https://svbtleusercontent.com/e7cE2i7gZs5NFeNx4o3vGM0xspap.png) <center><u>一笔UTXO被两笔交易引用,就是双花</u></center> 正常情况下,记账网络会根据先见为真原则,采用第一笔交易,抛弃第二笔交易。 但是,黄鼠狼临时加大算力,挖出了一个与众不同的新区块:采用第二笔交易,抛弃第一笔交易。 广播区块,记账网络同步完毕,双花成功!黄鼠狼一脸幸灾乐祸。 老板Bob一看黄鼠狼的表情,觉得不对劲,再一查客户端,之前的30Bitcoin消失了。 当前网络区块链如下(见下图) [![最新区块为黄鼠狼挖出的](https://svbtleusercontent.com/52Ln9fLD5cJ9qdb8SpQfo10xspap_small.png)](https://svbtleusercontent.com/52Ln9fLD5cJ9qdb8SpQfo10xspap.png) <center><u>最新区块为黄鼠狼挖出的</u></center> 我们可以看到,黄鼠狼挖出的是最新的区块,高度为2001。 难道Bitcoin系统如此脆弱吗?一次算力攻击,就可以双花作恶。 当然不会,黄鼠狼还没高兴超过5分钟,记账网络忽然出现了一个高度同样为2001的竞争区块。 此时,记账网络进入分叉状态。(见下图) [![忽然出现竞争区块](https://svbtleusercontent.com/d81uryRQRRKbh1MCehk9WQ0xspap_small.png)](https://svbtleusercontent.com/d81uryRQRRKbh1MCehk9WQ0xspap.png) <center><u>忽然出现竞争区块</u></center> 原来这个竞争区块是小男孩挖出来的,小男孩验证黄鼠狼的区块发现里面存在双花数据,认定黄鼠狼在作恶,拒绝同步黄鼠狼的区块,而继续挖掘自己的区块,1分钟之后将挖出的区块广播到网络中。 这时候网络中同时存在两个区块,其它节点如何选择呢? 大多数节点,都会选择小男孩的区块,因为在区块验证环节,大家都会发现黄鼠狼的区块中有双花交易。 少数刚刚加入的节点,会选择黄鼠狼的区块,因为新加入的节点,没有历史交易数据,无法判断黄鼠狼和小男孩谁的区块中是双花交易,所以只能依照先见即真原则,选择跟随黄鼠狼。 黄鼠狼这时候很着急,眼看着自己的战果就要作废,立即投入更多的算力,在区块高度2002挖出了新区块。黄鼠狼心想,这下我的双花区块该站稳了吧(见下图) [![黄鼠狼挖出了最新区块](https://svbtleusercontent.com/9mAYXtgVZ3Svvh37vM6tDq0xspap_small.png)](https://svbtleusercontent.com/9mAYXtgVZ3Svvh37vM6tDq0xspap.png) <center><u>黄鼠狼挖出了最新区块</u></center> 对于新节点来说,因为无法分辨谁作恶,的确会选择同步黄鼠狼的这支作恶链。 但是对于大多数诚实节点,大家依旧抛弃了黄鼠狼的新区块,选择继续在上面的诚实链上继续“跟随”。 经过几轮较量,大多数诚实节点的算力之和大于黄鼠狼的算力,所以上面那条诚实链会最终超出下面那条作恶链。(见下图) [![算力大者获胜](https://svbtleusercontent.com/aCgGRvShiZhftbWogMehUy0xspap_small.png)](https://svbtleusercontent.com/aCgGRvShiZhftbWogMehUy0xspap.png) <center><u>算力大者获胜</u></center> 这时候,之前不明真相的新节点,会根据“跟随”最长链的原则,改为“跟随”上面的诚实链。 只要黄鼠狼的算力没有超过整体的51%,作恶链就迟早会被重组,曾经挖出的区块都会变成孤块。 黄鼠狼心想:“为了一杯咖啡,损失这么多算力,我难道是个2B吗?” 双花攻击,只能针对攻击者自己的UTXO,对其它用户的交易记录没有影响,因为攻击者无法构建出其它用户UTXO的解锁脚本。 即便系统由于双花攻击,暂时分叉,也不影响其它用户的正常使用。 只会对被双花攻击老板Bob有短暂的影响。 等到系统重组之后,诚实链战胜作恶链,老板Bob的余额查询又回恢复正常。 诚实的节点们,一直在用自己的算力,守护着系统的公正。 所以说,Bitcoin系统不担心短暂的算力攻击,哪怕邪恶算力超过51%,只要邪恶算力一撤,邪恶链还是会被诚实链重组。 这就好比,殖民者一撤,国家还是会恢复主权自治。 text/markdownUTF-80重新创造比特币20:分叉之重组与分裂| Çã$&zرÌ?èÚlØQ:š‚ó-Æò[@ⴎ9·ðbitpaste mbpaywall"1GJYyJmTWREYJ5z9d8Sb3b49NoDZq32NJnpwamt0.01pwccyUSDmbtip"1GJYyJmTWREYJ5z9d8Sb3b49NoDZq32NJn prerender| ¶›7¬?ŒìM°ÚbN°Ê:fs?_³æ‹ S0M*YCf~õ¡õŽ¢èBDtj-²Å`±ž,÷ÜÀãIŒr8šCWÒÞ'k ÇTŒhäÔ­êŒàÇ4bF3œX2¡ÜÒÕ²ÒRëÿ§éq@Mu}ظj?ÈʘÈz öØq̓d뻎Å)sÆËq_ìBÿ××#¦×2_®ˆî%à]2·ùkvƒ8Ev³9–8VÚI’qœL¤ÂUSùH±íÅ<ðòõ¼yÞN¢ ƒ sŸ“;›3^‘³me|r`]P§Žw–K…“MîÚžݸ„oƒ;+ú Y5h8t–)_ù^ÖB£x1(ºQç–j'׌häö=R`—%‰2MT0š,[r‚¢ ð}£Îp.0f{çÔï¯Y#{¼(ç÷©kóÿHÙAbž¥É'$ xáI—lš¦ìS²O.dôÓÕ&Ä˧‰šþHՅoê\Tѱwme™’Oë@].•‚öíc·‡€k Å¶-ùÿ”=I™ânú}œãåÚ¯±‘8­óDݵ¼7ü(¨? ²‚,aç°m˜ôåÒ7~Óñ›íÿ$é~þ¨üÊ=ÇR%Ð=ýí7Å̈»”¨ƒ§qdé“¼Ó’ºŠ–æ–ø¡'K®Iÿ®IW6MÜ<JùÕpûuKg„D7ê“Ì{ª¬˜]ô}/…@‹5 Â»êƒüÁ9¾[‚o-É"}ų”ŽD—à®IIÙ­¯Ï£ìÀJ8³ Ø¦bÂÎîGÿ”o~gÅ$ͳ6ñÑ>à!6ª&裚+3 =Û]ÁmÑP¡NÂϒÛÕäüŒ¾SI̽ ÊæPMº/QÌÈíÊêìÁvÏÅŒø¶ÇläÿhaF•ÅÍí¯ÍoM»z͵¢õ,›Œ$ù­ð]äÊæaí3ÐrНˆmÝEuIÈ3…KAãƒu ϊ•tI„Q*˃(zJŒk+³¨Ýà7´9ЀX±àd¸?ê÷´”†Jj>£)ÙÞxng¨V÷g˜¦fÍ~Tl’Š™¾”‰Wëñ_ûÓb;…Írõo(Ô:ËȄŠÿaöQ…„±ô7áó`û¦`öÿ‘Œæ= ¡-î=Œ†xããÌ;ÎÊo ½S£ÊxèäzQJ3D_ɚÛ׋ï  „¸s=<‹;¼\žô¦ˆ§1 Ât‹¹ùO›š,!†P{BIõàdjlé*¦s Fÿêç#Cú`쌽PëAçñÉŔ£§›ÂY¸øJ>Ê/§åMà¯àÆäЬRMF¬# 68Áµµ¼g÷¾e {2I4]”ý73ȟ™Þ ÀÌìrð˜{nwz 6ÀLÞÑي`øñú û€,ÐP\Úý*2bŠ<Çl$Õ¬½¿'B±]„ÚHD d­x1Zýߢch½sÿ>ÉBá% ‡±Ëè©CÈ®T‘=ðHÈs5ϵö5Ö܀ï*N•;^wXㄸ·œ¿›¼ëWг‹hTѕ Aq­ÂJo휽Å]ëo£µ-&lÁU”ø˜ýFˆe·c|ìHÐeHmwã*UÕNKa|ÞÙÄTB‘jˆtT¶Ë&jß`&âÌOI$풮±Íî\V åV—ȳ)™\öŽh—·Qé¨!DR9I¤H~›ßò)¬wº]<ï¦èðo þSߋC›gŽŠy /­"ÊçS\\ŒM¿é}·Õ‡dí8q­%ÝØv}àŽ•BŒk ÂÝ!Wp)ä°8G¤zˆÈz™t ©oݖ:ú­À1W˜p<ÛZÄÚ®œÌ‡ò~á¯h)ÀàSH øvôyûÞfžøø;F…õh;a‹Ûlyn§Ïz9ÿÌ •–6Šþ¤ØÕüM"˜AØOö@òÇiŸ©8MµW=5u­:C^º ï<FóU”Œb¸Ÿlúäe QÃ%)çʅr+ ÖDåƒy/N¶‡pQ ›L`WŸI¦g >Ù {ób+#mÞX}ðêÏÊ]綍OG«iv¾=å´å֛eám¤‡­ÓeUl ²r ¡É ^Pß8Wæ9  „ýS=kêÃôڵǀ¸èÚ¨R\ýë²³Zå›äYbý?G­ìƒ­¬\®Ôݖó˜ÂË¿*lÿ©~œânÏÓ²Ž€Ï¯¯Êø(„-”¸iæo—CUÆ)ǟL̅ˆð—×ï®ðWK lwQÁNœjœ±ÎjóÉÑ_<LÊLä,ö·êãêMþSã 9hå]ýoL¸4y°Ž%¦·xÐõm°î˜x0œuÚFÅÀ>ð¾w×À`Å:‰ì 6µ(Ã&na–ÂÍl¯ÿu,~ÁNþd¬€hÕûŒGQL ñ†h¶†nÈWý» þ{>QúÚ ‰¨mÎ6³ ×ï…? ýÃv#LWpL¶¢ù ª¹Š›°¡/3Ün[}56¦š6”¯•ëD¥JÜZ!Ôî×ùǚØâm9ÑÄDå¦U݅i™ïÌèEРiÅk쇚1šºž 3Í<!+’îýÞcËúæÍ8N¶ŽµpƒAOŽyªúíª«Ç'–á—í;Kå®}=Ó@§,Ø7eTŶ TýcÃ\R¢ÙX¥ì ›‰PWW®6²ªTä54º43j(`qçŒÁ(öNA¾†&üSÿ7@^]Ámå—8Wz\†jUÝük¥ÅK‚Óÿ1ÄÀ¹äP]ÿ6³VK쌽zeêV~$‹8,/3)y”2ÑC£*L›@×K°—‘ ù/è]¼Ÿ³…WVø9Ñ¢æV:þ~¢Éaì#„bK½-ŸÀ|avÉ*ìÃ3•¦e’ÖbP4«zξ±%Ž¿ q{3œ‹ÿbò§›Ð=|ÕÊB´ì‡9„Nyû^¨î?®|K©Þ£Cä7P>[¾ÓVÁ3ú¢œêø\B~…̬9®»Iùçn¼~ ³¡ö SM€øŠ Ì+ˆÆÞ)Øy3Vqo+@и婒ìùG¶8³Jâ õÚeŽ¹FR¥9°Xu<œ9ç3MP6Í~M÷†‘¼*¤E]‚¦Ì5Øô;…ëÀ\Á²ÞuÖmØê&?fÌðD‡0|f)êñš•“cr{q²¸¸»<͋ÖKºñiqâæåÉJuîŠw¦Ù«r\À›9õåpûŒ°CgÒÐÖusõ‚üsÐ|Ve50}Üý0†Ž5υ¢9òô¢¶°ÅQ_¶t/Pøø ŒÁÀ6ùï‚v–‘­Ámb,- c?®Mä~L'd00‹ËÇ×ß]ȟª7 ã $^²MP? ’ëU™gã‹,U-{ÐZ)ìr»­h˜Zž¸÷· O¹îÃÏ ’0Œ[/‰Æ§O·ä•ÃÃÅ¡mŸâ]ÁëΨ§¬lY ­ô«(•ª,Ùºø/íjUš”wÍ£Ì a‰¸ô-Þãx|˜¨6;Ø${Ã!‚Ÿ¥Ä#ßµR› V”eªÎåú:r^ï‹V‡! ²`€ƒ­$@Ó슈áA¦œ€Ü} 8zaÁâ»-ø ^Äü­ûg‡]ïߨnïó&–H8ô•ÐÝÎÛpâ-Ha¡ ©H¥8|‚ ۅ`««qfb™]„ùßuç-ÿÚî»5Hª¦R×ý5ŸžCŸ ŽÉÇZ|”¤Ü€‘µU}`äC½¾S ¿eáHëXa@݈ÑÑi¦†¾†ô¾ù×}sî#¿ÃTöÄâö!"hžaO¤õ7²i}+E{HE+­Ï$ŒZ“ji X#0]OF…ïÌZpù݅i;6…3…ˆ”ëM§â'|F½~•¤2VÑg6 èTÈXÔ"œé ¹¡:æÆÁýig!<óÂňա¶K£š€³5@æY>'¡×‹,>Þ¤ÊRËv’ŠÄÛÓ>Çé±MotžßMA°¨$b‹>xhq!)`vœ!•iïÍM*`'ô\Ǟt«M\@émË ë–èç,À/¾8¼n©Ž#‹"¾xÞÚ.ÐYߗkóJ[ì± ¤˜@ÉãR{ãw½!z¬‡×‹V4 ”LjP#hUtžx‘ddÖÔÐ6DRø…üo¦BfoêÚ©ii81|Ÿ¾EÜOøL—ÖÏQâÃÑ ·¾ÛÓÝJ ÙÖӆ䙭3)Ö=+CzÌãŒøm1ºÇj|&§­-9¼:lÆ!1Vh­ÕŒv¡¦HŒ c:*ŸèaÌ¡® .mÛS½{té=i9´uñV~•|”£0¾è¾”•®g±é†€AK‹’Üp >OÙwÍ,>X´ý2‘_rÁÄ鍵X-˳mÿž{¹Z՝V}+ãwå(ý¹zü|ˆºpS A¾„n5­áÊ'>£NèÌ7p&§<c_GâÈ»žfMáè<Ö%SµKŒØɲOヰe÷Ü#¬ô©éÙR$¾ˆi2ž×,b!§Y¸ÿ«tM»o¶r$±ž¯úß>ñ1°°š–½ ׅ¥v4­Œº%L¡#R̎‹(»–P*ÉðTÁéǕ•“l H½æp½+ ç.s¶m¹H:bó¶‡t;„hQ\ƒh\‡‹VQx»Š™™·RõõZ£psŠÍ|» Yd/f¼NÜ %‡‹`ó#þXL¨»(‚õÒË¢Úƒ»œ¤Ê}T4 Ìæ¼ñ0÷¬ƒþFIÛNîÿ·Ûd—ƒS~ ̬‰v³)vè|K©.¬ì@Ú`¨ˆ·º•ÌßŸÇV$Ö¸ügcsÌ\rô®˜'¾õZí¾ümÂr*>_Ý؞uo™Ø,gzÀõcŠý7ð)~Qv{ œ¨ÎSæÔ­Wz­ìo‰°Ó£x Ç!›s€ü€ê#ÆÇZš]tµnŒ±q%É@uNmÕÎÅß&!«„Qp³›—o S ðy™r³Ä®±ôà$²^êÅô¥£¬|ÃÌrã#*®ÜÜüRîlê É&ªŒ(·µâãӂ±#FŠI΅=Еt&hœ£AÊw9pxNonؖ(ØiTuž¡ –):¥=ÿ<mG_Ÿ°}…ÈWP};µ0õAe¥TNáa_›ò¢ú Õ ¯,{wÀ´'ÿ‡ˆMXjãqb¿>˜ qžÚAýšöGhÞ*ÐOv×ÐSf#õ@ °HŸ?áš`º‰êïàÑË5’@¿è9xÒ¢-Hö›h9‰KÃá^0–$˜’R€¾ªDL?òìÌ£îÄàlˆúüb€Žw"@ 6zêfçoei°“å¿Õ`¥£.´Â7Wûc<ThC;ršš5l¨‹75sx>žÂ òWeñ’5ÏðYævi»]H¥GäÝû(!ٙË2J˜ËÏ=¹/{_[ò÷/›\ÍíøTà£4ð’Ül[1º‹X~‰bÀ;"i\øŒzðíð˜&c§¥Ù±`‰å:ƒ>¢å‡ˆOŸ’J„÷2a—FÈÎñ"í’”k¬Þé óÖyLóø<ëá¢äççyÍnûâjP
    https://whatsonchain.com/tx/93076803c25dde3be5f68e193b0c526901c60db614aa5afbf2c647291e136211