笔记 | 如何从零开始创立一个公有链项目
笔记内容来源
2017年12月09日 14:10-14:30
【Chainge】技术沙龙第三期——揭秘区块链发展
比原链 朗豫《从0到1的公有链项目开发指南》
主办方:巴比特
地点:杭州
回看链接(长按下图识别二维码):
一、什么是区块链
首先,区块链是一种去中心化的协议,具有信息不可篡改的特点,这也是用户接受比特币、以太坊等数字货币价值的一种前提,因为每个人都认为自己所拥有的数字资产代币不会被第三方剥夺或冻结;
其次,区块链也是一种经济生态系统,多角色参与的社区,包括投资者、使用者、开发者、共识参与者等,从而推动行业继续发展;
第三,区块链是互联网数据商业的新模式,传统互联网的数据可以复制,而区块链上的数据无法复制,因为它有确定归属权,无法剥夺,但是可以证明归属;
最后,它是一种新思想,不需要三方背书,所有运作的协议公开透明,参与者拥有各自的角色;一些持有保守思想的人正是因此无法理解比特币和区块链应用,因为按照传统的思维方式,人们认为自己的钱需要有第三方担保才靠谱,然而,区块链的代币价值却是由协议(数学定理、算力保护等)背书,依然可以认为这种协议是可靠的,大家都是在遵循该种协议的运行下去参与经济活动,其承载的代币和资产都是可以存在价值的。
二、公有链和非公有链
区块链分为公有链和非公有链,但这对术语相当模糊,所以更清楚的分类可以是许可链和非许可链。
(一)许可链:
核心为Control(控制),即内部系统,具有以下特征:
许可加入,需要审查资格;
性能高,账本维护开销少,如Hyperledger等项目可能会达到性能上较高的TIS(Tansactions Per Second,事务数/秒),没有必要挖矿等复杂工作量的证明;
从开发上而言,升级简单,通过协同工作共同升级;
追求特定场景的高TPS需求,适用于证交所、央行清算等场景。
(二)非许可链:
目前常称为公有链,核心是Permissiveness,即完全开放的系统,具有以下特征:
任何人可以随时参与、随时离开;
系统的任何更新改动并不简单,多方参与,多方决策;这也就导致了——
升级更改艰难,强调不可篡改性,比如比特币的隔离见证花费了大约三年时间,这对于传统互联网行业来说是不可想象的;
总结来说就是——
- 可靠性大于效率。
三、Kickoff项目视角
(一)认知层面
如果你是一个项目开发团队,或者想要参与公有链开发的过程,那么需要了解哪些点——
首先,价值观要统一,公有链开发应该是非盈利组织,是一个开源社区项目,一般而言,不能以公司这种商业化组织的身份去进行开发,会导致开发方想要尽一切努力去控制项目,那么在其他人眼中,区块链项目的信用则是由控制人担保,会影响项目的公信力;
第二,社区项目,多方参与并决策项目的发展方向,权力越分散,社区的健壮性更强:公有链开发初期,可能鲜有用户去认可项目的价值,团队主导项目的运行,但项目运行更加成熟之后,必须要把权力分散到社区中,让社区的更多人参与到项目未来规划的制定和开发方向的选择,才能让项目日久天长。
如上图所示,consensus指的是共识的参与者,和开发者、用户之间形成三者互相牵制的状态,没有任何一方可以单独决定该项目的发展方向,必须达到三方的共同认可,项目的更新才能得到确认。
最后,以比原链为例,我们有Bytom持币人大会、开发者基金会和POW算力提供者进行三方决策。
(二)行动层面
对于团队来说,如果想要设计一个公有链,那么需要做些什么呢?
首先,需要撰写技术白皮书来阐述自己项目的必要性,以及能够解决的问题:现实世界中,公有链项目并不少,每个团队也都有希望去解决的痛点和问题,需要用技术白皮书去阐明为什么需要通过你的项目而不是其他的来解决这个问题;
第二,同时也需要经济白皮书公开Token的激励方案,整体分配的策略:也就是说,没有代币这样的商业激励,就无法正常运行公有链,会变得和软件使用无异;一般而言,会众筹一些资金去做这些,但需要一开始就规划好未来几年内代币发行的数量、是否增加、按多少比例增加等问题,不能更改,更改则会严重影响初始开发者的信用;
第三,需要可行性的说明书,描述整体技术架构、难点和所需要的资源,也就是我们所说的“黄皮书”:所开发的公有链技术到底能否实现,能否被证明可以实现,至少能证明并未遥不可及;
最后,突出自己项目的亮点、竞争优势,需要技术、运营等多方面的协同配合。
(三)举例:Bytom比原链
一开始,我们就想好了为什么需要Bytom,它的目的是为了——
1.数字资产所属权的唯一性,打通byte(字节)和atom(原子)的界限:前者指的是去快链中的字节,后者指的是现实世界的原子资产,包括汇票等有第三方背书的物理金融资产,后者可以在比原链进行登记和流通,达到提高其运行的效力;
2.基于UTXO模型,体现灵活性和可控性:为的是吸引开发者参与项目;
3.设计独有的基于金融资产交易的合约系统:不同于以太坊,没有以太坊那么复杂;
4.打造人工智能领域和区块链的交互渠道:通过设计共识算法,使用AI的一些计算,打通两个领域的桥梁。
(四)Kickoff开发模式
1.整体架构分离和清晰划分,包括:
(以比原链为例——)
2.需要经济白皮书公开Token的激励方案,整体分配的策略
3.需要可行性说明书,描述整体技术架构、难点和所需要的资源
4.开发模式的差别,传统互联网模式并不适用,为了维持账本记录连续和可靠,需要保证——
(1)全网协议的可升级,保证最大弹性;
(2)全系统平台兼容,不论是PC端、移动端都要考虑到;
(3)协议可持续发展,即设计协议时就要考虑未来的升级和维护,比如出现bug如何收敛到比较小的范围,而不会影响整个系统。
(五)举例:Bytom实现
1.Tick-Tock循环模式
Introduce→Deprecate→Wait
当你的项目想要引入更新的功能/模式时,不能将以前的功能/模式去掉,只有提前通知用户更新,接着等待看看全网用户还有多少比例(设置阈值)还在使用即将淘汰的版本,才能去发布新的版本。
2.Alert紧急消息
系统发生的范围大的BUG,需要通过全网广播通知时,发布相应的Mag信息
Alert在Bitcoin 0.14中被设计为Deprecate特征,但始终未被移除,考虑了弹性(Resilient)
(六)Kickoff开发者视角
(依然是前面提到的认知层面)
1.理解比特币、区块链的价值,及其和传统系统的差别;
2.理解开发公有链为什么需要Token系统,及其与工具的区别(有些开发者认为Token完全是投机行为,属于有偏差的理解);
3.理解区块链“不可能三角形”理论,安全、环保、去中心化不可能同时满足;
4.理解基础经济学知识;
5.理论知识,分布式系统CAP定律,拜占庭容错算法;
6.基础密码学,ECDSA,公钥加密体系,哈希数列算法;
7.跨平台编译器和虚拟机的设计;
8.P2P技术,DHT,NAT等网络技术。
四、其他
(一)Bytom近况:Release Testnet Beta版,代号SPARK(晓),欢迎体验;代码已开源
(二)比原投资基金:投资合适的区块链项目,项目合作资源整合,扩大生态链
(三)比原开发者:有计划加入行业的,可以联系,有竞争力的薪资和国际视