比特币智能合约开发_在开源技术中比特币不具备智能合约

飞韵 36 0

本篇文章给大家谈谈比特币智能合约开发,以及在开源技术中比特币不具备智能合约对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

比特币这么多年为什么技术和开始差不多?

比特币开发者们一直致力于解决扩展性问题,他们不是没思考过扩容/降低出块时间/缩减节点这些简单方案,但这些方案都很容易遇到瓶颈且极易造成中心化,同时由于存在损害比特币独特的不变性和抗审查性优势的风险,也给未来造成无可挽回的麻烦(比如抗量子算法,基本只有比特币的10分钟出块间隔可以同步)。

比特币开发者们的解决之道是L2,通过闪电网络来解决去中心化的快速支付方案,这个方案是天才的,通过比特币智能合约确保安全性后,比特币可以轻松的在链下去中心化的完成闪电般的转账支付。大多数人体验了闪电网络后都会觉得这简直不可思议,这是怎么做到比中心化第三方支付还要快的丝滑体验。如果你没用过,强烈建议你体验一下。

为了确保极致的安全性,比特币最早就被中本聪设计为非图灵完备,中本聪解释:复杂是安全性的天敌。但依然有很多开发者愿意在比特币上做各种各样的应用尝试,最早提出做去中心化域名BitDNS的帖子是在2010年,中本聪给了很多建议,并建议作者不要在比特币而是在新的网络里实施,这就是后来的域名币。这也给了很多人启发,后来的侧链方案由亚当贝克提出并撰写白皮书。

但侧链的初心是功能的扩展而非性能的扩展(虽然由于节点较少可以让其效率可以高不少),侧链依然是链,依然无法突破区块链的不可能三角和CAP定理。Vitalik之前对目前以太坊L2的评价也是如此,TPS区区几百就到达瓶颈了。

这也是我觉得RGB协议牛逼的地方,通过客户端验证+一次性密封技术解决了链外智能合约的可行性,可以和闪电网络一同工作,性能上具备无限扩展性,功能上可以实现你想做的一切,后无来者不敢说,但这个方案就是前无古人的。我愿意称它为和闪电网络一样酷的革命性产物。

说到闪电网络,其实最近半年闪电网络的发展是非常迅速的,活跃用户翻了将近20倍,这得益于萨尔瓦多和Twitter闪电小费功能的实施,节点和通道数量一直稳步增长。当然,大家在中国可能没什么感受,我之前发的节点分布图也可以看到,中国的节点数量和非洲差不多吧,属于极度边缘化的地区。闪电网络没有发行自己的新币,也没有营销推广用的资金,所以这几年完全是靠真实的需求来推动发展,在可见的未来,它也会越来越好。

RGB和闪电网络一样酷,但由于在RGB协议里,发行新的资产会变得非常容易,而发行资产很容易带来泡沫,我预计上线之后,RGB不会和闪电网络一样,完全由真实需求带动发展,而会产生相应的泡沫。也许泡沫会让其发展的更迅速?让我们拭目以待吧。

本来只想发个短微博,没想到唠了这么多,大家将就看看。#比特币

011:Ethash算法|《ETH原理与智能合约开发》笔记

待字闺中开发比特币智能合约开发了一门区块链方面的课程:《深入浅出ETH原理与智能合约开发》比特币智能合约开发,马良老师讲授。此文集记录我的学习笔记。

课程共8节课。其中,前四课讲ETH原理,后四课讲智能合约。

第四课分为三部分:

这篇文章是第四课第一部分的学习笔记:Ethash算法。

这节课介绍的是以太坊非常核心的挖矿算法。

在介绍Ethash算法之前,先讲一些背景知识。其实区块链技术主要是解决一个共识的问题,而共识是一个层次很丰富的概念,这里把范畴缩小,只讨论区块链中的共识。

什么是共识比特币智能合约开发

在区块链中,共识是指哪个节点有记账权。网络中有多个节点,理论上都有记账权,首先面临的问题就是,到底谁来记帐。另一个问题,交易一定是有顺序的,即谁在前,前在后。这样可以解决双花问题。区块链中的共识机制就是解决这两个问题,谁记帐和交易的顺序。

什么是工作量证明算法

比特币智能合约开发了决定众多节点中谁来记帐,可以有多种方案。其中,工作量证明就让节点去算一个哈希值,满足难度目标值的胜出。这个过程只能通过枚举计算,谁算的快,谁获胜的概率大。收益跟节点的工作量有关,这就是工作量证明算法。

为什么要引入工作量证明算法?

Hash Cash 由Adam Back 在1997年发表,中本聪首次在比特币中应用来解决共识问题。

它最初用来解决垃圾邮件问题。

其主要设计思想是通过暴力搜索,找到一种Block头部组合(通过调整nonce)使得嵌套的SHA256单向散列值输出小于一个特定的值(Target)。

这个算法是计算密集型算法,一开始从CPU挖矿,转而为GPU,转而为FPGA,转而为ASIC,从而使得算力变得非常集中。

算力集中就会带来一个问题,若有一个矿池的算力达到51%,则它就会有作恶的风险。这是比特币等使用工作量证明算法的系统的弊端。而以太坊则吸取了这个教训,进行了一些改进,诞生了Ethash算法。

Ethash算法吸取了比特币的教训,专门设计了非常不利用计算的模型,它采用了I/O密集的模型,I/O慢,计算再快也没用。这样,对专用集成电路则不是那么有效。

该算法对GPU友好。一是考虑如果只支持CPU,担心易被木马攻击;二是现在的显存都很大。

轻型客户端的算法不适于挖矿,易于验证;快速启动

算法中,主要依赖于Keccake256 。

数据源除了传统的Block头部,还引入了随机数阵列DAG(有向非循环图)(Vitalik提出)

种子值很小。根据种子值生成缓存值,缓存层的初始值为16M,每个世代增加128K。

在缓存层之下是矿工使用的数据值,数据层的初始值是1G,每个世代增加8M。整个数据层的大小是128Bytes的素数倍。

框架主要分为两个部分,一是DAG的生成,二是用Hashimoto来计算最终的结果。

DAG分为三个层次,种子层,缓存层,数据层。三个层次是逐渐增大的。

种子层很小,依赖上个世代的种子层。

缓存层的第一个数据是根据种子层生成的,后面的根据前面的一个来生成,它是一个串行化的过程。其初始大小是16M,每个世代增加128K。每个元素64字节。

数据层就是要用到的数据,其初始大小1G,现在约2个G,每个元素128字节。数据层的元素依赖缓存层的256个元素。

整个流程是内存密集型。

首先是头部信息和随机数结合在一起,做一个Keccak运算,获得初始的单向散列值Mix[0],128字节。然后,通过另外一个函数,映射到DAG上,获取一个值,再与Mix[0]混合得到Mix[1],如此循环64次,得到Mix[64],128字节。

接下来经过后处理过程,得到 mix final 值,32字节。(这个值在前面两个小节《 009:GHOST协议 》、《 010:搭建测试网络 》都出现过)

再经过计算,得出结果。把它和目标值相比较,小于则挖矿成功。

难度值大,目标值小,就越难(前面需要的 0 越多)。

这个过程也是挖矿难,验证容易。

为防止矿机,mix function函数也有更新过。

难度公式见课件截图。

根据上一个区块的难度,来推算下一个。

从公式看出,难度由三部分组成,首先是上一区块的难度,然后是线性部分,最后是非线性部分。

非线性部分也叫难度炸弹,在过了一个特定的时间节点后,难度是指数上升。如此设计,其背后的目的是,在以太坊的项目周期中,在大都会版本后的下一个版本中,要转换共识,由POW变为POW、POS混合型的协议。基金会的意思可能是使得挖矿变得没意思。

难度曲线图显示,2017年10月,难度有一个大的下降,奖励也由5个变为3个。

本节主要介绍了Ethash算法,不足之处,请批评指正。

特斯拉已购15亿美元比特币,比特币的开发初衷是什么?

2021年2月8日比特币智能合约开发,比特币价格不断攀升,涨幅接近15%。首次突破比特币智能合约开发了44000美元。美国特斯拉公司一次性进购15亿比特币,将这部分资产用于替代未来比特币智能合约开发的部分现金储备资产,特斯拉也可能将比特币作为一种新的产品支付方式。对于比特币的投资来说,马斯克已经早早就开始了布局。比特币成为了世界货币中心的一个新的体系,这与它最初的创立初衷有所偏离。

一、特斯拉购入15亿比特币

特斯拉创始人马斯克在大批量购入比特币之前在twitter上有过一次深入的交流,他试图想用特斯拉的资产负债表来转化成比特币,目的是为了给股东带来资产的去中心化,凭借个人的号召力野一路将比特币的单日涨幅带进了20%的大关,引导主流市场来接受未来将比特币作为主流资产和支付方式的信心。比特币有如此大的涨幅并非只靠特斯拉一家就能够带动起来,早在之前支付巨头Square也在2020年10月购买了5000万的比特币,资产公司Stone Ridge Holdings也购买了1万枚比特币。特斯拉如此大额的购买比特币在一定程度上也会为其股票带来更多的动力,在整体的估值上会有一个小幅的涨动。同时越来越多的投资者也会对特斯拉的比特币进行敞口估值,这种正式化的做法不仅会带来特斯拉兹升股价的上涨,也会让资本市场出现新的风向标。

二、比特币的开发初衷

比特币的发行初衷是为了代替法定货币,他的信仰者在初衷本意上是为了去中心化,所以建立一个乌托邦世界,认为并不需要监管任何东西都是自由的。而这种去中心化的交易模式是在臆想中建立的模式。在实现区块链的模式后,比特币做一个代币作为转换的中介,到区块链2.0阶段是为了解决智能合约问题,在一定程度上可以与我们现实世界中的市场进行合作。智能合约解决人与人之间的信任问题,通过数据的加密技术来让资产变得更加安全。

就特斯拉大规模购买比特币目的是为了在区块链的名号下来发行自身的股票,其本质还是“借鸡下蛋”,而比特币市场目前面临着无监管,尽管各个大佬们都对此充满兴趣,并且积极的导向其作为主流市场可接受的发行货币,然而实际上这种支付模式对未来市场的冲击性我们不得而知。

智能合约是什么?

智能合约"(smart contract)这个术语至少可以追溯到1995年比特币智能合约开发,是由多产的跨领域法律学者尼克·萨博(Nick Szabo)提出来的。他在发表在自己的网站的几篇文章中提到比特币智能合约开发了智能合约的理念。他的定义如下:

"一个智能合约是一套以数字形式定义的承诺(promises)比特币智能合约开发,包括合约参与方可以在上面执行这些承诺的协议。"

比特币智能合约开发我们更加详细地探讨他的定义的意思。

承诺

一套承诺指的是合约参与方同意的(经常是相互的)权利和义务。这些承诺定义了合约的本质和目的。以一个销售合约为典型例子。卖家承诺发送货物,买家承诺支付合理的货款。

数字形式

数字形式意味着合约不得不写入计算机可读的代码中。这是必须的,因为只要参与方达成协定,智能合约建立的权利和义务,是由一台计算机或者计算机网络执行的。

更进一步地说明:

(1)达成协定

智能合约的参与方什么时候达成协定呢?答案取决于特定的智能合约实施。一般而言,当参与方通过在合约宿主平台上安装合约,致力于合约的执行时,合约就被发现了。

(2)合约执行

"执行"的真正意思也依赖于实施。一般而言,执行意味着通过技术手段积极实施。

(3)计算机可读的代码

另外,合约需要的特定"数字形式"非常依赖于参与方同意使用的协议。

协议

协议是技术实现(technical implementation),在这个基础上,合约承诺被实现,或者合约承诺实现被记录下来。选择哪个协议取决于许多因素,最重要的因素是在合约履行期间,被交易资产的本质。

再次以销售合约为例。假设,参与方同意货款以比特币支付。选择的协议很明显将会是比特币协议,在此协议上,智能合约被实施。因此,合约必须要用到的"数字形式"就是比特币脚本语言。比特币脚本语言是一种非图灵完备的、命令式的、基于栈的编程语言,类似于Forth。

写到这里,本文关于比特币智能合约开发和在开源技术中比特币不具备智能合约的介绍到此为止了,如果能碰巧解决你现在面临的问题,如果你还想更加了解这方面的信息,记得收藏关注本站。

标签: #比特币智能合约开发

  • 评论列表

留言评论