全部版块 我的主页
论坛 金融投资论坛 六区 金融实务版 比特币、区块链与元宇宙
559 1
2022-10-08

ICO是以初始发生的数字加密钱银作为出资报答的一种筹集资金的方法,它的概念源自证券界的Initial Public Offering(IPO,首次揭露发行)。

相较于传统意义上的IPO,ICO具有能够缩短投融资链、降低投融资门槛、流动性佳、全球性出资等优势。常见的ICO里,数字钱银和区块链项目向前期爱好者出售项目代币。项目团队经过ICO获取技术开发和商场拓展资金;而项目爱好者经过ICO支持项目,一起也可在对应代币进入买卖商场后挑选买卖退出。

当你有一个好的想法,需要大家的资金来资助你。你能够运用众筹合约来发起请求捐款。众筹合约的根本思路是,你设定一个众筹方针,在达到方针的最终期限时,假如没有完成众筹,所有的捐款将被退回,因而减少了捐献者的危险。由于代码是开放的,可被审计的,也就不需要一个集中的、可信的渠道来担保,每个捐款的人,只需要付出必定的gas。

众筹的奖赏-代币

一般来说,那些筹集资金的人在资金筹集和资金办理不善之后,根本就不能说这笔钱是如何运用的,这常常导致项目根本无法交付任何东西。这时我们能够运用智能合适中投票的方法来做决定,这样对所有人都是公平的。

鄙人面的比如里,我们在众筹中,首要处理两个重要的问题:如何办理和保存用于奖赏的代币;筹集奖金后如何运用。

传统的众筹或奖赏记载一般有一个中央数据库,来保存、盯梢所有捐助者的过程:谁错过了众筹的最终期限了,谁在众筹过程中捐献了多少等。与之相反,在区块链中我们将以分散的方法来做这件事,只需创立一个标记来记载众筹的每一条记载、奖赏了多少代币,后边每个捐献者都能够得到一个他们能够买卖、出售或保存的代币。假如要给予实物奖赏,生产者只需要交换实物产品的代币。捐献者也能够将代币做为纪念品保存,不论这个众筹项目有没有达到它的方针,都能够保藏。

众筹合约示例

设置众筹合约中运用的代币

下面是一段简略的代币代码,用于发行给捐献者,注意我们没有设置代币的总量,而是一直在增发,在实际运用过程中,能够依据需求自行做约束:

pragma solidity 0.4.20;

/**

*一个简略的代币合约。

*/

contract token{

string public standard='yuyangray';

string public name;//代币名称

string public symbol;//代币符号比如'$'

//代币单位,展现的小数点后边多少个0,和以太币相同后边是是18个0

uint8 public decimals=2;

uint256 public totalSupply;//代币总量

/*这儿每个地址对应的是代币的数量,而不是捐献的以太币的数量*/

mapping(address=>uint256)public balanceOf;

event Transfer(address indexed from,address indexed to,uint256 value);//转帐告诉事件

/*初始化合约,而且把初始的所有代币都给这合约的创立者

* param _owned合约的办理者

* param tokenName代币名称

* param tokenSymbol代币符号

*/

function token(address _owned,string tokenName,string tokenSymbol)public{

//合约的办理者取得的代币总量

balanceOf[_owned]=totalSupply;

name=tokenName;

symbol=tokenSymbol;

}

/**

*转帐,详细能够依据自己的需求来完成

* param _to address承受代币的地址

* param _value uint256承受代币的数量

*/

function transfer(address _to,uint256 _value)public{

//从发送者减掉发送额

balanceOf[msg.sender]-=_value;

//给接收者加上相同的量

balanceOf[_to]+=_value;

//告诉任何监听该买卖的客户端

Transfer(msg.sender,_to,_value);

}

/**

*增加代币,并将代币发送给捐献新用户

* param _to address承受代币的地址

* param _amount uint256承受代币的数量

*/

function issue(address _to,uint256 _amount)public{

totalSupply=totalSupply+_amount;

balanceOf[_to]+=_amount;

//告诉任何监听该买卖的客户端

Transfer(this,_to,_amount);

}

}

上面的代码,在Mist中是履行的效果如下:

众筹合约的根本设置

在众筹合约中,下面几个变量能够用于设置众筹以太币总量、众筹截止时刻、以太币和代币的兑换比例,假如不运用单位进行声明换算,默许在以太坊中,所有的单位都是wei,1 ether=10^18 wei:

fundingGoal=fundingGoalInEthers*1 ether;//众筹以太币总量

deadline=now+durationInMinutes*1 minutes;//众筹截止时刻,单位是分钟

price=500 finney;//1个以太币能够买2个代币

在初始化众筹合约构造函数的时分,我们会将众筹合约的帐户地址,传递给代币做为办理地址,这儿运用的是关键字this表示当时合约的地址,也能够传递给某个人,初始创立时奖赏给这个人指定量的代币。

function Crowdsale(

uint fundingGoalInEthers,

uint durationInMinutes,

string tokenName,

string tokenSymbol

)token(this,tokenName,tokenSymbol)


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2022-10-8 13:16:29
点赞支持 感谢分享
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群